İçeriğe geç

Yapay zeka ile çizim

Bu sayfa, bir yapay zeka istemcisinin (ChatGPT, Claude, Gemini, Cursor, …) API ve MCP üzerinden LetDraw’da profesyonel diyagramlar çizmesi için referanstır. Modelin LetDraw’ın şemasını tahmin etmesine gerek yok: aşağıdaki her şey çağrı anında modele de sunulur, böylece bağlı bir model bunu okuyup ilk denemede doğru çizebilir.

Modeli yeniden eğitmezsiniz; ona çağrı anında bağlam verirsiniz. LetDraw tüm çizim bilgisini MCP sunucusu ve REST API üzerinden açar:

NeMCPREST
Nasıl çizilir (bu kılavuz, makine-okunur)kaynak letdraw://capabilitiesGET /capabilities
Her ikon kütüphanesi + tüm item etiketlerikaynak letdraw://librariesGET /libraries?items=1
Kütüphane id’leri + sayılararaç list_shape_librariesGET /libraries
Bir bileşen için ikon bularaç search_iconsGET /icons?query=…
Diyagram oluştur / güncellearaçlar create_diagram / update_diagramPOST / PATCH /documents

İyi davranan bir istemci letdraw://capabilities ve letdraw://libraries kaynaklarını bir kez okur, sonra çizer. Yapay zekanı MCP ucuna yönlendir (bkz. API ve MCP); gerisini kendisi keşfeder.

Profesyonel çıktı için altın kurallar

Section titled “Profesyonel çıktı için altın kurallar”
  1. Gerçek ikon kullan, çizme. search_icons çağır (örn. "postgres", "redis", "kubernetes pod", "load balancer") ve kutunun iconRef alanına dönen ref değerini koy (örn. "databases/PostgreSQL"). Sunucu tam o ikonu basar ve etiketi altına akıtır.
  2. Konteynerleri temiz tut. Büyük gruplama kutuları (bir Kubernetes Cluster, bir VPC, bir subnet bandı) geniş (> 420px) veya frame olmalı. İkonlar yalnızca node-boyutlu kutulara (60–420px genişlik, 40–260px yükseklik) basılır. Bir konteynerin başlığını bağlı etiket olarak değil, üstüne bağımsız metin olarak koy.
  3. Bilinçli iç içe geç. Dış renkli konteyner → içinde node-boyutlu kutular, her biri kendi ikonuyla. İki-üç seviye en iyi okunur (Cluster → Worker Node → Pod).
  4. Okları temiz yönlendir. Dik açılı / çok bükümlü bağlantılar için 3+ points içeren bir ok gönder; uçları şekillere bağla ki takılı kalsınlar.
  5. Role göre renk kodla ve boşlukları tutarlı tut.

create_diagram / update_diagram, elements’i ya letdraw-native öğeler ya da standart Excalidraw JSON olarak kabul eder (otomatik algılanıp sunucuda çevrilir). Excalidraw JSON üretmek en kolay yüksek-kalite yol; native LetDraw sana aşağıdaki LetDraw’a özel özellikleri verir.

id, type, x, y, width, height ve stil: strokeColor (hex), fillColor (hex veya "transparent"), fillStyle (hachure | cross-hatch | solid | dots | zigzag | dashed | zigzag-line), strokeWidth (1–8), strokeStyle (solid | dashed | dotted), roughness (clean | sketch | scribble), bowing (straight | curved | wavy), corner (sharp | rounded | beveled), opacity (0–100), seed. İsteğe bağlı: text, fontSize, fontFamily (hand | normal | code), textAlign, groupIds, angle (radyan), link, shadow (none | soft | hard) ve LetDraw eklentisi iconRef.

rectangle, ellipse, diamond, triangle, right-triangle, parallelogram, trapezoid, star, hexagon, heptagon, octagon, cross, cloud, cylinder, speech-bubble, document, manual-input, display, terminator, data-storage, preparation, blok oklar (arrow-right/left/up/down), ayrıca text, image (dataURL), frame (etiketli kesikli bölüm; name ayarla), embed (url), math (text içinde LaTeX), code (text içinde kaynak, language). Şekil etiketini text ile içeride taşır (Excalidraw formatında containerId’li bir text öğesiyle).

