You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让ChatGPT记住不同ChatCompletion实例中的历史消息

如何让ChatGPT API多实例保留对话上下文

ChatGPT API是无状态的,每个ChatCompletion调用都是独立的,要让后续实例记住之前的对话,你需要手动维护完整的对话历史消息列表,并在新的请求中传递这个完整列表。

具体实现步骤:

  • 第一次调用后,保存完整的对话记录(包括用户的所有提问和AI的回复)
  • 第二次调用时,将历史消息列表作为基础,追加新的用户请求

修改后的代码示例:

# 第一次调用,执行初始请求
data = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "user", "content": "Generate a title"},
        {"role": "user", "content": "Generate 30 chapters"},
    ]
)

# 整理完整对话历史:包含用户提问和AI的回复
conversation_history = [
        {"role": "user", "content": "Generate a title"},
        {"role": "user", "content": "Generate 30 chapters"},
        data['choices'][0]['message']  # 加入第一次请求得到的AI回复
]

# 第二次调用,传递完整上下文+新请求
data2 = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=conversation_history + [
          {"role": "user", "content": "Generate chapter 1"},
  ]
)

关键说明:

  • 每条对话消息必须包含role(可选值:user/assistant/system)和content字段
  • 历史消息的顺序要和真实对话流程一致,API会依据这个顺序理解上下文逻辑
  • 如果对话历史过长,需要适当截断内容,避免超出模型的token限制

内容的提问来源于stack exchange,提问作者chackerian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 14:08:13