DeepSeek终于能看图了:V4 Flash Vision实测,1分钱9张图但有个大坑

等了快四个月,DeepSeek的API终于不是"瞎子"了。 8月21日下午,deepseek-v4-flash-vision-exp悄悄出现在API文档里,没有任何发布会,没有预热,就是文档页面多了一行。我第一时间拿到API Key开始跑测试,到现在折腾了大半天,说说实际体感。

先说结论:基础识图够用了,但别指望它数手指。真正的惊喜在Agent场景------搭配Harness看图改代码、看截图调UI,这条路算是通了。最大的坑是thinking模式,开着的话你会怀疑模型坏了。

那个让我浪费了20分钟的thinking模式

这个必须放在最前面说,因为太坑了。 拿到模型的第一反应,当然是开thinking模式试试。毕竟V4 Flash和V4 Pro都支持thinking effort分级(low/high/max),想着视觉+深度推理应该更强才对。 结果连续三次请求,completion token全是reasoning token,实际输出为零。模型想了半天,一个字没吐出来。

ini 复制代码
# 复现问题的调用方式
response = client.chat.completions.create(
    model="deepseek-v4-flash-vision-exp",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "描述这张图片的内容"},
                {"type": "image_url", "image_url": {"url": image_url}}
            ]
        }
    ],
    # 默认开启了thinking模式
)
# response.choices[0].message.content → ""(空字符串)
# response.usage.completion_tokens → 2001
# 其中 reasoning_tokens → 2001

2001个token全花在"想"上面了,实际输出0个。 解决办法很粗暴------关掉thinking:

ini 复制代码
response = client.chat.completions.create(
    model="deepseek-v4-flash-vision-exp",
    messages=[...],
    extra_body={"reasoning_effort": "none"}  # 关键参数
)

关掉之后,同一个测试从23秒缩短到7.9秒,输出完整且质量正常。 这已经是第二个复现这个问题的版本了。之前V4 Pro正式版发布时,thinking模式就出现过吃掉82%输出预算的情况。现在Flash Vision更夸张,直接100%吃光。

实操建议:在视觉任务中,请默认关闭thinking模式,或者把max_tokens设得足够大。 这条规则目前适用于所有DeepSeek视觉模型的调用场景。

1000张图1块1,这个价格意味着什么

算一笔账。 V4 Flash Vision Exp的定价和V4 Flash纯文本版完全一致。图片按尺寸折算成token后统一计费,没有多模态加价。一张图最多384个token------不管你的原图是500×500还是5000×5000,都会先缩放到800×800左右再计算token。 高峰时段(北京时间9:00-12:00、14:00-18:00),缓存未命中输入价3元/百万token。384个token就是0.001152元,约0.12分钱。1分钱能看大概9张图。低谷时段直接打五折,1分钱能看17张。 拉个竞品对比感受一下(竞品数据来自各模型官方定价页和TokenMix横评,8月21日查询):

模型 每张图token消耗 1000张图成本
Claude Sonnet 4.6 ~1334 ~29元
GPT-5.4 Vision ~765 ~13.8元
Gemini 3.1 Pro ~258 ~3.6元
V4 Flash Vision(高峰) 384 1.15元
V4 Flash Vision(低谷) 384 0.58元

同样是看1000张图,Claude收你29块,DeepSeek收你1块1。差了25倍。

这不是数字游戏,是产品设计上的根本差异。29块一张图你会纠结"这一步到底要不要让AI看图",1块1一张图你可以让Agent每跑一步都截个屏分析。做UI自动化测试的同学应该能理解这个区别------截图量大到一定程度,成本就是决定"做不做"的那条线。

但有个前提:384 token的天花板意味着分辨率上限就是800×800。看个大致的页面布局、识别图表趋势、读取报错截图里的关键信息,没问题。但如果你需要识别小字体、精细的UI细节,这个分辨率可能不够用。社区里已经有人在讨论这个问题了------800×800是1995年Super VGA级别的分辨率。

好在可以通过crop+zoom的方式绕过:给Agent一个截图工具,先整体看一遍,发现需要细节的地方再裁切放大单独看。V4 Flash本身支持Tool Calls,这个工作流是跑得通的。

基础识图:够用,但不惊艳

拿了几张图随便测了测。三位蜘蛛侠同框、《牛来》电影截图这种,识别都没什么问题,两三维就能给出答案。甚至给《牛来》截图让它用SVG+CSS重绘画面,核心元素都抓住了------虽然风格从"恐怖谷"变成了"萌系",但也不失为一种解读。 翻车的是数手指。信心满满地说是五根,实际只有四根。这个阶段的多模态模型基本都过不了这关,DeepSeek也不例外。

说实话,基础识图不是这个模型的主战场。官方强调的是Agent场景------在需要视觉理解的Benchmark上,V4 Flash Vision Exp相比纯文本V4 Flash"实现了大幅跃升","接近Opus 4.8"。 那我测个跟日常开发更相关的场景。

看截图写代码:这才是正确的打开方式

做了一张深色渐变背景的Landing Page设计稿------导航栏、大标题、代码区语法高亮、双按钮、三个feature卡片------截图喂给模型,要求直接输出可运行的HTML。 26秒后拿到了一份完整的响应式HTML页面。渐变背景色、导航栏布局、按钮样式、代码区语法高亮------全部精确匹配。它甚至自己加了hover动效和入场动画。 关掉thinking模式后只用了7.9秒。 这个能力对Agent来说意味着什么?你的Agent可以直接看网页截图理解结构,看设计稿生成代码,看报错界面定位问题------不再是纯文本的盲人摸象了。