type: "arrow" ve:

  • arrowShape: straight | curved | elbow | s-curve | smart | multipoint | multipoint-curved. smart diğer şekillerin etrafından otomatik yol bulur. multipoint keskin çok-parçalı bir polyline; multipoint-curved yumuşatılmış hali; ikisi de köşelerini points’ten okur.
  • points: mutlak dünya koordinatlarında {x, y}[] (ilk → son). 2 nokta = düz, 3 = elbow (tek büküm), 4+ = yönlendirilmiş polyline. Dik açılı bağlantı: points: [{x1,y1},{x2,y1},{x2,y2}].
  • controlPoint / controlPoint2: curved / s-curve / elbow için bezier tutamakları.
  • startArrowhead / endArrowhead: none | arrow | triangle | triangle-outline | circle | diamond | diamond-outline | bar | crows-foot | crows-foot-bar | double-bar | circle-bar | circle-crows-foot. UML uçları (triangle-outline = generalization, diamond = composition) ve kardinalite için ER crow’s-foot uçlarını kullan.
  • startBinding / endBinding: {elementId, focus:{x,y}}: bir ucu bir şekle bağla (focus, şeklin bbox’unda 0..1 bir nokta) ki ok onu takip etsin.

Excalidraw formatında oku points + startArrowhead/endArrowhead ile gönder; çevirici 2 / 3 / 4+ noktayı straight / elbow / s-curve’e eşler ve bağlamaları yeniden hesaplar.

type: "line" ve lineShape: straight | multipoint | multipoint-curved. Çok noktalı çizgiler points taşır (oklarla aynı, ok ucu olmadan). Ayrıca freedraw (points[]) ve highlight (yarı saydam işaretleyici).

  1. search_icons({ query }) → sıralı [{ library, label, ref }].
  2. Hedef kutuda iconRef: "<library>/<Item Label>" ayarla (veya { library, label }).
  3. create_diagram → sunucu o ikonu üst-ortaya basar ve etiketi altına taşır.

Açık iconRef her zaman kazanır; ardından ikonsuz kalan etiketli her node otomatik olarak en iyi tahminle bir keyword ikonu alır. Bulut sahnesinde vendor’ı (kubernetes / aws / azure / gcp) belirt ki vendor ikon setleri tercih edilsin. Id’lere list_shape_libraries ile göz at; tam etiket kataloğu letdraw://libraries (veya GET /libraries?items=1).

Veritabanı ürünleri Databases kütüphanesine çözülür: marka politikasının izin verdiği yerde gerçek logolar (PostgreSQL, MariaDB, Cassandra, DynamoDB, …), aksi halde DB-uygun jenerik ikonlar (MySQL, Redis, MongoDB, …).

[
{ "id": "db", "type": "rectangle", "x": 0, "y": 0, "width": 200, "height": 90,
"backgroundColor": "#eef2ff", "strokeColor": "#334155", "roundness": { "type": 3 },
"iconRef": "databases/PostgreSQL", "boundElements": [{ "type": "text", "id": "dbt" }] },
{ "id": "dbt", "type": "text", "x": 10, "y": 30, "text": "Orders DB", "containerId": "db" },
{ "id": "a1", "type": "arrow", "x": 200, "y": 45, "points": [[0, 0], [80, 0], [80, 120]],
"endArrowhead": "triangle", "startBinding": { "elementId": "db" } }
]
  • diagram_from_code: docker-compose / Kubernetes manifest / Graphviz DOT / PlantUML / Terraform / Helm values / SQL DDL gönder; LetDraw formatı otomatik algılayıp yerleştirir.
  • export_to_code: bir diyagram → Mermaid veya D2.
  • generate_from_prompt: doğal dil → diyagram, hesabın kendi AI anahtarıyla.

Kimlik doğrulama, uçlar, kapsamlar ve istemci kurulumu için bkz. API ve MCP.