Geliştirici, LLM Sohbet Botlarının Komut Dosyalarını Güvenilir ve Ucuz Bir Şekilde Takip Etmesini Sağlayan FSM Tabanlı Çerçeve Geliştirdi
Bir geliştirici, LLM tabanlı sohbet botlarının önceden tanımlanmış bir diyalog komut dosyasını kesin olarak takip etmesini sağlamak için sonlu durum makinesini dil modeliyle birleştiren, pahalı çok çağrılı aracı mimarilerine güvenmek yerine özel bir açık kaynak kitaplık geliştirdiğini anlatıyor. tg-statemachine-bot adlı proje, konuşmaları YAML dosyalarında tanımlanan aşamalara bölüyor ve bağlamı küçük tutmak ile davranışı öngörülebilir kılmak için modele yalnızca mevcut aşamayla ilgili talimatları besliyor.
Yazar, iş chatbotu üzerinde çalışırken, büyük dil modellerinin uzun ve ayrıntılı komut dosyalarını güvenilir şekilde takip etmekte zorlandığını; çünkü geniş bağlam pencerelerinin uzun talimatlar boyunca yapıyı kaybetmelerine neden olduğunu ve görevleri adımlara bölmek için mevcut aracı tabanlı çözümlerin model çağrılarının sayısını ve dolayısıyla her diyaloğun maliyetini artırdığını buldu. Bu sorunu ucuza çözmek için yazar, sonlu durum makinesinin (FSM) genel konuşma grafiğini yönettiği ve hangi aşama talimatlarının LLM'a herhangi bir anda iletileceğini kontrol ettiği, böylece modelin tüm komut dosyası yerine yalnızca geçerli aşamayla ilgili talimatları gördüğü açık kaynaklı bir kütüphane geliştirdi. Mimari üç modülden oluşuyor: diyalog grafiğini ve kullanıcı durumunu izleyen bir FSM modülü, değişiklik geçmişiyle birlikte diyalog değişkenlerini saklayan bir vars_memory modülü ve LLM'a yapılan çağrıları düzenleyen bir conversation_core modülü. Her turda model, kullanıcıya mesaj, geçiş sinyali, yapılandırılmış aşama sonuçları ve aşama özeti olmak üzere dört alanlı sabit bir sözleşmeyle yanıt vermelidir; model bu sözleşmeyi ihlal ederse (geçersiz JSON, var olmayan geçiş sinyalleri, eksik sonuçlar) sistem otomatik olarak düzeltici bir takip isteği gönderir. Aşama geçişleri arasında konuşma sürekliliği, OpenAI'nin yanıtlar API'sindeki önceki yanıt kimliği zincirleme özelliği kullanılarak sağlanır; bu aynı zamanda daha ucuz önbellek okuma fiyatlandırmasıyla maliyeti de düşürür. Genel diyalog komut dosyası bir YAML dosyasında açıklanırken, ayrıntılı aşama talimatları ayrı dosyalarda tutulur; bu da temel motorun farklı chatbot alanlarında değişiklik yapılmadan yeniden kullanılmasını sağlar. YAML'ın elle düzenlenmesinin karmaşıklığını yönetmek için yazar, YAML'ı daha kolay insan incelemesi için bir draw.io diyagramına dönüştüren bir betik ve test konuşmalarını genişletilebilir sistem günlükleriyle sohbet benzeri bir biçimde incelemek için bir günlük görüntüleyici aracı geliştirdi; bu araç yerel olarak hata ayıklarken gerçek zamanlı güncellemeleri de içeriyor. Gösteri olarak depo, yalnız çalışan geliştiricilerin proje gereksinimlerini kapsamlandırmasına yardımcı olan bir 'analist botu' örneği içeriyor; yazar, bu botun kullanıcı mesajı başına yalnızca yaklaşık 1,03 LLM çağrısı gerektirdiğini ve yine de komut dosyasını güvenilir şekilde takip edip yapılandırılmış bilgi topladığını bildiriyor, ancak demo botunun istem mühendisliğinin cilalanmadığını belirtiyor.
Kaynak: Habr — хаб NLP —
orijinal
