gpt4 book ai didi

openai-api - OpenAI API 重复完成,没有变化

转载 作者:行者123 更新时间:2023-12-05 04:35:38 26 4
gpt4 key购买 nike

我尝试使用官方 OpenAI npm 依赖项,使用 Javascript 在 OpenAI 中实现聊天机器人。

我解决它的方法是,我有一组聊天消息,由换行符加入,并作为提示发送给 API。

例子:

arr.push("This is a conversation between you and an AI")
arr.push("You: Hello, how are you doing")
arr.push("AI: I'm great, how about you?")
arr.push("You: I'm good, thanks!")

然后我将下一个问题推送到数组,然后推送一个空的“AI:”字符串让 OpenAI 端点完成。

API 完成的结果提示如下所示

```
This is a conversation between you and an AI
You: Hello, how are you doing
AI: I'm great, how about you?
You: I'm good, thanks!
You: How's the weather today?
AI:
```

然后响应也将被推送到数组,因此对话可以继续...(此时我只发送数组中的最后 ~20 行)然而,我遇到的问题是“机器人”会开始重复自己,似乎在随机时间它会开始回答类似“太好了,你呢?”之类的问题,无论你在提示中作为最后一个问题发送什么,都会是答案”

例子:

```
This is a conversation between you and an AI
You: Hello, how are you doing
AI: I'm great, how about you?
You: I'm good, thanks!
You: How's the weather today?
AI: It is looking great!
You: That's nice, any plans for today?
AI: It is looking great!
You: What are you talking about?
AI: It is looking great!
```

我在文档中发现的唯一相关内容似乎是 frequency_penalty 和 presence_penalty。然而,改变这些似乎并没有多大作用。

这是用于上述示例的参数:

    const completion = await openai.createCompletion("text-davinci-001", {
prompt: p,
max_tokens: 200,
temperature: 0.6,
frequency_penalty: 1.5,
presence_penalty: 1.2,


});

return completion.data.choices[0].text.trim()

当然,我也尝试过不同的温度和惩罚组合。这只是一个已知问题,还是我误解了什么?

最佳答案

频率和存在惩罚的最大值为 1 - 我不确定 API 如何处理超过该值的值。

试试 text-davinci-003,最新版本(截至 2023 年 1 月 19 日)- 这是一个 official example聊天机器人提示。温度设置为 .9 用于创意,存在惩罚为 .6 以避免主题重复。

同时 not recommended ,您可以试试 Base Series 模型 davinci,它有点松散。

关于openai-api - OpenAI API 重复完成,没有变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71003190/

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