极客公园做了一个更有意思的测试:给DeepSeek看了《牛来》两头牛面对面的截图,让它根据画面写一个跑酷小游戏。从看到图片到输出可玩的完整HTML游戏,36秒。游戏的实际品质另说,但"看图→理解→生成可交互代码"这个链路确实通了。

Harness同步适配,一行配置没写

另一个让我意外的点:DeepSeek Harness在视觉模型上线的同一天发了0.1.1版本,直接支持新模型。 之前用Harness跑Agent任务,上传图片会直接报MODEL_DOES_NOT_SUPPORT_IMAGES。因为V4 Flash和V4 Pro在模型目录里都被声明为纯文本模型。现在换成vision-exp就行,连适配器代码都不用改。

yaml 复制代码
# ~/.dsh/settings.yaml 中添加模型目录
llm-deepseek:
  models:
    - id: deepseek-v4-flash
      name: DeepSeek-V4-Flash
    - id: deepseek-v4-pro
      name: DeepSeek-V4-Pro
    - id: deepseek-v4-flash-vision-exp
      name: DeepSeek-V4-Flash-Vision-Exp
      description: DeepSeek 多模态视觉模型(Exp),上下文 1M
      contextWindow: 1000000
      maxTokens: 256000

不过如果你是自己搭的Harness实例,需要注意适配器层可能还有一道关:旧版适配器会显式拒绝图片内容,抛UNSUPPORTED_CONTENT错误。升级到0.1.1应该已经解决了这个问题。 配合视觉模型,Harness的/goal/plan命令现在可以直接接收图文输入。想象一下这个场景:你截个报错页面的图,丢给Harness说"把这个bug修了",它看着截图理解上下文,然后去改代码。这在前几天还是不可想象的------至少对DeepSeek生态来说。

API接入速查

如果你之前接过DeepSeek的文字API,改动量非常小。把model名换掉,content从纯字符串改成数组格式就行:

ini 复制代码
from openai import OpenAI
import base64

client = OpenAI(
    api_key="sk-xxx",
    base_url="https://api.deepseek.com"
)

# 方式一:本地文件用base64
with open("screenshot.png", "rb") as f:
    b64 = base64.b64encode(f.read()).decode("utf-8")

response = client.chat.completions.create(
    model="deepseek-v4-flash-vision-exp",  # 注意-exp后缀不能丢
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "这个页面有什么UI问题?"},
            {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{b64}"}}
        ]
    }],
    extra_body={"reasoning_effort": "none"}  # 视觉任务关掉thinking
)
print(response.choices[0].message.content)

三个注意点:

  1. 模型名别写错deepseek-v4-flash-vision-exp,连字符和-exp一个都不能少。写成deepseek-v4-flash-vision会报404。
  2. 图片只能放在user消息里:放system或assistant消息会报400。
  3. 图片格式:JPEG、PNG、GIF、WebP都支持,校验的是文件实际内容而不是后缀名。单个请求最多600张图,单张最大32MB(Files API可以到64MB)。

另外这次同步上线了Files API,免费。先上传图片拿到file_id,后续请求直接用ID引用,同一张图不用重复传输。对于Agent反复看同一张设计稿的场景,这个很实用。

局限性说清楚

说了不少优点,最后得泼点冷水。

分辨率上限:800×800是硬顶。精细的小字、密集的表格数据、高分辨率代码截图,可能看不清。目前只能通过crop+zoom的Agent工作流来缓解。

Exp后缀意味着实验版:模型名、行为、甚至API格式都可能变。别直接放到生产环境,先在自己的测试流程里跑跑看。DeepSeek之前V3.2也是先出Exp版,两个月后才升正式版。

thinking模式与视觉的组合还不稳定:100%吃光输出不是个例,是目前的默认行为。除非你有特殊需求且愿意设很大的max_tokens,否则视觉任务请关掉thinking。

纯识图能力不算顶尖:和一些专门做多模态的模型比,V4 Flash Vision的优势在价格和在Agent生态里的位置,而不是"看图说话"的绝对准确率。

我自己的判断是:DeepSeek这一步补的是Agent系统最基础的感知入口。让模型能"看到",是后续一切自动化工作流的前提。至于看得多清楚、多准,那是后面V4 Pro视觉版或者正式版本要解决的事。对于做Agent开发的来说,现在至少能跑起来了。

就写到这吧,后面Harness跑通了更复杂的视觉Agent任务再聊。

相关推荐
闲猫1 小时前
LangGraph / Capabilities / Stores
python·agent·langgraph
天涯明月19931 小时前
AI Agent应用深度研究报告
人工智能·大模型·agent
不爱运动的跑者2 小时前
AI Agent半夜集体罢工:一次模型配额耗尽的真实故障复盘
agent
星核0penstarry2 小时前
Copilot 用 GLM:自备密钥和官方内置,到底差在哪?
copilot·运维开发·ai编程·api聚合平台
武子康3 小时前
33B 音画模型塞进 Apple Silicon,h3.c 重写了哪些 Runtime 职责
人工智能·llm·agent
happyprince3 小时前
03-深刻观-CodeX哲学与升华(源码)
算法·ai编程
明月_清风3 小时前
vLLM 深度实战:2026 年生产级 LLM 推理引擎完全指南
前端·后端·ai编程
xiezhr3 小时前
期待了很久的DeepSeek多模态视觉模型终于上线了
ai·多模态·ai agent·deepseek·视觉模型·deepseek harness
染指11103 小时前
95.RAG-RAG应用平台-工作流(Agent)
人工智能·agent