Habilite conversa de múltiplas trocas 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 fluida, é importante permitir que façam perguntas de acompanhamento. Assim, se faltar alguma informação na primeira resposta do chatbot, os alunos podem ajustar suas perguntas conversando com ele. Agora você vai adaptar a função de streaming do seu chatbot para permitir múltiplas trocas, imprimindo tanto a consulta do usuário quanto a resposta do chatbot. Para habilitar a memória, o LangGraph enviará a conversa completa para o LLM quando houver perguntas de acompanhamento. Para começar, seus parâmetros de config já foram definidos para um usuário:
config = {"configurable": {"thread_id": "1"}}
Este exercício faz parte do curso
Projetando Sistemas Agentes com LangChain
Instruções do exercício
- Em cada troca, comece imprimindo a
querydo usuário a partir da listaqueries. - Itere por
msgemetadatausandoapp.stream(), passandoquerycomo ocontentdeHumanMessagejunto comconfig, e junte os valores demsg.content. - Para extrair as respostas do chatbot, imprima
msg.contentenquanto exclui qualquermsgrotulada comoHumanMessage, adicionando uma nova linha antes da próxima consulta.
Exercício interativo prático
Experimente este exercício completando 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)