cari

Rumah  >  Soal Jawab  >  teks badan

Pastikan perbualan mengalir dengan OpenAI API PHP SDK

Saya cuba menggunakan kaedah penyelesaian() OpenAI PHP SDK untuk mengekalkan perbualan.

Tetapi AI seolah-olah terlupa soalan yang saya ajukan sebelum ini. Ia akan menjawab gesaan kedua secara rawak.

Kod yang saya gunakan untuk kedua-dua panggilan ini adalah seperti berikut:

$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?',
        ]);

Apa yang saya terlepas? Bagaimanakah saya boleh memastikan sesi aktif antara kedua-dua panggilan ini supaya AI mengingati apa yang saya tanya sebelum ini?

P粉426906369P粉426906369395 hari yang lalu797

membalas semua(1)saya akan balas

  • P粉316890884

    P粉3168908842023-11-02 00:08:31

    Jawapan kedua kerana jawapan pertamatidak menjawab soalan OP.


    Berdasarkan contoh OpenAI Playground ini, "perbualan" hanya boleh "ditanya" dengan menghantar dua arahan kepada API.

    Jangan fikir ada cara untuk meneruskan perbualan selepas menerima balasan.


    Pertimbangkan contoh ini, kami menghantar teks berikut:

    The following is a conversation with an AI assistant.
    
    Human: Hello
    Human: What is 3 * 3?
    AI:
    Human: What did I just asked?
    AI:
    

    Jawapan yang saya dapat ialah:

    You asked me what 3 * 3 is. The answer is 9.
    

    Kod untuk tujuan ini:

    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 = <<
    

    Perhatikan susunan stop, yang dipetik daripada dokumentasi:

    Ini seolah-olah membiarkan AI tahu di mana untuk "membaca" dan di mana untuk "menulis"

    Jika anda mengalih keluar parameter itu daripada permintaan, ia akan kembali tanpa mengembalikan jawapan:

    You asked what 3 times 3 is.
    

    balas
    0
  • Batalbalas