我正在尝试将图像从我的 Firebase 存储桶发送到 openai 编辑图像 API,但我在标题上收到上述错误。
exports.sendToOpenAI = functions.https.onRequest(async (req, res) => {
corsMiddleware(req, res, async () => {
if (req.method !== "POST") {
return res.status(405).end();
}
try {
const relativePath = req.body.path;
const bucket = admin.storage().bucket();
const file = bucket.file(relativePath);
const fileBuffer = await file.download();
const openAIResponse = await openai.images.edit({
image: fileBuffer[0],
prompt: "Put a suit on that person",
size: "256x256",
});
return res
.status(200)
.json({ success: true, response: openAIResponse.data });
} catch (error) {
console.error("Error sending image to OpenAI:", error);
return res.status(500).json({
success: false,
error: "Internal Server Error sending image to OpenAI",
});
}
});
});
“fileBuffer”的长度为 0.1MB,根据 API 文档,图像必须小于 4MB。
我也尝试传递其他小图像,但没有成功。
我在 Firebase 上向任何人授予了写入和读取存储的权限。
我不知道为什么会出现此错误。有人遇到同样的问题吗
我在尝试上传Word文档文件时遇到了同样的问题。这就是我尝试上传的方式:
const documentBuffer = fs.readFileSync(filePath);
const response = await openai.files.create({
purpose: ‘assistants’,
file: documentBuffer
});
我将其更改为这个,然后问题得到解决:
const response = await openai.files.create({
purpose: ‘assistants’,
file: fs.createReadStream(filePath)
});