ComenzarEmpieza gratis

Crea una función para devolver una respuesta LLM

Tu chatbot dispone ahora de un montón de herramientas. Sigue siendo útil invocar al LLM por sí mismo cuando una pregunta no está relacionada con ninguna de las herramientas que se han añadido al chatbot. Ahora definirás una función que compruebe el último mensaje de la conversación en busca de posibles llamadas a herramientas. Si no hay ninguno disponible, el chatbot utilizará simplemente la dirección LLM para dar una respuesta. Para poder gestionar tanto las consultas del usuario como las respuestas del chatbot, se han importado los siguientes módulos para que puedas gestionar distintos tipos de mensajes.

from langchain_core.messages import AIMessage, HumanMessage

Este ejercicio forma parte del curso

Diseño de Sistemas Agenéticos con LangChain

Ver curso

Instrucciones de ejercicio

  • Accede al último mensaje desde state utilizando "messages".
  • Escribe una declaración condicional para comprobar si el last_message es un AIMessage y que este mensaje también contiene tool_calls.
  • Si se cumple la condición, devuelve el primer "response" de tool_calls tomado del last_message en el campo content del AIMessage.
  • Si no se cumple la condición, aplica .invoke() a model_with_tools para generar una respuesta, pasando el historial completo de la conversación desde state["messages"].

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# 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 y ejecutar código