BUG:“错误:413 传输的数据值超出容量限制。”当调用 v1/images/edits 时

问题描述 投票:0回答:1

我正在尝试将图像从我的 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 上向任何人授予了写入和读取存储的权限。

我不知道为什么会出现此错误。有人遇到同样的问题吗

javascript node.js firebase openai-api chatgpt-api
1个回答
0
投票

我在尝试上传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)
});
© www.soinside.com 2019 - 2024. All rights reserved.