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
Instruções de exercício
- Para cada turno, comece imprimindo o endereço
query
do usuário na listaqueries
. - Itere por
msg
emetadata
usandoapp.stream()
, passandoquery
comocontent
deHumanMessage
junto comconfig
, e junte os valores demsg.content
. - Para extrair as respostas do chatbot, imprima
msg.content
e exclua qualquermsg
rotulado comoHumanMessage
, 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)