Crie uma função para retornar uma resposta do LLM
Seu chatbot agora tem várias ferramentas disponíveis. Ainda assim, é útil invocar o LLM sozinho quando a pergunta não tem relação com nenhuma das ferramentas adicionadas ao chatbot. Agora você vai definir uma função que verifica a última mensagem da conversa para possíveis chamadas de ferramenta. Se não houver, o chatbot usará apenas o LLM para retornar uma resposta. Para conseguir lidar tanto com as consultas do usuário quanto com as respostas do chatbot, os seguintes módulos foram importados para você tratar diferentes tipos de mensagens.
from langchain_core.messages import AIMessage, HumanMessage
Este exercício faz parte do curso
Projetando Sistemas Agentes com LangChain
Instruções do exercício
- Acesse a última mensagem do
stateusando"messages". - Escreva uma condição para verificar se
last_messageé umAIMessagee se essa mensagem também contémtool_calls. - Se a condição for satisfeita, retorne o primeiro
"response"detool_calls, obtido delast_message, no campocontentdoAIMessage. - Se a condição não for satisfeita, aplique
.invoke()amodel_with_toolspara gerar uma resposta, passando todo o histórico da conversa destate["messages"].
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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": [____.____(____["____"])]}