Creează o funcție pentru a returna un răspuns LLM
Chatbot-ul tău dispune acum de numeroase instrumente. Totuși, este util să invoce direct modelul LLM atunci când o întrebare nu are legătură cu niciunul dintre instrumentele adăugate. Vei defini acum o funcție care verifică ultimul mesaj din conversație pentru a detecta eventuale apeluri de instrumente. Dacă nu există niciunul, chatbot-ul va folosi pur și simplu modelul LLM pentru a genera un răspuns. Pentru a gestiona atât întrebările utilizatorului, cât și răspunsurile chatbot-ului, următoarele module au fost deja importate pentru tine.
from langchain_core.messages import AIMessage, HumanMessage
Acest exercițiu face parte din cursul
Proiectarea sistemelor agentice cu LangChain
Instrucțiuni pentru exercițiu
- Accesează ultimul mesaj din
statefolosind cheia"messages". - Scrie o instrucțiune condițională care verifică dacă
last_messageeste unAIMessageși dacă acest mesaj conține șitool_calls. - Dacă condiția este îndeplinită, returnează primul
"response"dintool_callsal variabileilast_message, în câmpulcontental obiectuluiAIMessage. - Dacă condiția nu este îndeplinită, aplică
.invoke()pemodel_with_toolspentru a genera un răspuns, transmițând întregul istoric al conversației dinstate["messages"].
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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": [____.____(____["____"])]}