我有一个 chatgpt 的付费帐户并使用最新的 4 版本,当我要求它回答问题时,它会发回类似于 4k 字符的响应。当我对同一个问题使用 api 时,我得到一个更短的响应,大约 1k 个字符。我决定询问 chatgpt 在 api 调用中使用什么参数来返回相同的响应,并将其粘贴在下面。它使用的最大令牌数为 30,所以我将其提高到 4k,但响应仍然太短。然后,我修改了引擎以使用 002 中的 davinci003,但没有成功。 关于我可以改变什么的任何想法,我花了大约 2 个小时进行研究,但仍然无法让它发挥作用。
def generate_completion(prompt):
response = openai.Completion.create(
engine="text-davinci-003",
prompt=prompt,
max_tokens=4000,
n=1,
stop=None,
temperature=0.8,
top_p=1,
frequency_penalty=0,
presence_penalty=0,
)
generated_text = response.choices[0].text.strip()
return generated_text
您需要使用Chat而不是Completion。
对于Python,示例代码如下:
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": "Hello!"}
]
)
如果您可以访问 GPT-4 API,则可以将模型更改为
gpt-4
。请注意,拥有付费帐户并不能保证可以访问 GPT-4 API。否则,您可以使用模型 gpt-3.5-turbo
或 gpt-3.5-turbo-0301
,这是所有人都可以使用的,但不如 gpt-4 模型强大。