ÎncepețiÎncepe gratuit

Activează conversația cu mai multe rânduri folosind memoria

Ești aproape gata să împărtășești actualizarea chatbot-ului cu administrația școlii! Pentru ca studenții să aibă o experiență de învățare plăcută, este important să le permiți să adreseze întrebări de urmărire. Astfel, dacă lipsesc informații din primul răspuns al chatbot-ului, studenții pot reformula întrebările printr-o conversație. Acum vei adapta funcția de streaming a chatbot-ului pentru a permite mai multe rânduri de conversație, afișând atât interogarea utilizatorului, cât și răspunsul chatbot-ului. Pentru a activa memoria, LangGraph va trimite întreaga conversație către LLM atunci când sunt adresate întrebări de urmărire. Ca punct de plecare, parametrii config au fost deja setați pentru un singur utilizator:

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

Acest exercițiu face parte din cursul

Proiectarea sistemelor agentice cu LangChain

Vezi cursul

Instrucțiuni pentru exercițiu

  • Pentru fiecare rând de conversație, începe prin a afișa interogarea query a utilizatorului din lista queries.
  • Iterează prin msg și metadata folosind app.stream(), transmițând query ca valoare a câmpului content din HumanMessage împreună cu config, și concatenează valorile msg.content.
  • Pentru a extrage răspunsurile chatbot-ului, afișează msg.content excluzând orice msg etichetat ca HumanMessage, adăugând o linie nouă înainte de următoarea interogare.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul