Zacznij terazZacznij za darmo

Włącz wieloturową rozmowę z pamięcią

Twój chatbot jest już prawie gotowy do przekazania administracji szkoły! Aby uczniowie mogli komfortowo korzystać z nauki, ważne jest umożliwienie im zadawania pytań uzupełniających. Dzięki temu, jeśli odpowiedź chatbota będzie niekompletna, uczniowie będą mogli doprecyzować swoje pytania w toku rozmowy. Teraz dostosujesz funkcję strumieniowania chatbota tak, aby obsługiwała wiele tur – wyświetlając zarówno zapytanie użytkownika, jak i odpowiedź chatbota. Aby włączyć pamięć, LangGraph będzie wysyłać pełną historię rozmowy do modelu językowego przy każdym pytaniu uzupełniającym. Na początek parametry config zostały już ustawione dla jednego użytkownika:

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

To ćwiczenie jest częścią kursu

Projektowanie systemów agentowych z LangChain

Zobacz kurs

Instrukcje do ćwiczenia

  • Dla każdej tury rozpocznij od wyświetlenia zapytania query z listy queries.
  • Iteruj po msg i metadata za pomocą app.stream(), przekazując query jako content w HumanMessage wraz z config, i połącz wartości msg.content.
  • Aby wyodrębnić odpowiedzi chatbota, wyświetl msg.content, pomijając wiadomości oznaczone jako HumanMessage, i dodaj nową linię przed następnym zapytaniem.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod