gpt4 book ai didi

python - Open AI 使用 GPT-3 生成更长的文本

转载 作者:行者123 更新时间:2023-12-05 05:37:29 25 4
gpt4 key购买 nike

我正在使用 OPENAI 的 GPT-3 API,但我很难找到一种方法来生成足够长的生成文本。

这是我的一段代码:

import os
import openai

# export OPENAI_API_KEY='get_key_from_openai'

openai.api_key = os.getenv("OPENAI_API_KEY")

response = openai.Completion.create(
model="text-davinci-002",
prompt="How to choose a student loan",
temperature=0.6,
max_tokens=512,
top_p=1,
frequency_penalty=1,
presence_penalty=1,
n= 10
)

print(response['choices'][0]['text'])

我的示例输出是

“选择学生贷款时需要考虑一些事项,包括利率、还款方式以及贷款是联邦贷款还是私有(private)贷款。您还应该比较贷款,看看哪一种贷款的成本最低从长远来看是钱”

但是,大约有 50 个单词不应接近 80-100 个标记。我还认为 n 参数应该运行 n 连续生成的文本?

有人可以解释如何使生成的文本更长(最好是 ~1000 个标记)吗?一些 huggingface 模型有一个 min_tokens 参数,但我在那里找不到它。

非常感谢

最佳答案

来自 openAI 文档

Note: There is not currently a way to set a minimum number of tokens.

来源:https://help.openai.com/en/articles/5072518-controlling-the-length-of-completions

我发现的一种方法是创建一个 while 循环,直到生成的文本足够长...

假设我想要 1000 个字符,那么我的循环将是

full_text = "How to choose a student loan ?"

while len(full_text) < 1000 :
response = openai.Completion.create(
model="text-ada-001",
prompt=full_text,
temperature=0.6,
max_tokens=300,
top_p=1,
frequency_penalty=1,
presence_penalty=1,
)

full_text = full_text + response['choices'][0]['text']

print(full_text)

无需在文本之间添加“\n”,因为 api 已经在响应中方便地添加了它们。

关于python - Open AI 使用 GPT-3 生成更长的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73113552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com