OpenAI Responses API 写作对话怎么查询和删除
AI 写作后台接入多轮任务后,不能只保存生成正文。应把 response_id 与任务归档关联,先按 ID 查询响应确认范围,再执行删除,并在本地保留删除人、时间和原因等审计信息。
先划清查询与删除的边界
OpenAI Responses API 写作对话怎么查询和删除的核心,是围绕单个响应 ID 管理记录。创建写作响应时,建议在业务数据库保存任务 ID、response_id、文章版本、创建人和处理状态。若需要按文章或批次筛选,应先在自己的数据库中找到对应的 response_id,再调用接口查询或删除。创建请求中的 store 参数用于决定响应是否保存以供后续通过 API 获取;不要把服务端保存和团队自己的归档混为一谈。
需要按任务追踪 response_id 的字段设计,可参考写作任务 metadata 追踪方法。
- 删除前确定目标是单个草稿响应,而不是整篇文章的本地归档。
- 删除操作仅开放给具备内容清理权限的后台角色。
- 保留最小审计字段,不把完整提示词或正文重复写入普通日志。
为写作任务保存可定位的记录
生成文章后,立即保存接口返回的 response.id。多轮写作中,每一轮都有自己的响应 ID;不要仅用文章标题或用户昵称作为删除条件。
- 创建响应时记录本地任务 ID 与返回的
response.id。 - 给记录写入业务状态,例如草稿、已采用、待清理或已删除。
- 删除前由服务端根据当前用户权限校验任务归属。
- 将待删除 ID 放入确认列表,避免前端直接提交任意 ID。
按响应 ID 查询写作上下文
Python SDK 提供 client.responses.retrieve(response_id)。查询成功后,后台可读取响应对象用于展示任务状态、输出内容或人工复核;页面展示时应遵循本系统的数据访问权限。
from openai import OpenAI
client = OpenAI()
response_id = "resp_example"
response = client.responses.retrieve(response_id)
print(response.id)
print(response.status)不要把查询接口当作列表接口。需要查找某篇文章对应的响应时,应由本地任务表先完成筛选,再对选中的 response_id 逐条查询。
删除前查询并写入审计
下面示例先由业务层完成权限判断,再查询响应;确认目标无误后调用删除。SDK 的 delete 方法不返回响应对象,因此审计记录应由应用在调用前后自行维护。
from datetime import datetime, timezone
from openai import OpenAI
client = OpenAI()
response_id = "resp_example"
operator_id = "editor_123"
response = client.responses.retrieve(response_id)
# Check that response_id belongs to the current task before this point.
write_audit_log({
"action": "response_delete_requested",
"response_id": response.id,
"operator_id": operator_id,
"requested_at": datetime.now(timezone.utc).isoformat(),
"reason": "draft_cleanup",
})
client.responses.delete(response_id)
mark_task_response_deleted(response_id)实际项目中,write_audit_log 与 mark_task_response_deleted 应替换为自己的数据库操作。删除原因可使用固定枚举,例如任务取消、草稿清理或用户请求,以便后续统计。
常见故障与修正动作
- 故障:查询提示找不到响应。原因:保存的 response_id 为空、复制错误,或该响应不可再获取。修正动作:先核对本地任务记录中的 ID,再停止删除流程并标记为待人工处理。
- 故障:删除了错误的写作版本。原因:仅按文章标题匹配,未核对 response_id 与版本。修正动作:删除前展示任务 ID、文章版本和 response_id 的确认信息,并由服务端再次校验归属。
- 故障:删除后无法说明操作来源。原因:应用只调用接口,没有保存审计数据。修正动作:在调用前记录操作者、时间、原因和目标 ID,并在本地更新处理状态。
- 故障:普通运营账号可以删除任意记录。原因:删除接口直接暴露给前端,缺少业务权限校验。修正动作:仅由服务端持有 API 密钥,并在服务端执行角色和任务归属检查。
发布前检查项
- 已为每个写作任务保存正确的 response_id。
- 查询结果与本次要处理的文章、版本和任务一致。
- 删除请求经过服务端权限与归属校验。
- 已写入删除人、删除时间、删除原因和 response_id 的审计记录。
- 本地任务状态已与实际处理结果一致,正文归档策略已单独确认。
下一步
把这篇的方法练一遍
提示词和步骤可以带到创作里直接试做一版。