openAI 通过php方式 发送请求,流数据形式传输,php 实现chatGPT功能
<?php
// 确保开启cURL扩展
if (!function_exists('curl_version')) {
exit('The PHP cURL extension must be enabled to use this script');
}
// 设置OpenAI API的访问密钥
$openai_api_key = 'YOUR_OPENAI_API_KEY';
// 设置ChatGPT模型和消息提示
$model = 'text-davinci-002'; // 可以根据需要选择不同的模型
$prompt = "你好,我是人工智能。请随意交谈。";
// 准备发送到OpenAI API的数据
$data = [
'model' => $model,
'prompt' => $prompt,
'stream' => true, // 启用流数据传输
'temperature' => 0.7, // 调整模型的输出温度
'max_tokens' => 150, // 设置生成文本的最大令牌数
];
// 初始化cURL会话
$ch = curl_init('https://api.openai.com/v1/engines/davinci-codex/completions');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'Authorization: Bearer ' . $openai_api_key]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 启动cURL会话并获取响应
$response = curl_exec($ch);
if (curl_errno($ch)) {
$error_msg = curl_error($ch);
curl_close($ch);
exit('cURL error: ' . $error_msg);
}
// 处理响应流数据
$responses = [];
while (!feof($response)) {
$responses[] = fgets($response);
}
// 关闭cURL资源,并释放系统资源
curl_close($ch);
// 处理响应并输出
foreach ($responses as $response_line) {
$decoded_response = json_decode($response_line, true);
if (isset($decoded_response['choices'][0]['text'])) {
echo $decoded_response['choices'][0]['text'];
}
}
?>
这段代码使用PHP cURL函数向OpenAI的ChatGPT API发送请求。它设置了必要的头信息,包括访问密钥,并将请求参数编码为JSON格式。然后,它启用cURL的流传输选项,并处理响应流数据。最后,它输出了从API接收到的每一条消息。这个例子展示了如何使用PHP发送请求并处理流数据的基本方法。
评论已关闭