Zadawaj pytania o historię rozmowy
Dzięki podstawowemu agentowi ReAct w LangChain możesz zadawać pytania uzupełniające, przechowując historię rozmowy agenta. Ponieważ model językowy ma dostęp do wszystkich poprzednich wiadomości, możesz teraz zadawać nowe pytania, a agent wykorzysta pełny kontekst rozmowy do udzielenia odpowiedzi.
Teraz zadasz pytanie uzupełniające dotyczące boków innego trójkąta.
Aby móc korzystać z możliwości HumanMessage i AIMessage, następujące moduły zostały już za ciebie zaimportowane: HumanMessage, AIMessage.
To ćwiczenie jest częścią kursu
Projektowanie systemów agentowych z LangChain
Instrukcje do ćwiczenia
- Przypisz podane pytanie w języku naturalnym do zmiennej
new_query. - Wywołaj obiekt
app, przekazując wszystkie wiadomości, w tymmessage_historyoraznew_query. - Użyj wyrażenia listowego, aby wyodrębnić z
response["messages"]wiadomości oznaczone jakoHumanMessagelubAIMessage. - Przekaż nowe zapytanie jako dane wejściowe i wydrukuj wyodrębnione wiadomości, podając klasy wiadomości do klucza
"agent_output".
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
message_history = response["messages"]
____ = "What about one with sides 12 and 14?"
# Invoke the app with the full message history
response = app.____({"messages": ____ + [("human", ____)]})
# Extract the human and AI messages from the result
filtered_messages = [msg for msg in ____["____"] if isinstance(msg, (____, ____)) and msg.content.strip()]
# Pass the new query as input and print the final outputs
print({
"user_input": ____,
"agent_output": [f"{msg.____.____}: {msg.content}" for msg in ____]
})