我一个朋友上周在群里发了一张截图——产线报错日志,问"有没有人见过这个错?"
我正好刚接上 Vision API,顺手把截图丢进去,30 秒后 AI 给出了错误原因、涉及的文件名、甚至定位到了第几行。群里安静了 5 秒然后炸了:“这 TM 是把图片丢给 AI 读?”
对,就是。而且一分钱没花——用的免费额度。
多模态模型是什么
一句话:能同时理解文字和图片的 AI。
GPT-4V、Claude 3.5 Sonnet、DeepSeek V4 Pro 都支持。你把一张截图、照片、图表丢给它,它像看懂了似的给你分析。
这不是魔法。本质上是在文本模型的基础上,加了一个视觉编码器——把图片切成小块,每个块变成一个向量,和文本混在一起输入 LLM。
今天我们直接上手测,不讲原理讲实战。
前置准备
DeepSeek V4 Pro 支持 Vision API,用 Anthropic 兼容接口调。和文本接口几乎一样,只是 message 里可以夹带图片:
packagemainimport("bytes""encoding/base64""encoding/json""fmt""net/http""os")constbaseURL="https://api.deepseek.com/anthropic"typeImageSourcestruct{Typestring`json:"type"`MediaTypestring`json:"media_type"`Datastring`json:"data"`}typeContentBlockstruct{Typestring`json:"type"`Textstring`json:"text,omitempty"`Source*ImageSource`json:"source,omitempty"`}typeMessagestruct{Rolestring`json:"role"`Content[]ContentBlock`json:"content"`}typeRequeststruct{Modelstring`json:"model"`MaxTokensint`json:"max_tokens"`Temperaturefloat64`json:"temperature"`Messages[]Message`json:"messages"`}funcaskWithImage(imagePath,promptstring)(string,error){data,err:=os.ReadFile(imagePath)iferr!=nil{return"",fmt.Errorf("读取图片失败: %w",err)}b64:=base64.StdEncoding.EncodeToString(data)req:=Request{Model:"deepseek-v4-pro",MaxTokens:800,Temperature:0.1,Messages:[]Message{{Role:"user",Content:[]ContentBlock{{Type:"image",Source:&ImageSource{Type:"base64",MediaType:"image/png",Data:b64,},},{Type:"text",Text:prompt,},},},},}body,_:=json.Marshal(req)httpReq,_:=http.NewRequest("POST",baseURL+"/v1/messages",bytes.NewReader(body))httpReq.Header.Set("x-api-key",os.Getenv("DEEPSEEK_API_KEY"))httpReq.Header.Set("anthropic-version","2023-06-01")httpReq.Header.Set("Content-Type","application/json")resp,err:=http.DefaultClient.Do(httpReq)iferr!=nil{return"",err}deferresp.Body.Close()varresultmap[string]interface{}json.NewDecoder(resp.Body).Decode(&result)ifcontent,ok:=result["content"].([]interface{});ok&&len(content)>0{iftext,ok:=content[0].(map[string]interface{})["text"].(string);ok{returntext,nil}}return"",fmt.Errorf("无法解析响应")}实测一:OCR —— 从截图里提取文字
我把一段 Go 错误日志截了图丢进去:
Prompt:「提取这张截图中的所有文本,保持原格式。」
结果:
panic: runtime error: invalid memory address or nil pointer dereference [signal 0xc0000005 code=0x0 addr=0x0 pc=0x1234567] goroutine 1 [running]: main.processOrder(0x0, 0x0) /app/internal/handler/order.go:42 +0x78 main.main() /app/cmd/server/main.go:27 +0x3a一个字不差。连缩进都保持了。比我手动抄快了 100 倍,而且不会抄错。
评分:准确率 99%,偶有标点遗漏。比 tesseract OCR 强在不需要预处理,带背景的截图也能读。
实测二:图表分析 —— 读财务报表截图
我从某上市公司年报截了一张营收趋势图:
Prompt:「分析这张图表的数据趋势。如果有具体数值,请逐一列出。」
结果:
这是一张营收趋势折线图。数据如下: 2021年: 约 1250 亿 2022年: 约 1480 亿(同比增长 18.4%) 2023年: 约 1320 亿(同比下降 10.8%) 2024年: 约 1560 亿(同比增长 18.2%) 趋势分析: - 整体呈增长趋势,但 2023 年有明显下滑 - 2024 年恢复并超过前期高点 - 4 年复合增长率约 7.6%数值有 5% 以内的误差,但趋势判断完全正确。关键是——它不只是读数字,还算了增长率、给了分析。
评分:数值准确率 90-95%,趋势分析 100%。适合快速了解图表含义,不适合精确审计。
实测三:UI 审查 —— 找设计问题
我截了一张公司后台管理的列表页:
Prompt:「你是 UI 评审专家。审查这个界面,找设计问题。」
结果:
发现以下问题: 1. 排版问题: - 表格列宽不均匀,"操作"列过宽 - "创建时间"列显示不完整,内容被截断 2. 交互问题: - "删除"按钮仅靠文字区分,无二次确认图标或颜色区分 - 分页器缺少"跳转到第X页"的输入框 3. 信息层级: - 搜索框和筛选条件未做视觉分组 - 批量操作按钮位置不显眼 4. 可访问性: - 表格缺少斑马纹,大屏下难以追踪行这比我找一个设计师来审查快了 N 倍——虽然不能替代专业设计评审,但作为第一轮自查够了。
评分:能发现 70% 的通用问题。专业领域(如 iOS/Android 规范差异)准确率下降。
实测四:照片理解 —— 识别环境信息
我拍了一张机房的设备照片:
Prompt:「描述这张照片里有什么,尽可能详细。」
结果:
照片显示一个服务器机柜,包含: 1. 机柜顶部: 一台 Cisco Catalyst 2960-X 交换机 2. 中部: 3 台 Dell PowerEdge R740 服务器,从上到下排列 - 最上方那台硬盘指示灯(琥珀色)亮着,表示有硬盘故障 3. 底部: 1 台 UPS 不间断电源,显示面板读数 87% 4. 线缆管理:蓝色网线较多,部分未绑扎整齐它识别出了具体型号、指示灯状态、UPS 读数。最有用的是「硬盘指示灯琥珀色」——这比我爬梯子去看快多了。
评分:物体识别 95%+,型号识别 80%(知名品牌更准)。场景理解能力超出预期。
实测五:代码截图转文本 —— 拯救你的手
朋友用手机拍了一张他显示器上的 SQL 截图,问我「这段 SQL 怎么优化」。
我不想一行行手打。直接丢给 Vision API:
Prompt:「提取这张图片中的 SQL 代码,不要加任何解释。」
结果:一字不差地把 30 行 SQL 变成可复制的文本——包括中文注释。
这是我最常用的场景。尤其是接别人的代码截图,不用手打。
五个场景总结
| 场景 | 准确率 | 实际价值 | 一句话 |
|---|---|---|---|
| OCR 文字提取 | 99% | ⭐⭐⭐⭐⭐ | 截图一键变文本 |
| 图表数据分析 | 90-95% | ⭐⭐⭐⭐ | 不影响趋势判断 |
| UI 设计审查 | 70% | ⭐⭐⭐ | 第一轮自查够用 |
| 照片场景理解 | 85-95% | ⭐⭐⭐⭐ | 出乎意料地好 |
| 代码截图转文本 | 98% | ⭐⭐⭐⭐⭐ | 太实用了 |
多模态现在还不能做什么
实测中我也踩了坑:
- 数数不准。一张图里有 12 个人,AI 说 8 个。视觉模型的计数能力很弱。
- 读手写体翻车。潦草的手写中文,准确率掉到 50% 以下。
- 空间关系判断差。「A 在 B 的左边还是右边」这类问题经常出错。
- 伪造的图片看不穿。很难判断图片是不是 AI 生成的。
我的建议
多模态不是"图灵测试通过啦"这么玄乎。它就是一个新工具——和 grep、awk、curl 一样,知道它能做什么、不能做什么,你就知道什么时候掏出来用。
当前最稳的三个场景:OCR、代码截图转文本、照片场景描述。先吃透这三个,够用了。
下一篇我把自己在用的封面图生成流程全公开——从 Prompt 到成品,每一步。