Bir dil modeli eğitim verisinde ne varsa onu bilir; sonrasında olan hiçbir şeyi bilmez. Bu sabahki döviz kurunu, hizmetinizin şu an çalışıp çalışmadığını ya da bir rakibin geçen hafta fiyat sayfasında neyi değiştirdiğini bilemez. Bu yüzden insanların güncel konularda soru soracağı bir sohbet botunun, modelin sağlayamayacağı üç şeye ihtiyacı vardır: soru anında doğru malzemeyi getiren bir getirme adımı, her soru türü için işe yarar bir “güncel” tanımı ve ne zaman yanıt veremeyeceğini söyleyeceğine dair bir kural. Bu rehber üçünü de ele alıyor; web'e dayanan yanıtlar, canlı veri akışları ve çok turlu asistanlar için aynı ölçüde.
Her soru türü için “güncel”in ne demek olduğuna karar verin
Her soru taze veri gerektirmez; hepsine aynı şekilde davranmak ya zaman kaybettirir ya da bayat yanıtlar üretir. Kullanıcılarınızın gerçekten sorduğu soruları tazelik sınıflarına ayırın:
| Sınıf | Örnek soru | Ne kadar taze | Yanıtın kaynağı |
|---|---|---|---|
| Sabit | FAVÖK ne demek? | Nadiren değişir | Model bilgisi ya da kendi belgeleriniz |
| Yavaş değişen | Tedarikçinin kurumsal planı neleri kapsıyor? | Günler ya da haftalar | Web araması ya da izlenen bir sayfa |
| Hızlı değişen | Düzenleyici bugün ne açıkladı? | Saatler | Tarih filtreli haber ya da web araması |
| Canlı durum | Siparişim kargoya verildi mi? Hizmet çalışıyor mu? | Şu an | Yapılandırılmış bir API çağrısı |
Botun önündeki küçük bir yönlendirici her soruyu sınıflandırır ve yolu seçer. Bilinen bir terimi tanımlamak için web'de arama yapmak gecikme ekler ve kötü bir sayfanın içeri sızma ihtimalini doğurur; canlı durum sorusunu model bilgisinden yanıtlamak ise düpedüz yanlıştır.
Getirme adımını tasarlayın
Belge gerektiren sorularda işin çoğunu getirme adımı yapar. Sağlam duran bir sıra:
- Konuşma turunu bağımsız bir sorguya dönüştürün. Bir sohbette kullanıcılar “peki kurumsal planları?” ya da “Almanya'da da öyle mi?” der. Bir arama motoru “onların” ya da “öyle” sözcüğünün neyi kastettiğini bilemez. Önce konuşmaya bakarak bu göndermeleri çözün.
- Kaynağı seçin. Tazelik sınıfına göre kendi bilgi tabanınız, bir web arama API'si, bir haber araması ya da yapılandırılmış bir API.
- Yalnızca özetleri değil, sayfaları çekin. Arama özetleri kırpılmıştır ve bazen eski bir sürümden önbelleğe alınmıştır. İlk birkaç sonuç için sayfanın kendisini okuyun.
- Pasajları seçin. Soruyu karşılayan bölümleri; her sayfanın URL'si, başlığı, yayım ya da güncelleme tarihi ve sizin getirdiğiniz zamanla birlikte saklayın.
- Pasajlardan yanıt verin ve her iddiayı geldiği pasaja bağlayın.
Ekiplerin en sık atladığı, kullanıcıların ise en çok fark ettiği adım yeniden yazmadır. Basit bir örnek:
Konuşma:
Kullanıcı: Hangi proje araçları kurum içi kurulum seçeneği sunuyor?
Bot: ...üç araç listeler...
Kullanıcı: İkincisi tek oturum açmayı (SSO) destekliyor mu?
Bağımsız sorgu:
"[ikinci aracın adı] SSO desteği dokümantasyon"
Bunun altyapısı için web arama API'si nedir ve canlı web verisiyle RAG yazılarına bakın.
Gerçek zamanlı veri aramaya değil, araçlara aittir
Arama belge bulur. Dakikadan dakikaya değişen durum için yanlış araçtır: stok seviyeleri, sipariş durumu, hesap bakiyeleri, döviz kurları, hizmet sağlığı, bir uçuşun kapı numarası. Bunlar için modele, kayıt sistemini doğrudan çağıran bir araç verin.
İyi bir gerçek zamanlı araç dar ve tipli olur; yanıtın “şu zaman itibarıyla” diyebilmesi için de kendi zaman damgasını ve kaynağını döndürür:
get_order_status(order_id: string)
returns: { status, carrier, updated_at, source_system }
Birkaç kural bu araçları dürüst tutar. Yalnızca tazelik sınıfının izin verdiği süre kadar önbelleğe alın; bir saat önbellekte kalmış hizmet durumu artık durum değildir. Üst sistem erişilemez olduğunda, modelin “hiçbir şey yok” diye okuyabileceği boş bir değer yerine açık bir hata döndürün. Ve okuyan araçları bir şeyi değiştiren araçlardan ayrı tutun. Bir siparişi sorgulamak zararsızdır; onu iptal etmek ya da teslimat adresini değiştirmek kullanıcının onayını beklemelidir. GoCux Sohbet içinde bir şeyi değiştirecek her araç çağrısı, siz onaylayana kadar bekletilir.
Yanıtın uyması gereken tazelik kuralları
Getirme adımı güncel malzemeyi içeri alır; bu kurallar da yanıtın bu emeği boşa çıkarmamasını sağlar:
- Tarihi gösterin. Değişken her olgu, “itibarıyla” zamanını ya da geldiği kaynağın tarihini taşır.
- En yeni yetkili kaynağı tercih edin; iki kaynak çeliştiğinde birini sessizce seçmek yerine bunu söyleyin ve ikisini de tarihleriyle gösterin.
- Zamana duyarlı sorularda tarihsiz sayfalara şüpheyle yaklaşın; onları işaretleyin ya da dışarıda bırakın.
- Geçmişin getirmeyi ezmesine izin vermeyin. Kullanıcının dün söylediği bir fiyat ya da botun belleğinde saklanan bir olgu, bugünün fiyatı değildir. Bellek tercihler ve bağlam için yararlıdır; canlı bir akışın yerini tutmaz.
- Zamana duyarlı takip sorularında yeniden getirin; konuşmanın başındaki pasajları yeniden kullanmayın.
Okuduğunuzu kaynak gösterin, ne zaman reddedeceğinizi bilin
Bir yanıttaki her olgusal iddia, onu destekleyen pasaja ve gerçekten okunan sayfanın URL'sine işaret etmelidir. Modelin bellekten URL üretmesine asla izin vermeyin; makul görünen bir bağlantı kanıt değildir ve derli toplu bir dipnot, bambaşka bir şey söyleyen bir sayfayı gösteriyor olabilir. Atıf biçimleri ve kontrolleri için kaynaklarını gösteren sohbet botları rehberine bakın.
Ne zaman yanıt vermeyeceğine karar vermek de aynı ölçüde önemlidir. Bir sohbet botu şu durumlarda reddetmeli ya da kısmen yanıt verip bunu açıkça söylemelidir:
- getirme başarısız olduysa ya da kaynak erişilemez durumdaysa; bu, çalışıp hiçbir şey bulamayan bir aramadan farklıdır;
- kaynaklar bulundu ama hiçbiri sorulan soruya verilecek bir yanıtı desteklemiyorsa;
- kaynaklar çelişiyor ve çelişki getirilen malzemeyle çözülemiyorsa;
- yanıt, botun sahip olmadığı bir eylem ya da yetki gerektiriyorsa;
- soru, botun kurulduğu kapsamın dışında kalıyorsa.
İyi bir ret somuttur ve bir sonraki adımı önerir:
Fiyat sayfasına şu an ulaşamadım, bu yüzden bugünkü fiyatı doğrulayamıyorum. Elimdeki son sürüm [tarih] tarihinde alındı. Güncel olmayabileceği işaretlenmiş hâliyle görmek ister misiniz?
Bu bir başarısızlık değil, işe yarar bir yanıttır. Gerekçesi ret de bir sonuçtur yazısında ayrıntılı olarak anlatılıyor.
GoCux nereye oturur
GoCux bir web arama API'si değildir ve açık web'i okumaz; dolayısıyla herkese açık bir web sohbet botunun getirme altyapısı da değildir. Bu tasarımın kanıt ve gözden geçirmeyle ilgili kısımlarını karşılar. Bilgi arama, tek bir projenin belgeleriyle sınırlanmış bir soruyu pasajlar ve atıflarıyla yanıtlar; boş bir sonuç geçerli bir yanıt olarak bildirilir, “erişilemiyor” ise ayrı bir durum olarak. Yanıtlar, bir yanıtı çalışma alanından çıkmadan önce gözden geçirilecek şekilde hazırlar; yanıt bir müşteriye gidecekse bu önemlidir. Web malzemesi bir projeye yetkilendirilmiş bir tarama ya da dışa aktarma adımıyla alınabilir ve özgün sayfa adresini ve alınma tarihini korur; böylece bir kaynağın yaşı içe aktarmadan sonra da görünür kalır.
Yayına almadan önce neyi test etmeli
Bilinen bir tarih itibarıyla doğruladığınız yanıtları olan, zamana duyarlı sorulardan küçük bir değerlendirme seti kurun ve onu düzenli aralıklarla yeniden çalıştırın; çünkü doğru yanıtlar zamanla değişir. Her çalıştırmada şunları kontrol edin:
- Değişken her iddia bir “itibarıyla” zamanı ya da kaynak tarihi gösteriyor.
- Atıflar açılıyor ve gösterilen pasaj iddiayı destekliyor.
- Takip soruları doğru biçimde bağımsız sorgulara dönüştürülüyor.
- Canlı durum soruları aramaya değil, araçlara gidiyor.
- Bir kaynak çöktüğünde bot tahmin yürütmek yerine bunu söylüyor.
- Bir şeyi değiştiren araçlar onay bekliyor.
- Çelişen kaynaklar tarihleriyle birlikte bir çelişki olarak gösteriliyor.
Getirme altyapılarını kendi sorularınız üzerinde karşılaştırma yöntemleri için web aramasını kendi sorgularınızla değerlendirmek yazısına bakın.
Bu iş akışını çalışma alanınıza taşıyın.
Kapsamı belirleyin. Kanıtları inceleyin. Gereken adımları onaylayın.