Chargement

Lorsque vous travaillez avec l'API Anthropic et Claude, il y a un concept crucial que vous devez comprendre : Claude ne stocke aucun de vos historiques de conversation. Chaque requête que vous effectuez est complètement indépendante, sans aucune mémoire des échanges précédents.

Cela signifie que si vous souhaitez avoir une conversation multi-tours où Claude se souvient du contexte des messages précédents, vous devez gérer vous-même l'état de la conversation.

Le problème des conversations sans état

Disons que vous demandez à Claude « Qu'est-ce que l'informatique quantique ? » et que vous obtenez une bonne réponse. Ensuite, vous poursuivez avec « Écris une autre phrase » - Claude n'a aucune idée de ce à quoi vous faites référence. Il écrira une phrase sur quelque chose de complètement aléatoire car il n'a aucun souvenir de la discussion sur l'informatique quantique.

Comment fonctionnent les conversations multi-tours

Pour maintenir le contexte de la conversation, vous devez faire deux choses :

  • Maintenir manuellement une liste de tous les messages dans votre code
  • Envoyer l'historique complet des messages à chaque requête

Voici le flux qui fonctionne réellement :

  1. Envoyez votre message utilisateur initial à Claude
  2. Prenez la réponse de Claude et ajoutez-la à votre liste de messages en tant que message assistant
  3. Ajoutez votre question de suivi comme un autre message utilisateur
  4. Envoyez l'historique complet de la conversation à Claude

Création de fonctions d'aide

Pour faciliter la gestion des conversations, vous pouvez créer trois fonctions d'aide :

python
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

Assembler le tout

Voici comment utiliser ces fonctions pour maintenir une conversation :

python
# Commencer avec une liste de messages vide
messages = []

# Ajouter la question initiale de l'utilisateur
add_user_message(messages, "Define quantum computing in one sentence")

# Obtenir la réponse de Claude
answer = chat(messages)

# Ajouter la réponse de Claude à l'historique de la conversation
add_assistant_message(messages, answer)

# Ajouter une question de suivi
add_user_message(messages, "Write another sentence")

# Obtenir la réponse de suivi avec le contexte complet
final_answer = chat(messages)

Maintenant, Claude comprendra que « Écris une autre phrase » fait référence à l'expansion de la définition de l'informatique quantique, car vous avez fourni le contexte complet de la conversation.

Ces fonctions d'aide vous seront utiles tout au long de votre travail avec Claude, rendant beaucoup plus facile la création d'applications capables de maintenir des conversations significatives sur plusieurs échanges.