您可以在下面的我的應(yīng)用程序中看到 $prompt
值。當(dāng)我輸入此提示值時(shí),chat GPT 不會(huì)給出結(jié)果。但這是因?yàn)閰?shù)中的 "stream" => false
。如果 "stream" => true
,chat GPT 給出結(jié)果。
我的問(wèn)題是為什么當(dāng) "stream" => false
時(shí) chat GPT 不給出結(jié)果。以及如何做才能產(chǎn)生結(jié)果。
$API_KEY = "API_KEY_HERE"; $model = 'gpt-3.5-turbo'; $header = [ "Authorization: Bearer " . $API_KEY, "Content-type: application/json", ]; $temperature = 0.6; $frequency_penalty = 0; $presence_penalty= 0; $prompt = 'What can you help me with? For example: What do you suggest to keep me motivated?'; $messages = array( array( "role" => "system", "content" => "Your name is 'JOHN DOE'. I want you to act as a motivational coach. I will provide you with some information about someone's goals and challenges, and it will be your job to come up with strategies that can help this person achieve their goals. This could involve providing positive affirmations, giving helpful advice or suggesting activities they can do to reach their end goal. if you don't understand the question, don't think too much, tell the user to be more specific with more details" ), array( "role" => "assistant", "content" => "Hello, I'm JOHN DOE, and I'm a motivational coach who loves helping people find their drive and achieve their goals. With years of experience in coaching and personal development, I've developed a unique approach to motivation that combines mindset, energy, and action." ), array( "role" => "user", "content" => $prompt ) ); //Turbo model $isTurbo = true; $url = "https://api.openai.com/v1/chat/completions"; $params = json_encode([ "messages" => $messages, "model" => $model, "temperature" => $temperature, "max_tokens" => 1024, "frequency_penalty" => $frequency_penalty, "presence_penalty" => $presence_penalty, "stream" => false ]); $curl = curl_init($url); $options = [ CURLOPT_POST => true, CURLOPT_HTTPHEADER => $header, CURLOPT_POSTFIELDS => $params, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_WRITEFUNCTION => function($curl, $data) { //echo $curl; $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); if ($httpCode != 200) { $r = json_decode($data); echo 'data: {"error": "[ERROR]","message":"'.$r->error->message.'"}' . PHP_EOL; } else { $trimmed_data = trim($data); if ($trimmed_data != '') { $response_array = json_decode($trimmed_data, true); $content = $response_array['choices'][0]['message']['content']; echo $content; ob_flush(); flush(); } } return strlen($data); }, ]; curl_setopt_array($curl, $options); $response = curl_exec($curl); if ($response === false) { echo 'data: {"error": "[ERROR]","message":"'.curl_error($curl).'"}' . PHP_EOL; }else{ }
如果設(shè)置 "stream" => false
則得不到響應(yīng)的原因是,整個(gè)代碼設(shè)計(jì)為當(dāng) Stream
參數(shù)設(shè)置為 true
。
通過(guò)以下修改,響應(yīng)將作為一個(gè)整體進(jìn)行處理,無(wú)論 stream
參數(shù)的值如何。
試試這個(gè):
$API_KEY = "API_KEY_HERE"; $model = 'gpt-3.5-turbo'; $header = [ "Authorization: Bearer " . $API_KEY, "Content-type: application/json", ]; $temperature = 0.6; $frequency_penalty = 0; $presence_penalty= 0; $prompt = 'What can you help me with? For example: What do you suggest to keep me motivated?'; $messages = array( array( "role" => "system", "content" => "Your name is 'JOHN DOE'. I want you to act as a motivational coach. I will provide you with some information about someone's goals and challenges, and it will be your job to come up with strategies that can help this person achieve their goals. This could involve providing positive affirmations, giving helpful advice or suggesting activities they can do to reach their end goal. if you don't understand the question, don't think too much, tell the user to be more specific with more details" ), array( "role" => "assistant", "content" => "Hello, I'm JOHN DOE, and I'm a motivational coach who loves helping people find their drive and achieve their goals. With years of experience in coaching and personal development, I've developed a unique approach to motivation that combines mindset, energy, and action." ), array( "role" => "user", "content" => $prompt ) ); $url = "https://api.openai.com/v1/chat/completions"; $params = json_encode([ "messages" => $messages, "model" => $model, "temperature" => $temperature, "max_tokens" => 1024, "frequency_penalty" => $frequency_penalty, "presence_penalty" => $presence_penalty, "stream" => false ]); $curl = curl_init($url); $options = [ CURLOPT_POST => true, CURLOPT_HTTPHEADER => $header, CURLOPT_POSTFIELDS => $params, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => 0, ]; curl_setopt_array($curl, $options); $response = curl_exec($curl); if ($response === false) { echo 'data: {"error": "[ERROR]","message":"'.curl_error($curl).'"}' . PHP_EOL; }else{ $response_array = json_decode($response, true); $content = $response_array['choices'][0]['message']['content']; echo $content; }