Rendere la conversazione consapevole della memoria
Proseguendo il lavoro su ChargeBot in ChargeNet, salverai ogni turno del dialogo e invierai a Claude solo i messaggi più recenti, per mantenere il contesto della conversazione con il modello Claude di Amazon Bedrock. Il bot gestirà la cronologia dei messaggi e formatterà la conversazione in un modo che Claude possa comprendere, utilizzando solo il contesto più recente.
Le librerie boto3 e json, e la classe ConversationManager che hai definito nell'esercizio precedente, sono già state caricate.
Questo esercizio fa parte del corso
Introduzione ad Amazon Bedrock
Istruzioni dell'esercizio
- Usa il metodo
add_message()per salvare l'input dell'utente. - Invia a Claude solo gli ultimi due messaggi della cronologia usando il formato di messaggio corretto.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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)