我正在尝试使用 OpenAI PHP SDK 的completion() 方法来保持对话。
但是人工智能似乎忘记了我之前问过的问题。它会随机回答第二个提示。
我用于这两个调用的代码如下:
$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粉3168908842023-11-02 00:08:31
第二个答案,因为第一个答案没有回答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.回复0