我正在使用OPENAI的GPT-3API,但我很难找到一种方法来制作足够长的生成文本。
这是我的代码:
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'])我的一个示例输出是
在选择助学贷款时,有几件事要考虑,包括利率、还款选择,以及贷款是联邦贷款还是私人贷款。你还应该比较一下贷款,看看哪一笔长期花费最少
然而,有大约50个词,不应该接近80-100标记。我还认为n参数应该运行n连续生成的文本吗?
有人能解释一下如何使生成的文本更长(理想情况下是1000个标记)吗?有些拥抱脸模型有一个min_tokens参数,但我在那里找不到它。
非常感谢
发布于 2022-07-27 14:14:59
来自openAI文档
注意:目前还没有一种方法来设置最小数量的令牌。
来源: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已经在响应中方便地添加了它们。
https://stackoverflow.com/questions/73113552
复制相似问题