Umut ABALI
← Notlara dön

Tahmin etmek yerine reddetmek: multimodal chatbot'umdaki grounding kapısı

RAGGroundingLangGraph

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