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 do exercício
- Acesse a última mensagem do site
stateusando"messages". - Escreva uma instrução condicional para verificar se
last_messageé umAIMessagee se essa mensagem também apresentatool_calls. - Se a condição for atendida, você retornará o primeiro
"response"detool_callsretirado dolast_messageno campocontentdoAIMessage. - Se a condição não for atendida, aplique
.invoke()amodel_with_toolspara gerar uma resposta, passando o histórico completo 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": [____.____(____["____"])]}