OpenAI API 多轮对话怎么做?用 previous_response_id 延续上下文并验证轮次

用 previous_response_id 串联两次 Responses 请求,以对照实验验证上下文,并说明会话隔离边界。

Responses API 可以用 previous_response_id 把后一轮请求关联到前一轮。最小验收应让第一轮写入一个明确事实,第二轮只问代词或省略信息;若回答正确,才说明上下文被延续。

完成两轮可复现测试

from openai import OpenAI

client = OpenAI()

first = client.responses.create(
    model="gpt-6-astra",
    input="记住本次测试项目代号是‘蓝鲸’,只回复已记录。",
)
print("first:", first.output_text)

second = client.responses.create(
    model="gpt-6-astra",
    previous_response_id=first.id,
    input="刚才的项目代号是什么?只回复代号。",
)
print("second:", second.output_text)

正确结果是第二轮只回复“蓝鲸”。把 previous_response_id 删除后再运行第二轮,模型不应凭空知道代号。这个对照实验比连续闲聊更容易确认状态是否真的生效。

OpenAI API 多轮对话怎么做?用 previous_response_id 延续上下文并验证轮次

应用需要保存哪些字段

至少保存业务会话 ID、最新 response ID、用户 ID、更新时间和权限范围。收到新消息时先确认该 response ID 属于当前用户与当前会话,避免把甲用户的上下文串给乙用户。

状态不是永久记忆

previous_response_id 适合把响应串起来,但应用仍需决定会话保留时间、删除机制和敏感数据处理。对长期会话,应定期提取经过用户确认的事实或摘要,避免无限增长,也不要把模型自动总结当作不可更改的真实档案。

失败与边界

  • 前一响应被删除、不可访问或属于别的项目时,关联会失败。
  • 上下文存在不代表模型每次都能正确引用,关键事实仍要验证。
  • 需要跨设备长期持久化时,可评估 Conversations API,并先设计访问控制。
  • 涉及身份、金额和授权的动作,应从业务数据库读取,不依赖聊天记忆。

本文依据 2026 年 10 月 1 日官方 Responses 迁移指南整理,未在你的项目存储策略、权限与会话时长下实测。

相关问题

每轮都要发送完整历史吗?

使用 previous_response_id 可以串联响应;不同接口和存储设置下的行为应按官方文档实现。

能把一个 response ID 给多人共用吗?

不应这样做。会话状态必须按用户和权限隔离,避免上下文泄露。

参考:Migrate to the Responses API

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/31275.html

赞 (0)
AI小管家的头像AI小管家
智能体语音合成怎么做?用 OpenAI 文字转语音 API 保存音频并试听
上一篇 1天前
Claude 官网怎么找?识别官方入口与开发者文档
下一篇 1天前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部