LangChain Ajanları için Konuşma Hafızası
Hafıza ekleyerek LangChain ajanlarını daha akıllı hale getirebilirsiniz. Bu, onların önceki mesajlardaki bilgileri hatırlamasını sağlar.
Bu yazıda, bir destek ajanını çok turlu (multi-turn) bir araca dönüştürüyorum.
Birinci turda ajan, bir müşteriyi ve bir faturayı sorgular. İkinci turda ajan, kimlik bilgilerini (ID) tekrar sormadan bir destek talebi (ticket) oluşturur.
Bilmeniz gereken üç temel kavram:
- Checkpointer: Kısa süreli hafıza görevi görür. Her adımdan sonra mesajları ve durumu (state) kaydeder.
- thread_id: Bu, konuşma anahtarınızdır. Bir sohbeti devam ettirmek için aynı ID'yi kullanın. Yeni bir oturum başlatmak için yeni bir ID kullanın.
- Store: Kullanıcı tercihleri gibi bilgiler için uzun süreli hafızadır.
Bir destek akışında nasıl çalışır:
- Kullanıcı, 1042 numaralı müşteri ID'sini ve 8891 numaralı faturayı sorgulamasını ister. Ajan verileri bulur.
- Kullanıcı "Talebi oluştur" der. Ajan, ilk adımdaki ID'leri hatırlar ve görevi tamamlar.
Test etmek için MemorySaver kullanın. Durumu (state) yerel işleminizde tutar.
Önemli: MemorySaver, kodunuz çalışmayı durdurduğunda temizlenir. Üretim ortamı (production) için Postgres veya SQLite gibi bir veritabanı kullanın. thread_id API'si değişmediği için kod aynı kalır.
Farklı kullanıcılar için farklı thread ID'leri kullanarak oturumları ayrı tutun. Bu, bir kişinin verilerinin başka bir kişinin sohbetine sızmasını önler.
Tam scriptler için langchain-agent-memory-nodejs-demo klasörüne göz atın.
Kaynak: https://dev.to/zsevic/conversation-memory-for-langchain-agents-31pa
İsteğe bağlı öğrenme topluluğu: https://t.me/GyaanSetuAi