Tahmin etmek yerine reddetmek: multimodal chatbot'umdaki grounding kapısı
Bir doküman chatbot'unun en kötü hatası, dokümanların desteklemediği akıcı bir cevap. Multimodal chatbot'umda retrieval doğrudan üretime gitmiyor. Önce birkaç ucuz kontrol yeterli kanıt olup olmadığına karar veriyor.
Üç bölgeli dense kapısı
- pass: en iyi dense benzerlik retrieval'a güvenecek kadar yüksek (RAG_DENSE_PASS_SIMILARITY, örnek config'te 0.62).
- soft: sınırda (RAG_MIN_DENSE_SIMILARITY, 0.45 üzerinde). Retrieval devam ediyor, kararı grader veriyor.
- weak: retrieval yine çalışıyor, ama bağlam yetersizse web araması yapılmadan ret dönülebiliyor.
Evet/hayır değil, gerekçe kodları
Grader sufficient, partial, insufficient_context, needs_live_data veya irrelevant dönüyor. Bu da sonraki adımı netleştiriyor: atıflarla cevap üretmek, canlı veri için web'e gitmek ya da nazikçe reddetmek.
Boş bir web aramasına da güvenmemek
Tavily sonuçları güvenilemeyecek kadar zayıfsa boş sayılıyor; örneğin çok kısa snippet'ler veya bilinmeyen tarih ile genel bir başlığın bir arada olması. Bu durumda asistan cevap uydurmak yerine reddediyor.
Kötü cevapları cache'lememek
Semantik cache kısa, fallback gibi görünen veya yarım kalmış cevapları atlıyor. Böylece bir ret veya kesilmiş bir yanıt bir sonraki kullanıcıya tekrar gösterilmiyor.
Ödünleşim
Eşikler, uydurma cevapları retlerle takas ediyor. Doğru değerler korpusa bağlı. Bu yüzden sıradaki adım, eşikleri ayarlamak için cevaplanabilir ve cevaplanamaz Türkçe sorulardan oluşan etiketli bir set. Benchmark yakında.
Proje: Multimodal Agentic Chatbot