- Red Hat Node.js ekibi, LLM ile Node.js ve TypeScript/JavaScript entegrasyon yöntemlerini deneyimliyor
- Birden çok framework’ü karşılaştırırken özellikle tool/function çağrıları ve ajan çalışma biçimleri üzerine yoğunlaşıyor
- Kısa süre önce çıkan Llama Stack’in özellikleri ve Node.js ile entegrasyon olasılıkları analiz ediliyor
Llama Stack nasıl kurulur ve çalıştırılır
- Llama Stack, API standardizasyonunu hedefleyerek çeşitli uygulamalar dağıtan modüler bir framework
- Ollama tabanlı container kullanıldığında en kolay çalıştırma yöntemini sunuyor
- Çalıştırma scripti örneğiyle sunucu yapılandırması:
- Model:
meta-llama/Llama-3.1-8B-Instruct
- Port:
8321
- Ollama sunucu IP’si:
10.1.2.38
- Modelin Ollama’da önceden çalıştırılmış olması gerekiyor; keepalive’ı korumak için günde en az bir kez kullanılması gerekiyor
- API şeması ve etkileşimli testler için dokümantasyon endpoint’i (
/docs) kullanılabiliyor
İlk Node.js uygulaması örneği
- Llama Stack ile iletişim için
llama-stack-client-typescript kütüphanesi kullanılıyor
- İki araç tanımı bulunuyor:
favorite_color_tool: şehir/ülke temelli renk bilgisi sağlıyor
favorite_hockey_tool: şehir/ülke temelli buz hokeyi takımı bilgisi sağlıyor
- Soru senaryoları üzerinden araç çağrısı akışı test ediliyor
- İlk sorun: araçta gerekli bilgi olmadığında net bir yönlendirme mesajı üretilmiyor
- Çözüm: yanıt mesajına "assistant" kelimesi eklenince akış daha doğal hale geliyor
Llama Stack’te tool çağrılarının ele alınma biçimi
chatCompletion() API kullanıldığında tool çağrılarının doğrudan işlenmesi gerekiyor
handleResponse() fonksiyonu ile tool istekleri algılanıp sonuçlar tekrar mesaj olarak iletiliyor
tool_choice varsayılan olarak "auto" olsa da, tool varsa kullanma eğilimi oldukça güçlü
- Soru tool ile ilgili olmasa bile tool kullanma denemesinden vazgeçip “yanıt verememe” şeklinde sonuçlanabildiği gözlemleniyor
MCP ile Llama Stack entegrasyonu deneyi
- MCP(Model Context Protocol) ile araçlar harici bir sunucuda host edilebiliyor ve farklı framework’lerle paylaşılabiliyor
- MCP sunucusu, Supergateway üzerinden stdio tabanlı sunucuyu SSE biçimine köprüleyerek çalıştırıyor
- MCP sunucusu kaydedildikten sonra, Llama Stack agent API kullanılarak MCP araçları otomatik çağrılabiliyor
- agent API şunları sağlıyor:
- Durum/mesaj yönetimini otomatik olarak ele alıyor
- Tool çağrısı akışını framework içerde yürütüyor
- Ancak tool çağrısı log’ları doğrudan görülemiyor; yalnızca nihai yanıt doğrulanabiliyor
Yerel ortama erişim için MCP kullanımı
- MCP sunucusu yerel ortamda stdio yöntemiyle çalıştırılıp Llama Stack’e bağlanabiliyor
- MCP sunucusunun tool tanım JSON’unu Llama Stack uyumlu biçime dönüştüren bir kod gerekiyor
mcpClient.callTool() ile LLM yanıt akışı içinde tool sonuçları döndürülebiliyor
- Böylece merkezi bir sunucu yerine yerel uygulama ortamına erişim senaryoları kurulabiliyor
Sonuç
- Node.js ortamında Llama Stack üzerinden LLM ve tool çağrısı entegrasyonuna dair pratik bir çalışma yapılıyor
- Yerel araçlar, uzak MCP ve yerel MCP üzerinden farklı kullanım örnekleri sunuluyor
- Özellikle JavaScript/TypeScript geliştiricileri için pratik kod örnekleri ve akışlar gösteriliyor
- Gelecekte LLM ile Node.js’i entegre etmek isteyen geliştiriciler için faydalı bir başlangıç noktası oluşturuyor
Ek kaynaklar
Henüz yorum yok.