Crie uma função para retornar uma resposta LLM
Seu chatbot agora tem muitas ferramentas disponíveis. Ainda é útil chamar o LLM por conta própria quando uma pergunta não está relacionada a nenhuma das ferramentas que foram adicionadas ao chatbot. Agora, você definirá uma função que verifica a última mensagem da conversa em busca de possíveis chamadas de ferramentas. Se não houver nenhuma disponível, o chatbot simplesmente usará o endereço LLM para retornar uma resposta. Para poder lidar com as consultas do usuário e com as respostas do chatbot, os módulos a seguir foram importados para que você possa lidar com diferentes tipos de mensagens.
from langchain_core.messages import AIMessage, HumanMessage
Este exercício faz parte do curso
Projetando sistemas agênticos com LangChain
Instruções de exercício
- Acesse a última mensagem do site
state
usando"messages"
. - Escreva uma instrução condicional para verificar se
last_message
é umAIMessage
e se essa mensagem também apresentatool_calls
. - Se a condição for atendida, você retornará o primeiro
"response"
detool_calls
retirado dolast_message
no campocontent
doAIMessage
. - Se a condição não for atendida, aplique
.invoke()
amodel_with_tools
para gerar uma resposta, passando o histórico completo da conversa destate["messages"]
.
Exercício interativo prático
Experimente este exercício preenchendo 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": [____.____(____["____"])]}