НачатьНачать бесплатно

Задаём вопросы об истории разговора

В базовом 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 ____]
})
Редактировать и запускать код