Comece agoraComece grátis

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 exercicio faz parte do curso

Projetando Sistemas Agentes com LangChain

Ver curso

Instruções do exercicio

  • Acesse a última mensagem do state usando "messages".
  • Escreva uma condição para verificar se last_message é um AIMessage e se essa mensagem também contém tool_calls.
  • Se a condição for satisfeita, retorne o primeiro "response" de tool_calls, obtido de last_message, no campo content do AIMessage.
  • Se a condição não for satisfeita, aplique .invoke() a model_with_tools para gerar uma resposta, passando todo o histórico da conversa de state["messages"].

exercicio interativo prático

Tente este exercicio 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": [____.____(____["____"])]}
Editar e Executar Código