实用,我会陆续更新干货,不废话的
<?php
require 'openai.class.php';
$apikey = "sk-proj-FXA6bazYk9D4ZsrrTPPVT3BlbkFJj6aJBZIAXYdAiFuGL13c";
$chat = new class_openai($apikey);
$prompt = "人生很痛苦,怎么办";
$messages = array(
array('role' => "system", 'content' =>"你是专业的心理师"),
array('role' => "user", 'content' =>$prompt)
);
$result = $chat->chat_completions_context($messages);
echo $result;
?>
<?php
class class_openai{
//构造函数,获取Access Token
function __construct($apikey) {
$this->root_url = "https://api.openai.com/";
$this->apikey = $apikey;
}
//文字完成 上下文
function chat_completions_context($messages){
$field = array(
"model"=>"gpt-3.5-turbo",
"temperature"=> 0.5,
"messages"=>$messages
);
$url = $this->root_url."v1/chat/completions";
$response = $this->sendPostRequest($url, json_encode($field));
$result = json_decode($response, true);
return trim($result["choices"][0]["message"]["content"]);
}
//图片完成
function images_generations($prompt){
$field = array(
"prompt"=>$prompt,
"n"=>1,
"size"=>"256x256",
);
$url = $this->root_url."v1/images/generations";
$response = $this->http_request($url, json_encode($field));
$result = json_decode($response, true);
return trim($result["data"][0]["url"]);
}
//HTTP请求(支持HTTP/HTTPS,支持GET/POST)
function http_request($url, $data = null){
$headers = array(
"Content-Type: application/json",
"Authorization: Bearer " . $this->apikey
);
//var_dump($url);
//var_dump($headers);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 120);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
if(!empty($data)){
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
$output = curl_exec($ch);
// 处理响应
if (curl_errno($ch)) {
echo 'cURL Error: ' . curl_error($ch);
}
curl_close($ch);
return $output;
}
function sendPostRequest($url,$data = null) {
//代理IP
$UserAgent = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.78 Safari/537.36';
$proxyIP = '156.246.82.109';
$proxyPort = '6505';
$proxyUsername = "80780991";
$proxyPassword = "8J9mgx49";
$headers = array(
"Content-Type: application/json",
"Authorization: Bearer " . $this->apikey
);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $data,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE,
CURLOPT_USERAGENT => $UserAgent,
CURLOPT_HTTPPROXYTUNNEL => true,
CURLOPT_PROXY => $proxyIP,
CURLOPT_PROXYPORT => $proxyPort,
//CURLOPT_PROXYUSERPWD => $proxyUsername.':'.$proxyPassword,
CURLOPT_PROXYUSERPWD => "[".$proxyUsername."]:[".$$proxyPassword."]",
CURLOPT_PROXYAUTH => CURLAUTH_BASIC,
CURLOPT_PROXYTYPE => CURLPROXY_HTTP,
));
$response = curl_exec($curl);
if (curl_errno($curl)) {
echo 'cURL Error: ' . curl_error($curl);
}
curl_close($curl);
return $response;
}
}
?>