首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenAI API重复完成,没有变化。

OpenAI API重复完成,没有变化。
EN

Stack Overflow用户
提问于 2022-02-06 00:06:01
回答 1查看 916关注 0票数 1

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

我解决这个问题的方法是,我有一系列聊天消息,这些消息由新行连接,并作为提示发送到API。

示例:

代码语言:javascript
复制
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完成的结果提示如下所示

代码语言:javascript
复制

这是你和人工智能之间的对话

你:你好,你好吗?

艾:我很好,你呢?

你:我很好,谢谢!

你:今天天气怎么样?

大赦国际:

代码语言:javascript
复制

然后,响应也会被推送到数组中,这样会话就可以继续.(此时我只从数组中发送最后的20行)然而,我遇到的问题是,"bot“将开始重复自己,似乎是在随机的时候,它将开始回答”很好,您呢?“,无论您在提示中发送的最后一个问题,这就是答案。

示例:

代码语言:javascript
复制

这是你和人工智能之间的对话

你:你好,你好吗?

艾:我很好,你呢?

你:我很好,谢谢!

你:今天天气怎么样?

艾:看起来棒极了!

你:太好了,今天有什么计划吗?

艾:看起来棒极了!

你:你在说什么?

艾:看起来棒极了!

代码语言:javascript
复制

我在文档中找到的唯一相关的东西是frequency_penalty和presence_penalty。然而,改变这些似乎没有多大作用。

这是上述示例所使用的参数:

代码语言:javascript
复制
    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()

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

EN

回答 1

Stack Overflow用户

发布于 2022-02-19 19:51:20

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

试试text-davinci-002,最新版本--这是聊天机器人提示符的官方例子。为了创造力,温度被设置为.9,为了避免主题重复,存在的惩罚是.6

当使用不建议时,您可以尝试Base型号的davinci,这是一个有点松散的规范。

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

https://stackoverflow.com/questions/71003190

复制
相关文章

相似问题

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