php 您需要在Authorization标头中提供API密钥

ih99xse1  于 2023-01-24  发布在  PHP
关注(0)|答案(1)|浏览(192)

我收到了以下PHP代码的错误:

$curl = curl_init("https://api.openai.com/v1/engines/davinci/completions");

$data = array(
  'prompt' => 'how many sundays in 2023',
  'max_tokens' => 256,
  'temperature' => 0.7,
  'model' => 'text-davinci-003'
);

curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer sk-MY-API-KEY']);
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);

$result = curl_exec($curl);
curl_close($curl);

$result = json_decode($result);
print $result->choices[0]->text;

我正确地提供了API密钥,但得到这个错误:
错误信息:您未提供API密钥。您需要使用承载身份验证在授权标头中提供API密钥(即授权:您的钥匙持有人)
非常感谢您的支持。

vcudknz3

vcudknz31#

所有Engines endpoints都已弃用。

更改此URL ...

https://api.openai.com/v1/engines/davinci/completions

......到这个。

https://api.openai.com/v1/completions

编辑

改变这个...

curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer sk-MY-API-KEY']);
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);

......到这个。

$headers  = [
    'Accept: application/json',
    'Content-Type: application/json',
    'Authorization: Bearer sk-MY-API-KEY'
];

curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

相关问题