Задаём вопросы об истории разговора
В базовом ReAct-агенте LangChain можно задавать уточняющие вопросы, сохраняя историю разговора агента. Поскольку языковая модель имеет доступ ко всем предыдущим сообщениям, вы можете задавать новые вопросы, а агент будет использовать полный контекст переписки для ответа.
Теперь вы зададите уточняющий вопрос о сторонах другого треугольника.
Чтобы использовать возможности HumanMessage и AIMessage, следующие модули уже импортированы для вас: HumanMessage, AIMessage.
Это упражнение является частью курса
Проектирование агентных систем с LangChain
Инструкции к упражнению
- Присвойте заданный вопрос на естественном языке переменной
new_query. - Вызовите объект
app, передав все сообщения, включаяmessage_historyиnew_query. - Используйте генератор списка, чтобы извлечь из
response["messages"]сообщения с меткамиHumanMessageилиAIMessage. - Передайте новый запрос в качестве входных данных и выведите извлечённые сообщения, передав классы сообщений в
"agent_output".
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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 ____]
})