ÎncepețiÎncepe gratuit

Creează o funcție pentru a returna un răspuns LLM

Chatbot-ul tău dispune acum de numeroase instrumente. Totuși, este util să invoce direct modelul LLM atunci când o întrebare nu are legătură cu niciunul dintre instrumentele adăugate. Vei defini acum o funcție care verifică ultimul mesaj din conversație pentru a detecta eventuale apeluri de instrumente. Dacă nu există niciunul, chatbot-ul va folosi pur și simplu modelul LLM pentru a genera un răspuns. Pentru a gestiona atât întrebările utilizatorului, cât și răspunsurile chatbot-ului, următoarele module au fost deja importate pentru tine.

from langchain_core.messages import AIMessage, HumanMessage

Acest exercițiu face parte din cursul

Proiectarea sistemelor agentice cu LangChain

Vezi cursul

Instrucțiuni pentru exercițiu

  • Accesează ultimul mesaj din state folosind cheia "messages".
  • Scrie o instrucțiune condițională care verifică dacă last_message este un AIMessage și dacă acest mesaj conține și tool_calls.
  • Dacă condiția este îndeplinită, returnează primul "response" din tool_calls al variabilei last_message, în câmpul content al obiectului AIMessage.
  • Dacă condiția nu este îndeplinită, aplică .invoke() pe model_with_tools pentru a genera un răspuns, transmițând întregul istoric al conversației din state["messages"].

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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": [____.____(____["____"])]}
Editează și rulează codul