· kaynak dev.to (home feed)
OpenDiagram, yapay zekâya düzen değil şartname yazdırarak düzenlenebilir Excalidraw diyagramları üretiyor
Bir geliştirici, OpenDiagram'ı açık kaynak olarak paylaştı. Bu yapay zekâ destekli üretici, prompt'ları düzgün yerleşimli ve düzenlenebilir Excalidraw diyagramlarına dönüştürürken semantik işi yerleşim kodundan ayırıyor.

Bir geliştirici, çıktısını Mermaid kodu yerine doğal, düzenlenebilir Excalidraw elemanları olarak üreten açık kaynaklı bir yapay zekâ diyagram üreticisi olan OpenDiagram'ı yayınladı. dev.to'daki bir yazıda geliştirici, aracı tanıdık bir hayal kırıklığına çözüm olarak sunuyor: bir sohbet botundan mimari diyagram istemek ve ya hiç ayrıştırılamayan ya da okunmaz bir düğüme dönüşen kod geri almak. Proje opendiagram.ink adresinde ücretsiz beta olarak yayında ve tüm kodu, self-hosting desteğiyle birlikte AGPL-3.0 lisansıyla yayınlandı.
Yapay zekâ tarafından üretilen Mermaid'ın sorunu
Yazı kontrollü bir karşılaştırmayla açılıyor. Geliştirici, ChatGPT ve Gemini'ye beş kez bir URL kısaltıcı tasarlatıyor — API, cache, veritabanı ve tıklama analitiği — ve her seferinde sonucu Mermaid diyagramı olarak istiyor. Beş cevaptan ikisi hiç ayrıştırılamadı, çünkü modeller süslü parantezleri kenar etiketlerinin içine yerleştirmişti; Mermaid bunu bir şekil tanımının başlangıcı olarak yorumluyor. Render edilen üçü ise aynı kusurları paylaşıyordu: kesişen oklar ve üst üste basılan etiketler.
Geliştiricinin teşhisi, modelden aynı anda iki birbirinden bağımsız iş yapmasının istenmesi: bir sistem hakkında akıl yürütmesi ve onu sayfaya yerleştirmesi. Mevcut modeller ilk işte makul ölçüde iyi, ikincisinde ise kötüler ve Mermaid herhangi bir kurtarma yolu sunmuyor — elemanlar sürüklenerek yerlerine taşınamıyor, dolayısıyla tek çare daha fazla metin düzenlemek. Geliştiricinin alışılmış yöntemi, yapay zekâdan sistem açıklaması istemek ve sonra kutuları Excalidraw'da elle bir saat boyunca dizmek; aracın ortadan kaldırmayı amaçladığı emek de tam olarak bu.
Modelden şartname, koddan yerleşim
OpenDiagram'ın temel tasarım kararı katı bir iş bölümüdür. Dil modeli asla Mermaid, koordinat, renk veya font üretmez. Her bileşen için bir girişi olan, label, sublabel ve category gibi alanlar içeren küçük, tipli bir şartname üretir. Görsel olan her şey ise deterministik kodla halledilir: Eclipse Layout Kernel düğümleri ve grupları yerleştirir, özel bir router kenarları çizer ve etiketleri çarpışma yaşamayacak şekilde son kutulara göre konumlandırır, temalı bir renderer da sonucu sıradan Excalidraw elemanlarına dönüştürür. İki tema birlikte geliyor: el çizimi bir Sketch teması ve dokümantasyon için daha temiz bir Classic tema.
Görünüm üretilmek yerine hesaplandığı için, yazarın iddiasına göre çıktı kalitesi modele göre değişmek yerine tutarlı kalıyor. Yazıdaki örnek görseller, Mermaid karşılaştırmasında kullanılan aynı Gemini modeliyle üretildi; Postgres, Redis ve Kafka için teknoloji ikonları işleve göre gruplanmış halde ve kenarlar engellerin üzerinden değil çevresinden geçecek şekilde yönlendirilmiş.
Diyagram türleri ve bir stres testi
Yazıya göre araç, gerçek AWS, GCP ve Kubernetes ikonlarıyla sistem tasarımını ve bulut mimarisini; numaralı mesajlar, kesikli yanıtlar ve opt parçalarıyla sequence diyagramlarını; tipli sütunlar, birincil ve yabancı anahtar işaretleriyle ve crow's foot gösterimiyle ER diyagramlarını artı akış şemalarını destekliyor.
Bilinçli olarak zor bir prompt — yaklaşık 30 bileşenli ve karışık tutarlılık gereksinimli çok kiracılı bir ticaret platformunu tek paragrafta anlatan — tek bir aşırı yüklenmiş resme dönüşmedi. Agent kendi başına dört diyagram planladı: bir genel bakış artı checkout, arama ve teslimat için ayrı diyagramlar. Güçlü tutarlılıklı para yolları ile asenkron analitik arasında istenen ayrımı gözetti, ancak bazı öğeleri tamamen dışarıda bıraktı: felaket kurtarma, bölgeler arası failover ve circuit breaker'lar diyagramların hiçbirinde görünmüyor. Her çıktı paylaşılan tek bir tuvalde düzenlenebilir kalıyor ve yazar, eksik diyagramların takip bir istekle talep edilebileceğini belirtiyor.
Agent özellikleri ve kullanılabilirlik
Tek seferlik üretimin ötesinde OpenDiagram, konuşmacı bir agent olarak da çalışıyor; böylece iki bileşen arasına bir Redis cache eklemek gibi bir istek mevcut çizimi güncelliyor. Ayrıca bir GitHub deposunu içe aktarıp ondan bir mimari diyagram üretebiliyor. Kendi faturalandırmasını tercih eden kullanıcılar OpenAI, Anthropic, Google veya OpenRouter için API anahtarlarını bağlayabilir ve beta süresince hesap gerektirmeyen bir misafir modu var. Yazar, başarısızlık vakalarını — büyük gerçek dünya sistemleri, dağınık monorepo'lar, iç içe parçalı sequence diyagramları — projenin GitHub deposu Itz-Agasta/OpenDiagram üzerinde issue olarak açmaya açıkça çağırıyor.
Neden önemli
Buradaki ilginç fikir, diyagramlardan çok mimari. OpenDiagram dil modelini semantik bir bileşen çıkarıcı olarak ele alıyor ve tüm uzamsal akıl yürütmeyi klasik, deterministik araçlara devrediyor — yapılandırılmış çıktı hatlarını diğer alanlarda güvenilir kılan aynı ayrım bu. Ve çıktısı düzeltilemediği için yapay zekâ diyagram araçlarını terk eden herkes için, düzenlenebilir doğal Excalidraw elemanları pratik hesabı değiştiriyor: düzeltebildiğiniz bir diyagram, gerçekten teslim edebileceğiniz bir diyagramdır.
Dürüstçe belirtilmesi gereken iki uyarı var. Her iddia geliştiricinin kendi yazısından ve bağımsız testlerden geçmemiş değerlendirme çalıştırımlarından geliyor; ayrıca stres testi, aracın okunabilirlik uğruna eksiksizlikten vazgeçtiğini, tüm içeriği temsil etmek yerine bir kısmını atladığını gösteriyor. Yine de, bir tasarım deseni olarak — ve kapalı hizmetlerin hakim olduğu bir alanda AGPL lisanslı, self-host edilebilir bir seçenek olarak — yapay zekâ destekli araçların nereye gittiğine dair faydalı bir veri noktası.
- #open-source
- #excalidraw
- #diagrams
- #ai
- #developer-tools