ПочатиПочніть безкоштовно

Увімкніть багатореплікову розмову з пам'яттю

Ви майже готові поділитися оновленням чатбота з адміністрацією школи! Щоб студенти мали зручний досвід навчання, важливо дозволити їм ставити додаткові запитання. Так, якщо якоїсь інформації бракує в першій відповіді чатбота, студенти зможуть уточнити свої запитання під час розмови. Тепер ви адаптуєте функцію стримінгу вашого чатбота, щоб підтримати кілька кроків діалогу, виводячи і запит користувача, і відповідь чатбота. Щоб увімкнути пам'ять, LangGraph надсилатиме повну розмову до LLM, коли ставляться додаткові запитання. Для початку параметри config уже задані для одного користувача:

config = {"configurable": {"thread_id": "1"}}

Ця вправа є частиною курсу

Проєктування агентних систем з LangChain

Переглянути курс

Інструкції до вправи

  • Для кожного кроку спочатку виведіть query користувача зі списку queries.
  • Ітеруйте через msg і metadata, використовуючи app.stream(), передаючи query як content об'єкта HumanMessage разом із config, і об'єднайте значення msg.content.
  • Щоб отримати відповіді чатбота, виводьте msg.content, виключаючи будь-які msg з міткою HumanMessage, додаючи новий рядок перед наступним запитом.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Print the user query first for every interaction 
def user_agent_multiturn(queries):  
    for ____ in ____:
        print(f"User: {____}")
        
        # Stream through messages corresponding to queries, excluding metadata 
        print("Agent: " + "".join(____.____ for ____, ____ in app.____(
                {"messages": [____(____=_____)]}, config, stream_mode="messages") 
            
            # Filter out the human messages to print agent messages
            if ____.____ and not isinstance(____, ____)) + "____")       

queries = ["Is `stressed desserts?` a palindrome?", "What about the word `kayak`?",
    "What happened on the May 8th, 1945?", "What about 9 November 1989?"]
user_agent_multiturn(queries)
Редагувати та запускати код