Tornando a conversa consciente de memória
Dando continuidade ao trabalho no ChargeBot na ChargeNet, você vai armazenar cada turno do diálogo e enviar apenas as mensagens mais recentes para o Claude, para manter o contexto da conversa com o modelo Claude do Amazon Bedrock. O bot vai gerenciar o histórico de mensagens e formatar a conversa de um jeito que o Claude entenda, usando somente o contexto mais recente.
As bibliotecas boto3 e json, e a classe ConversationManager que você definiu no exercício anterior, já estão pré-carregadas.
Este exercício faz parte do curso
Introdução ao Amazon Bedrock
Instruções do exercício
- Use o método
add_message()para armazenar a entrada do usuário. - Envie apenas as duas últimas mensagens do histórico para o Claude usando o formato de mensagem correto.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
conversation = ConversationManager()
user_input = "What is the charging speed of your Highway Max station?"
# Add the user input
conversation.____
# Send only the last two messages from conversation history
messages = ____
request_body = json.dumps({"anthropic_version": "bedrock-2023-05-31", "max_tokens": 200, "temperature": 0.2, "messages": messages})
response = conversation.bedrock.invoke_model(modelId="anthropic.claude-3-5-sonnet-20240620-v1:0", body=request_body)
completion = json.loads(response['body'].read().decode())["content"][0]["text"]
conversation.add_message("assistant", completion)
print(completion)