我正在尝试使用 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?',
]);
我错过了什么?我怎样才能在这两个调用之间保持会话处于活动状态,以便让人工智能记住我之前问过的内容?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
第二个答案,因为第一个答案没有回答OP的问题。
基于此 OpenAI Playground 示例,只能通过将两个命令发送到 API 来“询问”“对话”。
不要认为在收到回复后有办法让对话继续进行。
考虑这个例子,我们发送以下文本:
我得到的回复是:
用于此目的的代码:
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数组,该数组引用自 文档:这似乎让人工智能知道在哪里“读”和在哪里“写”
如果您从请求中删除该参数,它将返回而不返回答案: