const FormData = require('form-data');
const data = new FormData();
console.log('buffer: ', buffer);
console.log('typeof buffer: ', typeof buffer);
const filename = new Date().getTime().toString() + '.webm';
data.append('model', 'whisper-1');
data.append('file', bufferToStream(buffer));
console.log('data: ', data);
let config = {
method: "post",
maxBodyLength: Infinity,
url: "https://api.openai.com/v1/audio/transcriptions",
headers: {
Authorization:
`Bearer ${process.env.OPENAI_API_KEY}`,
"Content-Type": "multipart/form-data",
...data.getHeaders(),
},
data: data,
};
await axios.request(config)
我正在try 将文件发布到OpenAI以获取转录.但我经常收到400个错误请求.
我使用的是JavaScript(不是TypeScrip),所以我不能使用FormData包,至少我试过了,它对我没有帮助.
Error: Data after transformation must be a string, an Array Buffer, a Buffer, or a Stream个
我试用了Postman,它很有效,它为我提供了以下代码片段:
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
let data = new FormData();
data.append('model', 'whisper-1');
data.append('file', fs.createReadStream('/Users/UserName/Downloads/session-1708252969167.webm'));
let config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://api.openai.com/v1/audio/transcriptions',
headers: {
'Authorization': {{OPENAI_API_KEY}},
'Cookie': '__cf_bm=5L5OJyh1Yd28yUT9Uv0TT9F5POhL1fzeraSZF1C.9OA-1708337727-1.0-AV+XT0hftIn7mtJxICJduMQBpFcB9UQvbil6GmgI2BX7rw0BZRvuseeN0QgeuIt7KyNTxGJs/xcWIKMpkQdvzC4=; _cfuvid=3uLOzYX3DlLxSjGMLDqD0qcGIj.4zkEXt2czm9OiEfU-1708251423683-0.0-604800000',
...data.getHeaders()
},
data : data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
我也try 了这个代码片段,但它抛出了一个400错误.
我做错了什么?