好的,让我们从发送请求到 ChatGPT API,并解析 API 返回的结果部分开始解释一下这段代码。
我们使用 `file_get_contents()` 函数向 ChatGPT API 发送 POST 请求,并将返回的结果存储在 `$result` 变量中:
```php
$url = 'https://api.openai.com/v1/engines/davinci-codex/completions';
$data = array(
'prompt' => $message,
'max_tokens' => 100,
'n' => 1,
'stop' => '\n',
'temperature' => 0.7,
);
$options = array(
'http' => array(
'header' => "Content-type: application/json\r\nAuthorization: Bearer YOUR_API_KEY\r\n",
'method' => 'POST',
'content' => json_encode($data),
),
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
```
在上面的代码中,我们定义了 `$url` 变量来存储 ChatGPT API 的 URL。然后,我们定义了一个包含以下参数的 `$data` 数组:
- `prompt`:用户输入的问题。
- `max_tokens`:生成回答时要使用的最大令牌数。
- `n`:要生成的回答数量。
- `stop`:用于停止生成回答的字符串。
- `temperature`:控制生成回答的随机性和创造性的参数。
接下来,我们定义了一个包含以下参数的 `$options` 数组:
- `header`:包含 Content-type 和 Authorization 头的字符串。请将 YOUR_API_KEY 替换为您的 ChatGPT API 密钥。
- `method`:HTTP 请求方法,这里是 POST。
- `content`:包含要发送到 ChatGPT API 的数据的 JSON 字符串。
然后,我们使用 `stream_context_create()` 函数创建一个流上下文,并将 `$options` 数组作为参数传递给它。最后,我们使用 `file_get_contents()` 函数向 ChatGPT API 发送请求,并