IniziaInizia gratis

Abilita conversazioni multi-turno con memoria

Sei quasi prontə a condividere l'aggiornamento del tuo chatbot con l'amministrazione scolastica! Per offrire agli studenti un'esperienza fluida, è importante permettere loro di fare domande di follow-up. In questo modo, se manca qualche informazione nella prima risposta del chatbot, gli studenti possono riformulare le domande continuando la conversazione. Ora adatterai la funzione di streaming del tuo chatbot per abilitare più turni, stampando sia la query dell'utente sia la risposta del chatbot. Per abilitare la memoria, LangGraph invierà l'intera conversazione all'LLM quando vengono poste domande di follow-up. Per iniziare, i parametri di config sono già impostati per un utente:

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

Questo esercizio fa parte del corso

Progettare sistemi agentici con LangChain

Visualizza il corso

Istruzioni dell'esercizio

  • Per ogni turno, inizia stampando la query dell'utente dalla lista queries.
  • Itera su msg e metadata usando app.stream(), passando query come content di HumanMessage insieme a config, e unisci i valori di msg.content.
  • Per estrarre le risposte del chatbot, stampa msg.content escludendo qualsiasi msg etichettato come HumanMessage, aggiungendo una nuova riga prima della query successiva.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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)
Modifica ed esegui il codice