gpt4 book ai didi

openai-api - ChatGPT 提示符的有效字符?

转载 作者:行者123 更新时间:2023-12-02 05:48:42 24 4
gpt4 key购买 nike

具有以下请求负载(从 JSON.stringify(data) 生成,没有错误):

{
"model": "gpt-3.5-turbo",
"messages": [
{ "role": "user", "content": "convert 4000 m² into acres." }
]
}

我收到以下 ChatGPT API 错误响应:

invalid_request_error: We could not parse the JSON body of your request. 
(HINT: This likely means you aren't using your HTTP library correctly.
The OpenAI API expects a JSON payload, but what was sent was not valid JSON.
If you have trouble figuring out how to fix this, please send an email to support@openai.com
and include any relevant code you'd like help with.)

更改为平方米解决了问题。

但是我在OpenAI文档中找不到任何字符限制。

那么哪些字符对于 ChatGPT API 有效,哪些无效?

对于那些受限字符,如何转义/编码?

或者,我应该过滤掉这些字符吗?

编辑:

现在我很确定这是编码问题。任何非 ASCII 字符都会导致相同的错误,例如一些汉字:

{
"model": "gpt-3.5-turbo",
"messages": [{ "role": "user", "content": "一年有多少天" }]
}

编辑2:

代码是 AWS Lambda 函数,运行时是 Node.js 14.x。从日志来看,有效负载看起来是正确的。代码如下:

const https = require('https');

function apiRequest(data, apiKey) {
let requestBody = JSON.stringify(data);
console.log('payload:', requestBody);
const options = {
hostname: 'api.openai.com',
port: 443,
path: '/v1/chat/completions',
method: 'POST',
headers: {
'Content-Type': 'application/json; charset=utf-8',
'Accept': 'application/json; charset=utf-8',
'Authorization': `Bearer ${apiKey}`,
'Content-Length': requestBody.length
},
}

return new Promise((resolve, reject) => {
const req = https.request(options, (res) => {
res.setEncoding('utf-8');
let responseBody = '';

res.on('data', (chunk) => {
responseBody += chunk;
});

res.on('end', () => {
console.log('response:', responseBody);
resolve(JSON.parse(responseBody));
});
});

req.on('error', (err) => {
reject(err);
});

req.write(requestBody, 'utf-8');
req.end();
});
}

最佳答案

将运行时更改为 Node.js 18.x,并将 https 替换为 node-fetch,问题已解决。

关于openai-api - ChatGPT 提示符的有效字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76034314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com