LangChain Agents के लिए Conversation Memory
आप मेमोरी जोड़कर LangChain agents को और भी स्मार्ट बना सकते हैं। यह उन्हें पिछले संदेशों से तथ्यों (facts) को याद रखने की अनुमति देता है।
इस पोस्ट में, मैं एक सपोर्ट एजेंट को मल्टी-टर्न (multi-turn) टूल में बदल देता हूँ।
पहले टर्न में, एजेंट एक ग्राहक और एक इनवॉइस की जानकारी ढूँढता है। दूसरे टर्न में, एजेंट बिना दोबारा ID मांगे टिकट बना देता है।
जानने योग्य तीन मुख्य अवधारणाएँ:
- Checkpointer: यह शॉर्ट-टर्म मेमोरी के रूप में कार्य करता है। यह हर स्टेप के बाद संदेशों और स्टेट (state) को सेव करता है।
- thread_id: यह आपकी बातचीत की कुंजी (key) है। चैट जारी रखने के लिए एक ही ID का उपयोग करें। एक नया सेशन शुरू करने के लिए नई ID का उपयोग करें।
- Store: यह यूजर की पसंद (preferences) जैसे तथ्यों के लिए लॉन्ग-टर्म मेमोरी है।
सपोर्ट फ्लो में यह कैसे काम करता है:
- यूजर कस्टमर ID 1042 और इनवॉइस 8891 को खोजने के लिए कहता है। एजेंट डेटा ढूँढ लेता है।
- यूजर कहता है "Create the ticket." एजेंट पहले स्टेप से ID को याद रखता है और कार्य पूरा कर देता है।
टेस्टिंग के लिए, MemorySaver का उपयोग करें। यह आपके लोकल प्रोसेस में स्टेट को रखता है।
महत्वपूर्ण: जब आपका कोड चलना बंद हो जाता है, तो MemorySaver क्लियर हो जाता है। प्रोडक्शन के लिए, Postgres या SQLite जैसे डेटाबेस का उपयोग करें। कोड वही रहता है क्योंकि thread_id API नहीं बदलता है।
अलग-अलग यूजर्स के लिए अलग-अलग thread IDs का उपयोग करके सेशन्स को अलग रखें। यह एक व्यक्ति के डेटा को दूसरे व्यक्ति की चैट में लीक होने से रोकता है।
पूरे स्क्रिप्ट के लिए langchain-agent-memory-nodejs-demo फोल्डर देखें।
स्रोत: https://dev.to/zsevic/conversation-memory-for-langchain-agents-31pa
वैकल्पिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi