我正在使用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个token)吗?一些huggingface模型有一个min_tokens
参数,但我在那里找不到它。
多谢了
1条答案
按热度按时间kqlmhetl1#
来自openAI文档
注意:当前没有设置最小令牌数的方法。
来源:https://help.openai.com/en/articles/5072518-controlling-the-length-of-completions
我发现的一种方法是创建一个while循环,直到生成的文本足够长...
假设我想要1000个字符,那么我的循环应该是
不需要在文本之间添加'\n',因为API已经在响应中方便地添加了它们。