Aller au contenu
Site principal Actualités Console

Conversation à plusieurs tours

Chat Completions est une interface sans état : le modèle ne mémorise pas la requête précédente. Le principe de la conversation à plusieurs tours est le suivant — à chaque requête, on transmet l’intégralité des messages historiques.

Utilisation de base

messages = [
{"role": "system", "content": "你是一个简洁的中文助手。"},
{"role": "user", "content": "什么是向量数据库?"},
]
r1 = client.chat.completions.create(model="gpt-5.5", messages=messages)
messages.append({"role": "assistant", "content": r1.choices[0].message.content})
messages.append({"role": "user", "content": "它和 Elasticsearch 有什么区别?"})
r2 = client.chat.completions.create(model="gpt-5.5", messages=messages)

Lors du deuxième tour, le modèle peut comprendre à quoi renvoie « il », car tout l’historique complet se trouve dans messages.

Gestion du contexte

Plus l’historique est long, plus le nombre de tokens d’entrée est élevé, plus le coût augmente, et il peut également dépasser la limite de contexte du modèle. Stratégies courantes :

StratégieMéthodeCas d’usage
Fenêtre glissanteNe conserver que les N derniers tours + systemService client, conversation informelle
Compression par résuméRésumer l’historique ancien avec un modèle moins coûteuxAssistant de longue conversation
Recherche augmentéeStocker l’historique dans une base vectorielle et récupérer à la demande les passages pertinentsApplications à base de connaissances

Points d’attention

  • Il est recommandé de toujours conserver le message system en première position, et d’utiliserla facturation en cache pour réduire les coûts répétés ;
  • Lors de la troncature de l’historique, supprimez par « tour » (paire user+assistant), sans couper au milieu ;
  • Lors d’un changement de modèle multiplateforme (par exemple de GPT vers Claude), le format de l’historique n’a pas besoin d’être modifié ; il suffit de remplacer model.