多模态视觉 API 实战:图片理解、OCR、多图对比

大模型不只能处理文字,还能”看图说话”。本文介绍如何通过 API 实现图片理解、文档 OCR、多图对比等视觉任务。

支持视觉的模型

模型图片视频特点
openai/gpt-4o高质量图片分析
openai/gpt-4o-mini快速图片分析
anthropic/claude-sonnet-4.5文档和代码理解强
google/gemini-2.5-flash多模态全能
google/gemini-2.5-pro最强多模态推理

URL 方式传图

最简单的方式,直接传图片 URL:

from openai import OpenAI

client = OpenAI(
    base_url="https://api.ofox.ai/v1",
    api_key="your-api-key"
)

response = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "描述这张图片的内容"},
            {
                "type": "image_url",
                "image_url": {"url": "https://example.com/photo.jpg"}
            }
        ]
    }]
)

print(response.choices[0].message.content)

Base64 方式传图

处理本地图片时,转成 Base64 编码传入:

import base64

with open("screenshot.png", "rb") as f:
    image_data = base64.standard_b64encode(f.read()).decode("utf-8")

response = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "这个截图里显示了什么?"},
            {
                "type": "image_url",
                "image_url": {
                    "url": f"data:image/png;base64,{image_data}"
                }
            }
        ]
    }]
)

精度控制

通过 detail 参数控制分析精度:

说明场景
auto自动选择(默认)通用
low低精度,快速简单分类、打标签
high高精度,详细文档 OCR、细节分析
{
    "type": "image_url",
    "image_url": {
        "url": "https://example.com/document.jpg",
        "detail": "high"
    }
}

多图对比

一次请求传多张图片,让模型对比分析:

response = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "比较这两张图片的区别"},
            {"type": "image_url", "image_url": {"url": "https://example.com/before.jpg"}},
            {"type": "image_url", "image_url": {"url": "https://example.com/after.jpg"}}
        ]
    }]
)

这在 UI 改版前后对比、A/B 测试结果分析等场景非常实用。

Anthropic 协议视觉输入

Claude 模型使用不同的图片传入格式:

import anthropic

client = anthropic.Anthropic(
    base_url="https://api.ofox.ai/anthropic",
    api_key="your-api-key"
)

message = client.messages.create(
    model="anthropic/claude-sonnet-4.5",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "image",
                "source": {
                    "type": "base64",
                    "media_type": "image/jpeg",
                    "data": image_data
                }
            },
            {"type": "text", "text": "描述这张图片"}
        ]
    }]
)

常见应用场景

  • 文档 OCR — 从图片中提取文字和表格
  • 代码截图分析 — 分析截图中的代码,给出修改建议
  • UI 审查 — 评估界面设计和布局合理性
  • 图表解读 — 分析数据可视化图表的内容
  • 商品识别 — 识别图片中的物品和场景

视觉理解让 AI 不再是”睁眼瞎”,大幅拓展了应用场景。结合函数调用,你可以构建出能看图、能理解、能执行的全能 AI Agent。


相关阅读