Ban*_*ian 3 openai-api chatgpt-api
我正在编写一个简单的 PHP 脚本,没有依赖项来访问 ChatGPT API,但它抛出了一个我不明白的错误:
这是到目前为止的脚本:
$apiKey = "Your-API-Key";
$url = 'https://api.openai.com/v1/chat/completions';
$headers = array(
"Authorization: Bearer {$apiKey}",
"OpenAI-Organization: YOUR-ORG-STRING",
"Content-Type: application/json"
);
// Define messages
$messages = array();
$messages["role"] = "user";
$messages["content"] = "Hello future overlord!";
// Define data
$data = array();
$data["model"] = "gpt-3.5-turbo";
$data["messages"] = $messages;
$data["max_tokens"] = 50;
// init curl
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
if (curl_errno($curl)) {
echo 'Error:' . curl_error($curl);
} else {
echo $result;
}
curl_close($curl);
Run Code Online (Sandbox Code Playgroud)
这会从 API 返回一个错误:
{"model":"gpt-3.5-turbo","messages":{"role":"user","content":"你好未来的霸主!"},"max_tokens":50}{ "error": { "message": "{'role': 'user', 'content': '你好未来霸主!'} 不是 'array' - 'messages' 类型", "type": "invalid_request_error", "param":空,“代码”:空 } }
AFAIK,我将消息参数作为数组发送。这哪里出了问题?这是 json_encode 的问题吗?为什么 API 不认为这是一个数组?
提前致谢!
啊...我看到了这个问题...如果其他人有同样的问题,请在这里留下这个答案:
有两个不同的参数,“message”和“messages”。我没有注意到错误消息中的单数/复数。
更正后的代码在这里:
// Define messages
$messages = array();
$message = array();
$message["role"] = "user";
$message["content"] = "Hello future overlord!";
$messages[] = $message;
// Define data
$data = array();
$data["model"] = "gpt-3.5-turbo";
$data["messages"] = $messages;
$data["max_tokens"] = 50;
Run Code Online (Sandbox Code Playgroud)
谢谢楼上各位的评论。
| 归档时间: |
|
| 查看次数: |
15853 次 |
| 最近记录: |