ComeçarComece gratuitamente

Habilite a conversação em vários turnos com memória

Você está quase pronto para compartilhar a atualização do seu chatbot com a administração da escola! Para que os alunos tenham uma experiência de aprendizado tranquila, é importante permitir que eles façam perguntas de acompanhamento. Dessa forma, se alguma informação estiver faltando na primeira resposta do chatbot, os alunos poderão modificar suas perguntas por meio de uma conversa. Agora, você adaptará a função de streaming do seu chatbot para permitir vários turnos, imprimindo tanto a consulta do usuário quanto a resposta do chatbot. Para permitir a memória, o LangGraph enviará a conversa completa para o site LLM quando forem feitas perguntas de acompanhamento. Para começar, os parâmetros do site config já foram definidos para um usuário:

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

Este exercício faz parte do curso

Projetando sistemas agênticos com LangChain

Ver Curso

Instruções de exercício

  • Para cada turno, comece imprimindo o endereço query do usuário na lista queries.
  • Itere por msg e metadata usando app.stream(), passando query como content de HumanMessage junto com config, e junte os valores de msg.content.
  • Para extrair as respostas do chatbot, imprima msg.content e exclua qualquer msg rotulado como HumanMessage, adicionando uma nova linha antes da próxima consulta.

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

# 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)
Editar e executar código