Настройка вывода для нескольких инструментов
Граф вашего чат-бота готов к работе! Теперь вы можете проверить, как он справляется с различными запросами, требующими разных инструментов. Для управления сообщениями чат-бота необходимые модули уже импортированы, а параметры config настроены для одной сессии.
from langchain_core.messages import AIMessage, HumanMessage
config = {"configurable": {"thread_id": "1"}}
Это упражнение является частью курса
Проектирование агентных систем с LangChain
Инструкции к упражнению
- Создайте словарь сообщений
inputs, передав пользовательский запросqueryв качествеcontentдляHumanMessage. - Получите
msgиmetadataот чат-ботаapp, перебирая результаты с помощью метода.stream()с аргументамиinputsиconfig. - Проверьте, содержит ли каждый
msgполеcontentи не является ли он экземпляромHumanMessage, затем выведите егоcontentс параметромflush, равнымTrue, для немедленного отображения. - Протестируйте чат-бота с помощью функции
multi_tool_output(), передавая запросы, требующие разных инструментов.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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?")