LLM रिस्पॉन्स लौटाने के लिए एक फंक्शन बनाएँ
अब आपके चैटबॉट के पास कई टूल उपलब्ध हैं। फिर भी, जब पूछा गया सवाल इन टूल्स से असंबंधित हो, तब अकेले LLM को इनवोक करना उपयोगी रहता है। आप अब एक फंक्शन परिभाषित करेंगे जो बातचीत के आखिरी मैसेज में संभावित टूल कॉल्स को जाँचेगा। अगर कोई टूल कॉल न मिले, तो चैटबॉट सीधे LLM का उपयोग करके उत्तर देगा। यूज़र के प्रश्नों और चैटबॉट के उत्तरों—दोनों—को सँभालने के लिए, अलग-अलग प्रकार के मैसेज हैंडल करने हेतु आपके लिए निम्न मॉड्यूल इम्पोर्ट किए गए हैं.
from langchain_core.messages import AIMessage, HumanMessage
यह अभ्यास पाठ्यक्रम का हिस्सा है
LangChain के साथ Agentic Systems डिज़ाइन करना
अभ्यास निर्देश
"messages"का उपयोग करकेstateसे आखिरी मैसेज एक्सेस करें.- एक कंडीशनल लिखें जो जाँचे कि
last_messageएकAIMessageहै और इस मैसेज मेंtool_callsभी मौजूद हैं. - अगर शर्त पूरी होती है, तो
last_messageसे लिए गएtool_callsमें से पहला"response"लेकरAIMessageकेcontentफील्ड में लौटाएँ. - अगर शर्त पूरी नहीं होती, तो
model_with_toolsपर.invoke()लागू करें ताकि रिस्पॉन्स जनरेट हो, औरstate["messages"]से पूरी बातचीत का इतिहास पास करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Extract the last message from the history
def call_model(state: MessagesState):
____ = ____["____"][____]
# If the last message has tool calls, return the tool's response
if isinstance(____, ____) and ____.____:
# Return only the messages from the tool call
return {"messages": [____(content=____.____[0]["____"])]}
# Otherwise, proceed with a regular LLM response
return {"messages": [____.____(____["____"])]}