PHP编写聊天演示DEMO接口Chat GPT获取API Keys

登录

点击create获取apiKey

<?php
header( "Content-Type: application/json" );
$context = json_decode( $_POST[context] ?: "[]" ) ?: [];
$prompt = "";
if( empty( $context ) ) {
    $please_use_above = "";
} else {
    $context = array_slice( $context, -5 );
    foreach( $context as $message ) {
       $prompt .= "问题:
" . $message[0] . "

答案:
" . $message[1] . "

";
    }
    $please_use_above = "。请赵一舟使用上面的问题和答案作为前后文进行回答。";
}
$prompt .= "问题:
" . $_POST[message] . $please_use_above . "

答案:

";

$dTemperature = 0.9;
$iMaxTokens = 1024;
$top_p = 1;
$frequency_penalty = 0.0;
$presence_penalty = 0.0;
$OPENAI_API_KEY = "sk-PXQ0A35RLCQaImgLujPST3blbkFJ2d7Kaa9aJjUqzvYwwkqd";
$sModel = "text-davinci-003";
$ch = curl_init();
$headers  = [
    Accept: application/json,
    Content-Type: application/json,
    Authorization: Bearer  . $OPENAI_API_KEY . 
];

$postData = [
    model => $sModel,
    prompt => str_replace(", , $prompt),
    temperature => $dTemperature,
    max_tokens => $iMaxTokens,
    top_p => $top_p,
    frequency_penalty => $frequency_penalty,
    presence_penalty => $presence_penalty,
    stop => [" Human:", " AI:"],
];

//echo json_encode($postData);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_URL, https://api。openai。com/v1/completions);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));

$result = curl_exec($ch);
$complete = json_decode($result);

if( isset( $complete->choices[0]->text ) ) {
    $text = str_replace( "\n", "
", $complete->choices[0]->text );
} elseif( isset( $complete->error->message ) ) {
    $text = "服务器返回错误信息:".$complete->error->message;
} else {
    $text = "抱歉,我不知道如何回答.";
}



echo json_encode( [
     "message" => $text,
     "raw_message" => $text,
     "status" => "success",
 ] );

$content2 = $_SERVER["REMOTE_ADDR"]." | ".date("Y-m-d H:i:s")."
";
$content2 .= "Q:".$_POST[message]."
A:".$text."
----------------
";
$myfile = fopen(__DIR__ . "/chat.txt", "a") or die("Writing file failed.");
fwrite($myfile, $content2);
fclose($myfile);
?>
经验分享 程序员 微信小程序 职场和发展