跳转到主要内容
API易 提供强大的图像理解能力,支持使用多种先进的 AI 模型对图像进行深度分析和理解。通过统一的 OpenAI API 格式,您可以轻松实现图像识别、场景描述、OCR 文字识别等功能。
🔍 智能视觉分析
支持对象识别、场景理解、文字提取、情感分析等多种视觉任务,让 AI 真正”看懂”图片。

🌟 核心特性

  • 🎯 多模型支持:Gemini 3 系列、GPT-5 系列、Claude 4 系列等顶级多模态模型
  • 📸 灵活输入:支持 URL 链接和 Base64 编码图片
  • 🌏 中文优化:完美支持中文场景理解和文字识别
  • ⚡ 快速响应:高性能推理,秒级返回结果
  • 💰 成本可控:多种模型选择,满足不同预算需求

📋 支持的视觉模型

以下为当前主流的多模态模型推荐,模型 ID 可能随版本更新,请以控制台为准。
绝大多数对话模型现已支持多模态识图:上表仅为常用推荐,并非全部。GPT-5 系列、Gemini 3 系列、Claude 4 系列、Grok 4、Qwen、GLM、Kimi 等主流模型大多已支持图像输入。

🚀 快速开始

1. 基础示例 - 图片 URL

2. 本地图片示例 - Base64 编码

3. 高级示例 - 多图对比分析

4. cURL 示例(命令行)

图片 URL 方式
本地图片 Base64 方式(先把图片编码成 Base64 再拼进请求体):
推荐优先使用 Base64 方式上传图片:图片 URL 方式需要服务器先实时下载该图片,若图床响应慢或有访问限制,就会下载失败;Base64 把图片数据直接放进请求体,不依赖任何外部下载,稳定性更高。两种方式官方均支持,Base64 体积约为原图的 1.33 倍,大图建议先适度压缩再编码。

5. 常见错误:图片 URL 下载超时

使用图片 URL 方式时,如果收到如下错误:
这表示服务器在拉取该图片 URL 时下载超时,与模型、密钥、额度均无关。常见原因:
  1. 图床 / 源站响应慢,或对部分地区网络访问不友好
  2. 图片体积过大,下载耗时超出限制
  3. URL 设有防盗链、需要登录或非公开直链
解决方法
  • 改用 Base64(data URI)方式上传(推荐,见上方示例 2)——图片数据随请求体直接提交,彻底绕开下载环节,最稳定
  • 更换为响应更快、可公开访问的图片直链
  • 压缩图片后重试

6. 常见错误:invalid base64 data(URL 误放进 Base64 字段)

如果收到如下 400 错误(以 Claude 系模型为例,其它模型系列文案略有差异,关键特征是 invalid base64 data):
通常是把图片 URL 拼进了 data URI 的 Base64 数据位
data:image/...;base64, 前缀后面必须是图片文件本身的 Base64 编码字符串,而不是图片链接。URL 方式和 Base64 方式是两种互斥的传参形式,不能混拼。常见诱因:代码里统一走了 data URI 拼接逻辑,遇到 URL 图片也直接拼了进去。 正确写法对照
自检建议:发送前判断一下图片来源——字符串以 http 开头就走 URL 方式,否则才做 Base64 编码并拼 data URI。另外,合法的 Base64 字符串不会包含 ://? 等字符,若在 base64, 之后看到这些字符,基本可以断定是把链接拼进去了。

7. 常见错误:声明的图片格式与实际格式不符(media type mismatch)

如果收到如下 400 错误(关键特征是 The image was specified using the image/png media type, but the image appears to be a image/jpeg image):
报错解读:这条错误来自上游模型服务的入参校验(示例中的 Bedrock Runtime: InvokeModel, ValidationException 表示请求已到达 Claude 系模型的上游通道,在参数校验阶段被拒绝)。它的意思非常直白:
  • 你在 data URI 里声明图片是 PNG(data:image/png;base64,...
  • 但上游解码 Base64 后检查文件头(magic bytes),发现实际内容是 JPEG
  • 声明与实际不一致 → 400 拒绝。Base64 编码本身没有问题,问题出在前缀里的 media type 写错了
常见诱因
  1. 按文件扩展名推断 MIME 类型,但扩展名是假的——文件名叫 xxx.png,实际是别人改过后缀的 JPEG(下载工具、聊天软件、截图工具都可能干这事)
  2. 代码里写死了 image/png(或写死 image/jpeg),不管传什么图都用同一个前缀
  3. 图片经过某些处理管道后格式变了,但文件名没变
解决方法:不要相信扩展名,按文件真实内容(文件头)判断 MIME 类型再拼 data URI:
也可以用 PIL 重新编码,一步到位地保证声明与内容一致(还能顺带压缩、剥离异常帧):
自检建议file xxx.png(macOS / Linux 命令行)一秒看出文件真实格式;Python 里 Image.open(path).format 也能拿到。不同模型系列对 media type 的校验严格程度不同——有的宽松放行,Claude 系(尤其经 Bedrock 通道)校验最严。按”声明必须与内容一致”来写代码,在所有模型上都不会踩坑。
GPT-5 系列参数差异:若把示例中的模型换成 gpt-5.5 / gpt-5.4 等 GPT-5 系列,请注意:
  1. max_completion_tokens 替代 max_tokens
  2. temperature 只支持 1(默认即可,不要传其它值)
  3. 不要传 top_p 参数
Gemini、Claude 系列则无此限制,可正常使用 max_tokenstemperature 等参数。

🎯 常见应用场景

1. 商品识别与分析

2. 文档 OCR 识别

3. 医学影像辅助分析

4. 安全监控场景分析

💡 最佳实践

图片预处理建议

  1. 格式支持:JPEG、PNG、GIF、WebP 等主流格式
  2. 大小限制:建议单张图片不超过 20MB
  3. 分辨率:高分辨率图片会获得更好的识别效果
  4. 压缩优化:适度压缩以提高传输速度

提示词优化

错误处理

🔧 高级功能

1. 流式输出

对于长篇分析,可以使用流式输出获得更好的用户体验:

2. 多轮对话

保持上下文进行深入分析:

3. 结合函数调用

📊 性能对比

🚨 注意事项

  1. 隐私保护:不要上传包含敏感信息的图片
  2. 合规使用:遵守相关法律法规,不用于非法用途
  3. 结果验证:AI 分析结果仅供参考,重要决策需人工复核
  4. 成本控制:合理选择模型,避免不必要的开销

🔗 相关资源

💡 小贴士:建议先使用 Gemini 3.5 Flash 或 Gemini 2.5 Flash 等高性价比模型进行测试,确认效果后再切换到 Gemini 3.1 Pro、GPT-5.5 等高级模型进行生产部署。更多可用模型请查看 当下热门模型控制台模型列表