调用openai.createImageEdit()时遇localVarFormParams.getHeaders不是函数错误求助
解决OpenAI createImageEdit 报错 localVarFormParams.getHeaders is not function
这个错误的核心原因是传入createImageEdit的selectedImage或selectedMaskImage格式不符合SDK要求,导致内部表单参数处理逻辑出错。以下是具体的排查和修复步骤:
1. 修正参数格式
createImageEdit要求前两个参数必须是File对象(浏览器环境)、Buffer或ReadStream(Node.js环境),不能是URL、base64字符串或其他格式:
- 浏览器端:确保从
<input type="file">获取原始File对象传入,不要自行转换格式。 - Node.js端:通过
fs.readFileSync获取文件Buffer,或用fs.createReadStream创建流对象传入。
2. 优化代码写法(避免await和then混用)
统一使用async/await语法,提升代码可读性和错误处理效率:
const generatedDalleImage = async () => { try { const response = await openai.createImageEdit( selectedImage, // 符合要求的File/Buffer/ReadStream selectedMaskImage, // 符合要求的File/Buffer/ReadStream "human face", 1, "1024x1024" ); console.log(response); setGeneratedImage(response.data.data[0].url); } catch (err) { console.error(err); } };
3. 更新OpenAI SDK到最新版
旧版本SDK可能存在表单参数处理的bug,执行以下命令更新:
# npm npm update openai # yarn yarn upgrade openai
内容的提问来源于stack exchange,提问作者Ahmed0h
相关产品推荐
相关产品推荐

