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

如何通过Python脚本调用OpenAI API延续对话?能否使用响应ID?

关于OpenAI Completion API延续对话的问题

首先明确:不能通过响应里的id字段延续对话。这个cmpl-xxx格式的id只是单次生成请求的唯一标识,仅用于查询请求状态或售后支持,OpenAI不会根据这个id存储或关联对话上下文。

要实现类似ChatGPT的对话延续效果,你需要手动拼接完整的对话历史作为新的prompt传入API。因为text-davinci-001这类Completion模型是无状态的,每次请求都需要提供完整的上下文信息,它才会理解你要“续写”或“延续对话”的需求。

示例代码修改

比如你第一次请求得到俳句后,要发送"write me another",可以这样做:

import openai
openai.api_key = mykey

# 第一次请求
first_prompt = "write me a haiku"
response = openai.Completion.create(
    engine="text-davinci-001",
    prompt=first_prompt,
    max_tokens=50
)
generated_haiku = response["choices"][0]["text"].strip()

# 拼接对话历史,生成新的prompt
new_prompt = f"{first_prompt}\n{generated_haiku}\n\nwrite me another"

# 第二次请求,延续对话
second_response = openai.Completion.create(
    engine="text-davinci-001",
    prompt=new_prompt,
    max_tokens=50
)
print(second_response["choices"][0]["text"].strip())

关键说明

  • Completion模型本身不维护会话状态,所有上下文必须通过prompt传递。
  • 如果对话轮次多,要注意控制总token数,避免超过模型的token限制(text-davinci-001的最大token数是4096)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:41:44