Konfigurowanie wyników dla wielu narzędzi
Graf chatbota jest gotowy do działania! Możesz teraz przetestować, jak chatbot radzi sobie z różnymi zapytaniami wymagającymi użycia różnych narzędzi. Aby zarządzać wiadomościami chatbota, odpowiednie moduły zostały już zaimportowane, a parametry config skonfigurowano dla jednej sesji.
from langchain_core.messages import AIMessage, HumanMessage
config = {"configurable": {"thread_id": "1"}}
To ćwiczenie jest częścią kursu
Projektowanie systemów agentowych z LangChain
Instrukcje do ćwiczenia
- Utwórz słownik wiadomości
inputs, w którym zapytanie użytkownika (query) będzie przekazane jakocontentdoHumanMessage. - Przesyłaj strumieniowo
msgimetadataz chatbotaapp, iterując po wynikach za pomocą metody.stream()z argumentamiinputsiconfig. - Sprawdź, czy każde
msgmacontenti nie jest obiektemHumanMessage, a następnie wyświetl jegocontentzflushustawionym naTrue, aby natychmiast drukować wyniki. - Przetestuj chatbota, wywołując
multi_tool_output()z zapytaniami wymagającymi użycia różnych narzędzi.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Create input message with the user's query
def multi_tool_output(____):
inputs = {"messages": [____(____=____)]}
# Stream messages and metadata from the chatbot application
for ____, ____ in app.____(____, ____, stream_mode="messages"):
# Check if the message has content and is not from a human
if ____.____ and not isinstance(____, ____):
print(____.____, end="", flush=____)
print("\n")
# Call the chatbot with different tools
____("Is `may a moody baby doom a yam` a palindrome?")
____("What happened on 20th July, 1969?")