Zacznij terazZacznij za darmo

Tworzenie funkcji zwracającej odpowiedź modelu LLM

Twój chatbot ma teraz do dyspozycji wiele narzędzi. Mimo to przydatne jest samodzielne wywoływanie modelu LLM, gdy pytanie nie jest związane z żadnym z dodanych narzędzi. Teraz zdefiniujesz funkcję, która sprawdza ostatnią wiadomość w rozmowie pod kątem potencjalnych wywołań narzędzi. Jeśli żadne nie są dostępne, chatbot po prostu użyje modelu LLM, aby udzielić odpowiedzi. Aby obsługiwać zarówno zapytania użytkownika, jak i odpowiedzi chatbota, zaimportowano dla ciebie następujące moduły do obsługi różnych typów wiadomości.

from langchain_core.messages import AIMessage, HumanMessage

To ćwiczenie jest częścią kursu

Projektowanie systemów agentowych z LangChain

Zobacz kurs

Instrukcje do ćwiczenia

  • Pobierz ostatnią wiadomość ze state za pomocą klucza "messages".
  • Napisz instrukcję warunkową sprawdzającą, czy last_message jest instancją AIMessage oraz czy ta wiadomość zawiera tool_calls.
  • Jeśli warunek jest spełniony, zwróć pierwszą wartość "response" z tool_calls pobraną z last_message w polu content obiektu AIMessage.
  • Jeśli warunek nie jest spełniony, wywołaj .invoke() na model_with_tools, aby wygenerować odpowiedź, przekazując pełną historię rozmowy z state["messages"].

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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": [____.____(____["____"])]}
Edytuj i uruchom kod