recherche

Maison  >  Questions et réponses  >  le corps du texte

Gardez les conversations fluides avec le SDK PHP de l'API OpenAI

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粉426906369P粉426906369395 Il y a quelques jours799

répondre à tous(1)je répondrai

  • P粉316890884

    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épondre
    0
  • Annulerrépondre