Tarayıcıda Bir CAD Editörü Oluşturdum, Sonra Bir LLM'e Kullanmayı Öğrettim

Tarayıcıda bir CAD editörü geliştirdim. Sonra onu bir yapay zekaya verdim.

Karşılığını bir demo sırasında aldım. Uygulamaya, "Kaç kapı ve pencere var?" diye sordum.

Yapay zeka onları saydı. Sonra şunu ekledi: "Not: D3 sadece 300 mm genişliğinde. Muhtemelen yanlış tespit edilmiş bir kapı. Kontrol etmemi ister misiniz?"

Yapay zeka haklıydı. Veri hattım bir geometri parçasını 30 cm'lik bir kapıya dönüştürmüştü. Hiçbir insan bunu görmemişti. Model, bir ayakkabı kutusundan daha dar bir kapı gördü ve bunu işaretledi.

Bu proje, devasa teknik engellerin aşılmasını gerektiriyordu:

• Parse edilmesi oldukça zor olan DWG dosyalarını ayrıştırmak. • Binlerce rastgele çizgiden bina modellerini yeniden inşa etmek. • HTML5 Canvas kullanarak sıfırdan bir 2D CAD editörü oluşturmak. • Claude'u bir araç setiyle bir ajan olarak bağlamak.

Sistemin çalışma şekli şöyledir:

  1. Yükleme: Tarayıcıya bir DWG dosyası bırakırsınız.
  2. İşleme: Bir arka plan görevi dosyayı dönüştürür ve geometriyi çıkarır. Duvarları, kapıları, pencereleri ve odaları tanımlar.
  3. Görüntüleme: Yakalama (snapping) ve geri alma (undo) geçmişine sahip bir 3D görüntüleyici ve tam kapsamlı bir 2D editör elde edersiniz.
  4. Düzenleme: Değişiklikler yapması için bir yapay zeka ajanına komut vermek üzere bir sohbet paneli kullanırsınız.

Yapay zeka sadece sohbet etmez. Veritabanını düzenlemek için araçlar kullanır. Eğer "En uzun duvara bir pencere ekle" derseniz, yapay zeka duvarı tanımlar ve açıklığı yerleştirir.

Geliştirme sürecinden çıkarılan temel dersler:

• Dosya başlıklarına (headers) asla güvenmeyin. DWG dosyaları birimler konusunda genellikle yanıltıcıdır. Ölçeği bulmak için başlığı görmezden gelmeyi ve gerçek koordinat sayılarına bakmayı öğrendim. • Tek bir yazma yolu (write path) kullanın. Kullanıcı arayüzü (UI), içe aktarma hattı ve yapay zeka; hepsi aynı doğrulanmış yolu kullanır. Bu, yapay zekanın imkansız geometriler oluşturmamasını sağlar. • Yapay zekaya bir geri alma geçmişi (undo story) sağlayın. Yapay zeka bir düzenleme yaptığında, sistem bu eylemin tamamını tek bir geri alma adımında birleştirir. Yapay zeka hata yaparsa, her şeyi geri almak için Ctrl+Z tuşuna basarsınız. • Matematiksel eşik değerleri yerine topolojik kurallar kullanın. Başlangıçta odaları alanlarına göre bulmaya çalıştım. Bu yöntem L tipi binalarda başarısız oldu. Topolojik bir kurala geçiş yaptım: bağlantılı bir düzenlemedeki en büyük yüzey her zaman dış kısımdır. Geri kalan her şeyi tutun.

Zor olan kısım yapay zeka değildi. Anonim çizgileri gerçek bina verilerine dönüştürmekti. Temel sağlam olduğu için yapay zeka özelliğinin geliştirilmesi sadece birkaç gün sürdü.

Kaynak: https://dev.to/arif/i-built-a-cad-editor-in-the-browser-then-taught-an-llm-to-use-it-