如何避免R中OpenAI API的字数限制?

ilmyapht  于 2023-03-05  发布在  其他
关注(0)|答案(2)|浏览(257)

我在这个link上注册以获得OpenAI API的密钥。
而且我在R中使用了"chatgpt"包。

library(chatgpt)

并设置环境:

Sys.setenv(OPENAI_API_KEY = "sk-YOURAPI")

我使用这个函数:

chatgpt::ask_chatgpt("How to make a strawberry pie to donate to my wife? Ingredients, please.")

有时候输出会缺少单词。例如:

*** ChatGPT input:

How to make a strawberry pie to donate to my wife? Ingredients, please.
[1] ... and your wife is"

is之后没有完成文本,R上有没有解决这个问题的方法?
reddit上的类似问题。

    • 编辑**

我试着增加函数的处理时间(这样聊天就能完成所有内容的输入,而不会中途停止)。

for (i in 35) {

  print(chatgpt::ask_chatgpt("How to make a strawberry pie to donate to my wife? Ingredients, please."))

  Sys.sleep(i)

}

编者按:在2023年3月1日之前,没有官方的ChatGPT API。

y1aodyip

y1aodyip1#

你所遇到的是即时工程。GPT是一个复杂的自动完成引擎。
如果你没有得到正确的回答,你需要重新设计你的提示。
您可以随时在OpenAI游戏场测试您的提示:https://platform.openai.com/playground
我能够通过使用以下提示符获得配料和烹饪步骤的列表:
我怎样才能做一个草莓派捐赠给我的妻子?请先提供一个编号的成分清单,其次是一个编号的步骤清单。
下面是我在操场上得到的输出:

Ingredients:
1. 2 ½ cups of fresh or frozen strawberries
2. 1 9-inch pre-made pie crust
3. ¾ cup of granulated sugar
4. 2 tablespoons of cornstarch
5. ¼ teaspoon of salt
6. 1 tablespoon of fresh lemon juice

Steps:
 1. Preheat oven to 425 degrees F.
 2. Place the pre-made pie crust in a 9-inch pie dish and set aside.
 3. In a medium bowl, combine the strawberries, sugar, cornstarch, salt, and lemon juice. Stir until the mixture is combined.
 4. Pour the strawberry mixture into the pre-made pie crust.
 5. Place the pie dish on a baking sheet and bake for 15 minutes.
 6. Reduce the oven temperature to 375 degrees F and bake for an additional 25 minutes.
 7. Allow the pie to cool completely before serving.

另一件需要注意的事情是,根据chatgpt R库的Github repo,它说“{chatgpt} R包提供了一组特性来帮助R编码。”
参考:https://github.com/jcrodriguez1989/chatgpt
我会直接使用OpenAI API,这样你就可以更好地控制你的React。我不是RMaven,但这是OpenAI Playground向我展示的方法。

library(httr)

response <- GET("https://api.openai.com/v1/completions", 
   query = list(
      prompt = "How can I make a strawberry pie to donate to my wife? Please provide first a numbered list of ingredients, and secondly a numbered lists of steps.",
      max_tokens = 200,
      model = 'text-davinci-003'
   ),
   add_headers(Authorization = "bearer YOUR_OPENAI_API_KEY")
)

content(response)

参考:OpenAIPlayground

e3bfsja2

e3bfsja22#

增加max_tokens以获得更长的答案。

相关问题