Ich versuche, die Completion()-Methode des OpenAI PHP SDK zu verwenden, um eine Konversation aufrechtzuerhalten.
Aber die KI scheint die Frage, die ich zuvor gestellt habe, vergessen zu haben. Die zweite Eingabeaufforderung wird zuf?llig beantwortet.
Der Code, den ich für diese beiden Anrufe verwendet habe, lautet wie folgt:
$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?', ]);
Was habe ich verpasst? Wie kann ich die Sitzung zwischen diesen beiden Anrufen aktiv halten, damit sich die KI daran erinnert, was ich zuvor gefragt habe?
第二個(gè)答案,因?yàn)?a >第一個(gè)答案沒(méi)有回答OP的問(wèn)題。
基于此 OpenAI Playground 示例,只能通過(guò)將兩個(gè)命令發(fā)送到 API 來(lái)“詢(xún)問(wèn)”“對(duì)話(huà)”。
不要認(rèn)為在收到回復(fù)后有辦法讓對(duì)話(huà)繼續(xù)進(jìn)行。
考慮這個(gè)例子,我們發(fā)送以下文本:
The following is a conversation with an AI assistant. Human: Hello Human: What is 3 * 3? AI: Human: What did I just asked? AI:
我得到的回復(fù)是:
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
數(shù)組,該數(shù)組引用自 文檔:這似乎讓人工智能知道在哪里“讀”和在哪里“寫(xiě)”
如果您從請(qǐng)求中刪除該參數(shù),它將返回而不返回答案:
You asked what 3 times 3 is.