LLM Flow Builder¶
Yapay zekâ ile Node-RED akışı üreten asistan node. Bir LLM (Large Language Model) sağlayıcısına doğal dilde komut göndererek otomatik akış JSON'u üretir; isterseniz akışı otomatik olarak import ve deploy edebilir.
Diğer node'lardan farkı
Bu node trexMes operasyonu üretmez — Node-RED ortamında geliştirici asistanı olarak çalışır. Akış JSON'ı üreterek geliştirici verimliliğini artırır.
Property Tablosu¶
Ana Node (llm-flow-builder)¶
| Alan | Tip | Varsayılan | Açıklama |
|---|---|---|---|
name |
string | — | Canvas üzerinde gösterilecek ad |
llmConfig |
config node | (boş) | LLM bağlantı yapılandırması |
autoImport |
boolean | false |
Üretilen akışı otomatik import et |
autoDeploy |
boolean | false |
Import sonrası otomatik deploy et |
flowTab |
string | (boş) | Akışın import edileceği sekme adı |
Config Node (llm-flow-builder-config)¶
| Alan | Tip | Açıklama |
|---|---|---|
name |
string | Config takma adı |
provider |
enum | LLM sağlayıcısı |
apiUrl |
string | API endpoint |
modelName |
string | Model adı |
apiKey |
password (credential) | API anahtarı |
Desteklenen LLM Sağlayıcıları¶
Config node, 6 popüler sağlayıcı için preset sunar:
| Provider | API URL | Varsayılan Model |
|---|---|---|
| OpenAI | https://api.openai.com/v1/chat/completions |
gpt-4o |
| Anthropic | https://api.anthropic.com/v1/messages |
claude-sonnet-4-20250514 |
| Google Gemini | https://generativelanguage.googleapis.com/v1beta/... |
gemini-2.0-flash |
| DeepSeek | https://api.deepseek.com/v1/chat/completions |
deepseek-chat |
| Mistral | https://api.mistral.ai/v1/chat/completions |
mistral-large-latest |
| Groq | https://api.groq.com/openai/v1/chat/completions |
llama-3.3-70b-versatile |
| Custom | (manuel) | (manuel) |
Sistem Prompt¶
Node, sistem promptunu her zaman paket klasöründeki systemprompt.txt dosyasından otomatik olarak okur. Editörden değiştirilemez; dosyayı doğrudan düzenleyin. Dosya her mesajda yeniden okunduğundan Node-RED yeniden başlatılmadan güncellenebilir.
systemprompt.txt LLM'e şunları öğretir:
- Node-RED akış JSON formatını ve zorunlu kuralları
node-red-trexmes-servicepaketindeki tüm node tiplerini ve property'lerini- Business, Communication, Display ve System Events node'larının tüm event adlarını ve Türkçe açıklamalarını
- Tipik akış desenlerini (observe, form, button handling, conditional handle) örneklerle
Event Seçimi¶
LLM, verilen prompta göre açıklamaları okuyarak en uygun event'i otomatik seçer. Örneğin:
| Prompt | Seçilen Event | Node Tipi |
|---|---|---|
"Barkod okununca akış başlasın" |
OnBarcodeScanned |
Communication Events |
"Plan yüklendiğinde form aç" |
OnPlanLoaded |
Business Events |
"Uygulama açılışında karşılama göster" |
OnApplicationStarted |
System Events |
"Operatör iş yükle butonuna bastığında..." |
OnOperatorPlanLoadButtonClicking |
Display Events |
"Duruş başladığında bildir" |
OnStoppageStarted |
Business Events |
Açıklayıcı prompt yazın
Senaryo ne kadar açık anlatılırsa LLM event seçimi o kadar isabetli olur. "Üretim onaylandığında" gibi ifadeler OnProductionConfirmed ile eşleşir; "sayaç arttığında" ise OnProductionCounterIncreased ile.
Tipik Akış¶
flowchart LR
A[inject<br/>Komut: 'OrderStart yakala...'] --> B[LLM Flow Builder]
B --> C[debug<br/>Üretilen flow JSON]
style A fill:#87ceeb,color:#000
style B fill:#99ff33,color:#000
style C fill:#87ceeb,color:#000
Komut Örnekleri¶
| Komut | Seçilen Event | Üretilen Akış |
|---|---|---|
"Plan yüklenince form aç" |
OnPlanLoaded (Business) |
trex Subscriber + Business Events + Custom Form + Responser |
"Barkod okunduğunda sipariş bilgisini göster" |
OnBarcodeScanned (Communication) |
trex Subscriber + Communication Events + Custom Form + Form Bind Controls + Responser |
"Uygulama açılışında karşılama ekranı göster" |
OnApplicationStarted (System) |
trex Subscriber + System Events + Custom Form + Responser |
"Operatör iş yükle butonuna bastığında alternatif akış çalıştır" |
OnOperatorPlanLoadButtonClicking (Display) |
trex Subscriber + Display Events(ishandled=true) + Handle Setter + Responser |
"Duruş başladığında debug'a yaz" |
OnStoppageStarted (Business) |
trex Subscriber + Business Events + debug + Responser |
Otomatik Import ve Deploy¶
Üç olası mod vardır:
autoImport |
autoDeploy |
Davranış |
|---|---|---|
false |
herhangi | Sadece üretir, debug çıkışı verir |
true |
false |
Yeni sekmeye ekler ama deploy etmez |
true |
true |
Sekmeye ekler ve deploy eder |
Otomatik deploy'a dikkat
autoDeploy: true ayarı çalışan Node-RED'i değiştirir. Üretim ortamında kapalı tutun; sadece geliştirme ortamında kullanın.
Giriş Mesajı¶
msg.payload alanında doğal dilde komut beklenir:
Çıkış Mesajı¶
Üretilen akış JSON'u:
{
"_msgid": "abc123",
"payload": {
"flow": [
{
"id": "node1",
"type": "trex Subscriber",
"name": ""
},
{
"id": "node2",
"type": "Communication Events",
"event": "/PLCConnectionLost",
"ishandled": false
}
// ...
],
"imported": true,
"deployed": false,
"tabName": "AI_Generated"
}
}
API İzinleri ve Maliyet¶
API anahtarı
Her LLM sağlayıcısı için kendi geliştirici hesabınızdan API anahtarı edinmeniz gerekir. Anahtar credentials olarak password tipinde saklanır; flow JSON export'ta görünmez.
Maliyet farkındalığı
LLM çağrıları ücretlidir. Her flow üretimi ~1000-3000 token tüketebilir. Sürekli test yaparken hızlı maliyet birikebilir.
Sık Karşılaşılan Hatalar¶
401 / 403
API anahtarı yanlış veya geçersiz. Anahtarın panel/proje yetkisi olduğundan emin olun.
Model adı bulunamadı
Seçtiğiniz model sağlayıcının kataloğunda yoksa (örn. eski/yeni isim) hata gelir. Sağlayıcının dokümantasyonundan güncel model adlarını teyit edin.
Geçersiz JSON
LLM bazen markdown code-fence (```) ile cevap döndürebilir. Node iç ayrıştırıcı bunu temizler; yine de hata alıyorsanız systemPrompt'unuza "sadece valid JSON döndür" ekleyin.
Token limit aşıldı
Sistem prompt çok uzunsa (özellikle paket genişledikçe) bazı modellerin limitini aşabilirsiniz. Daha büyük context destekleyen bir modele geçin.
İpuçları¶
Önce manuel deneyin
Tipik akış desenlerini önce manuel kurun, çalıştığından emin olun. Sonra aynısı için LLM'e komut verirseniz daha tutarlı sonuç alırsınız.
Daha iyi sonuçlar için detay
"Sipariş yakala" yerine "Business Events node'u ile OrderStartEvent yakala, gelen orderNo ile Custom Form aç, txt** kontrolleri bağla, Responser ile bitir" gibi açık komutlar üretim kalitesini artırır.
Özel sistem prompt
Şirketinize/projenize özel kurallar (isimlendirme standartları, kullanılması yasak node tipleri) varsa systemprompt.txt dosyasının sonuna ekleyin. Dosya her çağrıda okunduğundan değişiklik anında geçerli olur.