如何让ChatGPT API返回与网页版相似的响应?求对应参数
问题描述
我刚开始使用ChatGPT API,希望获取与网页版ChatGPT相似的段落式响应。以下是我的测试示例:
s = "Who is Harry Potter?" response = openai.Completion.create(model="text-davinci-003", prompt=s, temperature=0, max_tokens=7) print(response)
该代码输出如下:
"choices": [ { "finish_reason": "length", "index": 0, "logprobs": null, "text": "\n\nHarry Potter is a fictional" }
但OpenAI官网网页版会返回完整的总结性回答,请问有人知道网页版对应的temperature和max_tokens参数具体值,以便通过API复刻该效果?
解答
- 你当前代码里的
max_tokens=7是回答被截断的核心原因,这个值太小,根本不足以生成完整段落。网页版ChatGPT的max_tokens通常设为1000-4000(具体看模型上下文窗口上限,比如gpt-3.5-turbo是4096),足够输出完整的总结内容。 - 网页版默认的
temperature参数值一般是0.7,这个值能平衡回答的准确性和灵活性,不会像temperature=0那样生硬,也不会因数值过高导致回答跑题。 - 另外要注意,网页版用的是对话模型(如gpt-3.5-turbo或gpt-4),不是你现在用的
text-davinci-003补全模型。要复刻网页版效果,建议改用ChatCompletion接口调用对话模型,示例代码如下:
import openai openai.api_key = "你的API密钥" response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role": "user", "content": "Who is Harry Potter?"} ], temperature=0.7, max_tokens=1000 ) print(response.choices[0].message['content'])
- 如果非要用
text-davinci-003,可以把参数调整为temperature=0.7、max_tokens=1000,同时在prompt里引导模型生成完整回答,比如在提问末尾加一句"请给出完整的总结性回答"。
内容的提问来源于stack exchange,提问作者doejoe
相关产品推荐
相关产品推荐

