Conversations multi-tours
Un concept fondamental a comprendre : Claude ne conserve aucun historique de conversation. Chaque requete est completement independante, sans memoire des echanges precedents.
Le probleme des conversations sans etat
Si vous demandez “Qu’est-ce que l’informatique quantique ?” puis enchainerez avec “Ecris une autre phrase”, Claude n’aura aucune idee de ce a quoi vous faites reference. Il ecrira sur un sujet completement aleatoire.
Comment gerer le multi-tour
Pour maintenir le contexte conversationnel, vous devez :
- Maintenir manuellement une liste de tous les messages dans votre code
- Envoyer l’historique complet a chaque requete
Fonctions utilitaires
def add_user_message(messages, text):
user_message = {"role": "user", "content": text}
messages.append(user_message)
def add_assistant_message(messages, text):
assistant_message = {"role": "assistant", "content": text}
messages.append(assistant_message)
def chat(messages):
message = client.messages.create(
model=model,
max_tokens=1000,
messages=messages,
)
return message.content[0].text
Mise en pratique
# Liste de messages vide
messages = []
# Question initiale
add_user_message(messages, "Definis l'informatique quantique en une phrase")
# Reponse de Claude
answer = chat(messages)
# Ajouter la reponse a l'historique
add_assistant_message(messages, answer)
# Question de suivi
add_user_message(messages, "Ecris une autre phrase")
# Claude comprend maintenant le contexte
final_answer = chat(messages)
Claude comprend desormais que “Ecris une autre phrase” se rapporte a l’informatique quantique, car vous avez fourni le contexte complet de la conversation.
Points cles
- Chaque appel API est independant
- Stockez tous les messages localement dans votre application
- Envoyez l’historique complet a chaque requete
- Formatez correctement les messages avec les roles
"user"et"assistant"