AIIFY_CHAT_MODEL , 'temperature' => (float) AIIFY_TEMPERATURE, //'max_tokens' => $maxTokens + intval($count_words_input/AIIFY_TOKEN_WORD_RATIO) , 'frequency_penalty' => (float) AIIFY_FREQUENCY_PENALTY, 'presence_penalty' => (float) AIIFY_PRESENCE_PENALTY, ]; if ($method == 'chat') { $opts['messages'] = [ [ "role" => "system", "content" => AIIFY_SYSTEM_PROMPT ], [ "role" => "system", "content" => AIIFY_SYSTEM_PROMPT_FORMATING ], [ "role" => "user", "content"=> $prompt ] ]; } else { $opts['prompt'] = AIIFY_SYSTEM_PROMPT. "\n\n".AIIFY_SYSTEM_PROMPT_FORMATING."\n\n" . $prompt; } if ($isStream) { $opts["stream"] = true; header('Content-type: text/event-stream'); header('Cache-Control: no-cache'); } $complete = $open_ai->$method($opts, function ($curl_info, $data) use ($opts) { static $sentDebug; // add error if ($obj = json_decode($data) and $obj->error->message != "") { $opts['error'] = $obj->error; } if ($sentDebug===null) { $debug = json_encode($opts).PHP_EOL.PHP_EOL; echo "data: ".wp_kses_post($debug); $sentDebug = true; ob_flush(); } if (isset($opts['error'])) { echo "error: ". wp_kses_post($obj->error->message); } else { echo wp_kses_post($data); } echo PHP_EOL; ob_flush(); flush(); return strlen($data); }); });