Maison > Questions et réponses > le corps du texte
J'essaie d'utiliser la méthode Completion() du SDK OpenAI PHP pour maintenir une conversation.
Mais l'IA semble avoir oublié la question que j'ai posée auparavant. Il répondra au hasard à la deuxième invite.
Le code que j'ai utilisé pour ces deux appels est le suivant :
$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?', ]);
Qu'est-ce que j'ai raté ? Comment garder la session active entre ces deux appels pour que l'IA se souvienne de ce que j'ai demandé auparavant ?
P粉3168908842023-11-02 00:08:31
La deuxième réponse car la première réponsene répond pas à la question du PO.
Basé sur cet exemple OpenAI Playground, une "conversation" ne peut être "demandée" qu'en envoyant deux commandes à l'API.
Ne pensez pas qu’il existe un moyen de poursuivre la conversation après avoir reçu une réponse.
Considérez cet exemple, nous envoyons le texte suivant :
The following is a conversation with an AI assistant. Human: Hello Human: What is 3 * 3? AI: Human: What did I just asked? AI:
La réponse que j'ai reçue était :
You asked me what 3 * 3 is. The answer is 9.
Code à cet effet :
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 = <<Notez le tableau
stop
, qui est cité dans la documentation :Cela semble permettre à l'IA de savoir où "lire" et où "écrire"
Si vous supprimez ce paramètre de la requête, il reviendra sans renvoyer la réponse :
You asked what 3 times 3 is.répondre0