调用OpenAI Vision API提示模型不存在或无权限问题求助
排查GPT-4-Vision-Preview模型访问报错问题
我搭建了一个与OpenAI Vision API交互的服务器,已参照官方文档完成代码实现,且每月订阅ChatGPT Plus(按规则应具备API访问权限),但每次发起请求均返回错误,提示“gpt-4-vision-preview模型不存在或无访问权限”。以下是我的服务器代码、返回的报错信息及官方示例代码,恳请协助排查问题原因。
我的服务器代码
const express = require('express'); const OpenAIApi = require("openai"); require('dotenv').config(); const app = express(); const PORT = process.env.PORT || 3000; console.log(process.env.OPENAI_API_KEY) const openai = new OpenAIApi({ apiKey: process.env.OPENAI_API_KEY, }); app.use(express.json()); app.post('/api/v1/analyze-image', async (req, res) => { const imageUrl = req.body.imageUrl; if (!imageUrl) { return res.status(400).send({ error: 'No image URL provided' }); } try { const response = await openai.chat.completions.create({ model: "gpt-4-vision-preview", messages: [ { role: "user", content: [ { type: "text", text: "What’s in this image?" }, { type: "image_url", image_url: { "url": imageUrl, }, }, ], }, ], }); res.json(response.data.choices[0]); } catch (error) { res.status(500).send({ error: error.message }); } }); app.listen(PORT, () => { console.log(`Server running on port ${PORT}`); });
返回的报错信息
{ "error": "404 The model `gpt-4-vision-preview` does not exist or you do not have access to it. Learn more: https://help.openai.com/en/articles/7102672-how-can-i-access-gpt-4." }
官方文档示例代码
import OpenAI from "openai"; const openai = new OpenAI(); async function main() { const response = await openai.chat.completions.create({ model: "gpt-4-vision-preview", messages: [ { role: "user", content: [ { type: "text", text: "What’s in this image?" }, { type: "image_url", image_url: { "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg", }, }, ], }, ], }); console.log(response.choices[0]); } main();
排查方向
- SDK版本不兼容:你的代码使用
OpenAIApi类初始化客户端,但官方v4版本的OpenAI SDK已经改用OpenAI类。如果安装的是v4版本,初始化方式错误会导致请求路径异常,引发模型不存在的报错。修改初始化代码:
同时注意,v4版本的响应结构是const OpenAI = require("openai"); const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY, });response.choices[0],而不是response.data.choices[0],需要同步修改返回逻辑:res.json(response.choices[0]); - API密钥权限未开通:ChatGPT Plus订阅不自动等同于GPT-4 API权限,需确认账号是否已获得GPT-4系列模型的访问权限。可以登录OpenAI平台,在API密钥页面查看权限状态,或尝试用官方示例代码直接运行测试。
- 模型名称或参数问题:核对
gpt-4-vision-preview拼写是否完全正确,确认图片URL可公开访问(OpenAI无法读取私有链接),必要时添加detail参数(如"detail": "low")测试。 - 账号地区限制:部分地区的OpenAI账号无法访问GPT-4-Vision模型,需确认账号所属地区是否在支持范围内。
内容的提问来源于stack exchange,提问作者ojandali
相关产品推荐
相关产品推荐

