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

使用text-davinci-003模型时相同Prompt返回随机响应的问题

为什么text-davinci-003在代码中返回随机响应,而Playground中输出稳定?

关键参数差异导致输出不一致

你的代码和OpenAI Playground的核心差异在于以下参数设置:

  • temperature=0.9:该参数控制输出随机性,值越高(范围0-2),模型越容易生成多样化、不可预测的内容。Playground默认通常使用较低的temperature(比如0.0),因此输出更确定。
  • presence_penalty=0.6:这个参数会惩罚模型重复已出现的主题,导致模型刻意避开常规问候回复,转而生成代码等其他类型内容。
  • stop=[" Human:", " AI:"]:如果你的prompt是简单的"Hello"而非对话格式,该stop序列会干扰模型的生成逻辑,让模型误以为需要遵循对话终止规则。

修复方案:调整参数匹配Playground设置

将代码中的参数修改为和Playground一致,即可得到稳定的问候回复:

response: dict = openai.Completion.create(
    model="text-davinci-003",
    prompt=prompt,
    temperature=0.0,  # 彻底消除随机性
    max_tokens=150,
    top_p=1,
    frequency_penalty=0,
    presence_penalty=0,  # 取消主题惩罚
    # 移除不必要的stop参数(若使用单轮prompt)
)
choices: dict = response.get('choices')[0]
text = choices.get('text')
print(text)

各参数调整的作用

  • temperature=0.0:强制模型选择概率最高的输出,确保相同prompt每次返回几乎完全一致的内容。
  • presence_penalty=0:允许模型生成常规的问候类回复,不会刻意切换到其他主题。
  • 移除stop参数:如果你的prompt不是对话场景(没有"Human:"/"AI:"前缀),移除该参数后模型能更准确理解单轮输入的意图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 01:27:33