Gardez les conversations fluides avec le SDK PHP de l'API OpenAI
P粉426906369
P粉426906369 2023-11-01 09:04:15
0
1
814

J'essaie d'utiliser la méthode Completion() du SDK OpenAI PHP pour maintenir une conversation.

  • Conseil n°1 : « Comment allez-vous ? »
  • Invite n°2 : « Qu'est-ce que je vous ai déjà demandé ? »

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粉426906369
P粉426906369

répondre à tous(1)
P粉316890884

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.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal