首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打开AI用GPT-3生成更长的文本。

打开AI用GPT-3生成更长的文本。
EN

Stack Overflow用户
提问于 2022-07-25 18:07:18
回答 1查看 1.3K关注 0票数 3

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

这是我的代码:

代码语言:javascript
复制
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参数,但我在那里找不到它。

非常感谢

EN

回答 1

Stack Overflow用户

发布于 2022-07-27 14:14:59

来自openAI文档

注意:目前还没有一种方法来设置最小数量的令牌。

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

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

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

代码语言:javascript
复制
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已经在响应中方便地添加了它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73113552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档