上个月我在做一个电商项目,需求是让用户拍照搜商品。听起来简单对吧?把图片丢给模型,让它识别商品名称,返回搜索结果。
实际做起来才发现,多模态这件事远没有"把图片塞进API"那么简单。不同模型在不同场景下的表现差距大得离谱。有的模型看图很强但处理不了中文文字,有的模型能看懂视频但一帧一帧分析慢得要死。
我花了一周时间,用同一组测试集跑了GPT-4o、Gemini 2.5 Pro和Claude Sonnet 4。结果让我挺意外的。
测试环境和方法
先说测试条件,免得有人说我测得不公平。
三个模型都通过API调用,不是网页版。API版本分别是:GPT-4o用的是2025-11版,Gemini 2.5 Pro用的是preview-06-05,Claude用的是sonnet-4-20250514。所有测试在同一天完成,用的同一个prompt模板。
测试集是我自己攒的,一共60个样本,覆盖4个场景:
图片文字识别(OCR):20张图片,包含中英文混排、手写体、表格截图。
商品图片理解:15张电商产品图,要求识别商品名称、颜色、材质。
图表分析:15张数据图表(柱状图、折线图、饼图),要求提取关键数据。
视频理解:10段15-30秒的视频,要求描述内容并回答相关问题。
每个场景我都会记录准确率、响应时间和API费用。
图片文字识别:GPT-4o赢了,但没赢多少
OCR这个场景我本来以为各家差不多,结果还是有差距。
GPT-4o的准确率大概在92%左右。它最大的优势是中文手写体识别——我丢了一张手写的购物清单上去,潦草得我自己都要认半天,它居然基本都识别对了。
Gemini 2.5 Pro在这个场景表现中规中矩,准确率大概88%。表格识别是它的强项,那种复杂的合并单元格表格它处理得比GPT-4o好。但在手写体上就拉胯了。
Claude Sonnet 4的表现让我有点失望。准确率大概85%。主要是中文识别不太行,有些简体字它会认成繁体字或者形近字。英文部分倒是没问题。
响应时间方面,三家差不多,都在1-2秒之间。费用的话,处理一张图片大概消耗500-800个token,按各家的定价算下来差别不大。
商品图片理解:Gemini意外胜出
这个场景的结果出乎我意料。
我给模型看一张运动鞋的照片,让它识别品牌、型号、颜色。GPT-4o能准确识别Nike和adidas这种大牌,但遇到国产品牌就经常瞎猜。它把一双李宁认成了New Balance,把一双安踏说成是"某个运动品牌"。
Gemini 2.5 Pro在商品识别上表现最好,准确率大概85%。我猜这跟Google在电商搜索上的积累有关系。它不仅能认出品牌,还能描述商品的材质和设计特点,有些细节我自己都没注意到。
Claude在这个场景表现一般,大概78%。它比较保守,遇到不确定的会说"我不确定这是什么品牌",而不是像GPT-4o那样自信地瞎猜。从用户体验角度说,这种"不知道就说不知道"的态度其实更可靠。
费用方面有个有趣的发现:Gemini处理图片的token消耗比另外两家少30%左右。它似乎对图片做了更高效的压缩。
图表分析:三家都不太行
这个场景是让我最头疼的。
需求很简单:给模型看一张柱状图,让它告诉我2025年Q3的销售额是多少。三个模型都经常出错。
GPT-4o大概75%的准确率。它的问题是经常把柱子的颜色和对应的图例搞混。我测了一张有6个颜色的分组柱状图,它有3次把颜色对应错了。
Gemini大概72%。它在读取Y轴数值的时候精度不够,经常把350万读成3500万或者35万。数量级对了,但具体数字差很多。
Claude大概70%。它在处理折线图的时候比较准,但遇到3D图表或者那种花里胡哨的商业PPT图表就完全不行了。
说实话,如果你们的需求是让AI读图表,我建议先把图表转成CSV或者JSON格式再给模型。图片转数据这一步,目前没有任何模型能让人完全放心。
视频理解:Gemini碾压
这是Gemini最大的优势场景,没有之一。
我测了10段视频,内容包括做饭、运动、产品展示、会议录制。Gemini 2.5 Pro可以直接处理视频文件,不需要你一帧一帧截图。它会自动采样关键帧,然后给出一个连贯的描述。
举个例子:我给它一段15秒的拉面制作视频。Gemini的输出是:"视频展示了一碗日式豚骨拉面的制作过程。首先将面条放入沸水中煮约2分钟,然后捞出放入碗中。接着加入豚骨汤底,摆上叉烧肉、溏心蛋、笋干和海苔。最后撒上葱花和芝麻。"
这个描述基本上是准确的。
GPT-4o目前不支持直接视频输入。你只能一帧一帧截图给它,然后让它理解。我截了10帧给它,它也能大致理解视频内容,但描述是碎片化的——"第1帧:一双手在揉面。第2帧:面条放入锅中。"不是一个连贯的理解。
Claude Sonnet 4的情况和GPT-4o类似,不支持直接视频输入。截图分析的能力和GPT-4o差不多。
所以如果你的应用需要视频理解,目前Gemini几乎是唯一的选择。OpenAI和Anthropic在视频支持上确实落后了。
语音对话:GPT-4o的Live模式确实强
虽然语音严格来说不算"多模态视觉",但既然聊到多模态,语音对话也值得一说。
GPT-4o的Realtime API(Live模式)是我用过最流畅的AI语音对话。延迟低到200毫秒左右,基本感觉不到等待。它还能感知你说话的语气和情绪。我故意用很着急的语气问问题,它回复的速度也会加快,语速变快。
Gemini的语音对话能力也不错,但延迟比GPT-4o高,大概500毫秒-1秒。日常聊天没问题,但做实时客服这种场景就有点卡。
Claude目前还没有原生的语音对话功能。你只能通过第三方TTS/STT来搭,体验差很多。
API调用代码示例
既然写了测评,顺手放一下三个模型处理图片的调用代码。
GPT-4o看图:
import openai
client = openai.OpenAI(api_key="your-key")
response = client.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "这张图片里有什么商品?请识别品牌和型号。"},
{"type": "image_url", "image_url": {"url": "https://example.com/shoe.jpg"}}
]
}]
)
print(response.choices[0].message.content)
Gemini看图:
import google.generativeai as genai
genai.configure(api_key="your-key")
model = genai.GenerativeModel("gemini-2.5-pro")
# 上传图片
img = genai.upload_file("shoe.jpg")
response = model.generate_content([
"这张图片里有什么商品?请识别品牌和型号。",
img
])
print(response.text)
Claude看图:
import anthropic
import base64
client = anthropic.Anthropic(api_key="your-key")
with open("shoe.jpg", "rb") as f:
img_data = base64.standard_b64encode(f.read()).decode()
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{"type": "image", "source": {"type": "base64", "media_type": "image/jpeg", "data": img_data}},
{"type": "text", "text": "这张图片里有什么商品?请识别品牌和型号。"}
]
}]
)
print(response.content[0].text)
三家的API格式都不一样,但基本思路是一样的:把图片编码后放到messages里。如果你想统一调用方式,可以用SevenFa AI Hub的统一API,它兼容OpenAI的接口格式,但背后可以路由到任意模型。
费用对比
处理图片的成本各家差别不大,但有些细节值得注意。
GPT-4o处理一张图片大概消耗500-800个token(取决于图片分辨率)。按$2.5/百万input token算,一张图大概$0.001-0.002。不贵。
Gemini 2.5 Pro的价格是$1.25/百万input token(<=200K context),图片token消耗比GPT-4o少30%左右。算下来单张图大概$0.0005。最便宜。
Claude Sonnet 4的价格是$3/百万input token,图片token消耗和GPT-4o差不多。单张图大概$0.002。最贵。
但如果你做的是视频分析,Gemini的优势就大了。GPT-4o需要你自己截图再一张张传,token消耗是图片数量的倍数。Gemini直接处理视频文件,它自己决定采样频率,通常15秒的视频只消耗相当于5-8张图片的token。
我的建议
测完之后,我的结论是:没有一个模型在所有多模态场景都是最强的。选哪个取决于你的具体需求。
做OCR和文档理解:GPT-4o。中文识别最好,手写体也行。
做电商商品识别:Gemini 2.5 Pro。对商品的理解更深,费用也最低。
做图表数据提取:说实话,都一般。建议先用专门的OCR工具(比如PaddleOCR)提取数据,再把结构化数据丢给模型分析。
做视频理解:Gemini 2.5 Pro,没别的选。
做语音对话:GPT-4o Realtime API。
如果你的应用需要同时处理多种模态,我的建议是用一个路由层,根据不同任务类型调用不同模型。这比强迫一个模型干所有活效果好得多。
通过SevenFa AI Hub可以很方便地实现这个路由——一个API key,根据任务类型选择不同的模型,不用在代码里维护多个SDK。