ComeçarComece gratuitamente

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

Ver Curso

Instruções de exercício

  • Acesse a última mensagem do site state usando "messages".
  • Escreva uma instrução condicional para verificar se last_message é um AIMessage e se essa mensagem também apresenta tool_calls.
  • Se a condição for atendida, você retornará o primeiro "response" de tool_calls retirado do last_message no campo content do AIMessage.
  • Se a condição não for atendida, aplique .invoke() a model_with_tools para gerar uma resposta, passando o histórico completo da conversa de state["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": [____.____(____["____"])]}
Editar e executar código