使用 OpenAI API PHP SDK 保持对话流畅
P粉426906369
P粉426906369 2023-11-01 09:04:15
0
1
780

我正在尝试使用 OpenAI PHP SDK 的completion() 方法来保持对话。

  • 提示#1:“你好吗?”
  • 提示#2:“我之前问过你什么?”

但是人工智能似乎忘记了我之前问过的问题。它会随机回答第二个提示。

我用于这两个调用的代码如下:

$call1 = $open_ai->completion([
            'model' => 'text-davinci-003', 
            'prompt' => 'How Are You?',

        ]);


        $call2 = $open_ai->completion([
            'model' => 'text-davinci-003', 
            'prompt' => 'What i asked you before?',
        ]);

我错过了什么?我怎样才能在这两个调用之间保持会话处于活动状态,以便让人工智能记住我之前问过的内容?

P粉426906369
P粉426906369

全部回复(1)
P粉316890884

第二个答案,因为第一个答案没有回答OP的问题。


基于此 OpenAI Playground 示例,只能通过将两个命令发送到 API 来“询问”“对话”。

不要认为在收到回复后有办法让对话继续进行。


考虑这个例子,我们发送以下文本:

The following is a conversation with an AI assistant.

Human: Hello
Human: What is 3 * 3?
AI:
Human: What did I just asked?
AI:

我得到的回复是:

You asked me what 3 * 3 is. The answer is 9.

用于此目的的代码:

completion([
        'model' => $model,
        'prompt' => $question,
        'temperature' => 0.9,
        'max_tokens' => 150,
        'frequency_penalty' => 0,
        'presence_penalty' => 0.6,
        'stop' => ["\nHuman:", "\nAI:"]
    ]);
    try {
        $json = @json_decode($res);
        foreach ($json->choices as $choice) {
            echo $choice->text . PHP_EOL;
        }
    } catch (Exception $e) {
        var_dump($e);
        return NULL;
    }
}

$text = 

注意 stop 数组,该数组引用自 文档

这似乎让人工智能知道在哪里“读”和在哪里“写”

如果您从请求中删除该参数,它将返回而不返回答案:

You asked what 3 times 3 is.
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!