Aller au contenu principal

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 :

  1. Maintenir manuellement une liste de tous les messages dans votre code
  2. 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"