📍 无忆研习社 › 开源解码 › DeepSeek 多模态视觉模型 V4-Flash-Vision-Exp 全面拆解:跑分、原理、API 接入与国内合规实操笔记

DeepSeek 多模态视觉模型 V4-Flash-Vision-Exp 全面拆解:跑分、原理、API 接入与国内合规实操笔记

摘要:DeepSeek悄悄补齐多模态拼图!2026年8月21日V4-Flash-Vision-Exp低调上线API:纯文本能力持平V4-Flash,视觉Agent能力直逼Claude Opus-4.8,价格却完全一致——单图最多384 token,2000×2000与5000×5000缩放后消耗相同,大图不再烧钱。配套免费Files API支持图片复用,兼容三大API格式,1M上下文、384K输出,还能与DeepSeek Harness联动。模型定位、跑分水分、计费细账、调用姿势、落地场景、合规红线,一文拆透。
字号 100%
行距 2.05
当前可见 60% 的内容
本文由 莫潇羽@无忆研习社(www.wuyi.wiki)撰写,转载请注明出处。

快速摘要

这次 DeepSeek 一声不响地把多模态那块拼图补上了。2026 年 8 月 21 日下午,DeepSeek-V4-Flash-Vision-Exp 悄悄上线 API 平台,纯文本能力和 V4-Flash 正式版持平,视觉 Agent 能力已经能贴着 Claude Opus-4.8 打,价格却和 V4-Flash 一样,甚至同步开放了免费的 Files API 用来复用图片。单张图最多消耗 384 个 token,2000×2000 和 5000×5000 缩放之后消耗其实一样多——这条几乎重写了很多人心里"大图=烧钱"的直觉。

这篇文章我不打算只搬跑分表。我会把这次更新拆成七件事讲清楚:模型定位、跑分怎么读才不被数字忽悠、图片如何被 token 化、三种调用格式与传图方式各自适合什么场景、和自家 DeepSeek Harness 的联动、能落地的应用场景,以及国内发布时绕不开的 AI 生成内容标识合规。想看完整拆解,往下翻。


一、DeepSeek 多模态终于登场:这块拼图为什么等了这么久

DeepSeek 这家公司做事的节奏很特别。它不像其它厂商喜欢在发布会上敲锣打鼓,而是喜欢在半夜或者傍晚把 API 文档悄悄改一行,等你早上起床刷 X、刷知乎才发现——梁子那边又更新了。这次的多模态视觉模型也是走的同一套路:没有预热、没有海报,8 月 21 日下午一条推文,DeepSeek-V4-Flash-Vision-Exp 就直接挂上了 API 平台。

我(莫潇羽@无忆研习社)之所以把这次更新单独写一篇长稿,是因为多模态这个词在 DeepSeek 的整条产品线里一直是个明显的洞。V3 时代到 V4 时代,代码、推理、Agent 能力一波一波往上爬,唯独视觉理解这一块,官方 API 一直没有公开产品。开发者只能拼命用 OCR 识别成文字,再把文字塞进 DeepSeek,再等模型吐结果——中间人肉搭桥搭得心累。

现在这道桥终于自己长起来了。

1.1 什么叫"多模态视觉理解模型"

先给不熟悉这个词的朋友补一下白话解释。

多模态(Multimodal)字面意思是"多种感官通道"。在大模型语境下,它指模型的输入不再限于文字,而是可以同时接收文字、图片、音频、视频等多种数据形式。视觉理解(Vision Understanding)则更聚焦一点,只覆盖图像这一种模态的输入。它比单纯的"图片分类"要重得多——模型不仅要认出"这是一只猫",还要能读图片里的字、分析图表、看懂 UI 布局、理解截图里的错误提示,甚至基于图片做多步推理。

举个例子。如果你把一张运行时报错的 IDE 截图丢给一个纯文本模型,它两眼一抹黑。你必须先把报错文字复制出来、再粘贴给模型。而多模态视觉理解模型可以直接看这张截图,告诉你哪一行是关键错误、可能是什么原因、建议怎么排查。这个"直接看图"的能力,是把 Agent 从"处理文字世界"推进到"处理屏幕世界"的关键一步。

1.2 为什么这次是"补上一块拼图"

DeepSeek 过去一年半的路径其实已经很清晰了。梁子(网友对创始人的昵称,本文一律使用这个称呼来指代 DeepSeek 团队的整体风格,避免暴露个人 IP)把资源基本都压在两件事上:一是把文本大模型的推理与代码能力做到极致,二是把 Agent 工程化的底子铺好。前者对应 V3、R1、V4 这些主线模型;后者对应今年 8 月 13 日随 V4 Pro 一起开源的 DeepSeek Harness——一个专门用来跑 Agent 任务的运行框架。

在这两条线上,视觉是一个明显的短板。因为如果你想让 Agent 帮你写前端、帮你操作电脑、帮你分析业务报表,"看屏幕"是一项躲不开的能力。之前的 V4-Flash 和 V4 Pro 都只会读文字,Agent 一遇到"帮我根据这张设计稿生成 React 页面"这样的任务,只能干瞪眼。

DeepSeek-V4-Flash-Vision-Exp 的上线,从这个视角看,其实不是一次孤立的模型发布,而是把 Agent 体系里最后一块基础能力补齐。这也是为什么梁子选了 Flash 版本来打头阵:Flash 是承担高频调用的性价比款,先让它长眼睛,等原型稳了再往 Pro 上迁,节奏最合理。

1.3 "实验性"三个字要认真读

官方给这次发布挂了一个显眼的后缀:Exp,全称 experimental。API 更新日志里也白纸黑字写着"这是一个实验性质的模型"。

在国产模型里,把 Exp 后缀挂出来的其实不多。它意味着几件事:

  • 可能会有 breaking change:接口、参数、行为都可能在下一次迭代时被改动,不建议直接上生产。
  • 没有单独技术报告:官方目前没有放开源权重,也没有像 V3、R1 那样发独立论文,能推理的架构细节非常有限。
  • 官方也在收集反馈:这个阶段更像一次"公开测试",梁子在等社区把不同场景的 Case 打出来,再决定往正式版怎么合流。

我的建议是:可以用它做原型、做内部工具、做非核心场景的验证,但如果你是 To B 的严肃业务,暂时先别把它写进合同 SLA。 这话我自己也一直提醒团队。

1.4 我自己拿到消息之后的第一反应

老实说,看到那条推文我脑子里冒出的第一句话不是"跑分怎么样",而是"价格怎么样"。

因为多模态模型历来是烧钱大户。图片按 token 计费的模式,一张高分辨率图动辄几千 token,多轮对话很快就把成本顶起来。之前很多国外的多模态 API,一张图单价折合人民币能到几分钱,一个多模态 Agent 跑一小时几百上千不是稀奇事。

结果我翻到定价页——图片计费价格和 V4-Flash 保持一致,单张图最多 384 tokens。384 是什么概念?相当于 200 多个汉字的成本。就算按高峰时段的输入价来算,单张图上限不到一分二厘钱。

梁子这次又把价格战往深水区带了一步。

二、V4-Flash-Vision-Exp 到底是个什么模型:产品维度拆解

聊完背景,我们进产品本身。要判断这个模型能不能用、值不值得接,得先搞清楚它的能力边界、输入输出规格、以及和现有 V4 家族的关系。

2.1 一句话定位

DeepSeek-V4-Flash-Vision-Exp 是在 V4-Flash 正式版基础上,为其增加了原生图像理解能力的实验版本。两者共用同一套模型结构与参数规模,纯文本任务表现基本对齐。区别只有一个——这个新版本能"看见"图片,而 V4-Flash 只能"读到"文字。

也就是说,如果你把老应用里的模型名 deepseek-v4-flash 换成 deepseek-v4-flash-vision-exp,文字任务的表现不会掉,同时你多得了一个"图片输入"的能力槽。这是我自己实测下来最直观的感受。

2.2 支持的输入形式

先看图片格式,官方目前放开了 4 种主流格式:

格式

后缀

常见来源

JPEG

.jpg / .jpeg

手机拍照、网页图、大多数壁纸

PNG

.png

截图、UI 稿、透明背景素材

GIF

.gif

动图、表情包(会按第一帧或整体处理)

WebP

.webp

现代网页图、Chrome 保存的图

之前有人问我"BMP、TIFF 能不能传"。答案是暂时不行,先在本地转成上面这四种再说。图片可以以 Base64 编码内嵌、外部 URL 引用、或者通过 Files API 上传后拿 file_id 引用 三种方式送进去。这三种传图方式我会在第五章详细拆开讲。

当前版本只支持图片,不支持视频与音频。 有些人把 GIF 当"迷你视频"来传,本质上模型还是按图像处理的,理解不到时间维度。如果业务真的需要视频理解,还得等下一版。

2.3 上下文窗口与输出上限

这是我最在意的两个数字。

  • 上下文窗口:官方标注最高 1,000,000 tokens(1M)。
  • 最大输出:384,000 tokens(384K)。

1M 上下文这个数字放在国内属于第一梯队水平。它意味着你可以塞一整个仓库的代码、几百页的 PDF 摘要、或者一大批图片文本混合的资料进去,让模型一次性理解。图片本身最多 384 token,所以理论上一次请求可以塞非常多张图——只不过官方另外给了一个"每次请求最多 600 张图片"的上限,以及总请求体大小的限制,具体规则我在第四章会一起讲。

输出 384K 更是夸张,写一部中长篇小说都够了。当然实际使用中你不会真的让它一次吐这么多,但这个天花板抬高意味着长篇报告、长代码文件、大批量数据填充都不用再拆分请求。

2.4 Agent 相关的关键能力

除了看图和长上下文,这个模型继承了 V4 家族所有的 Agent 相关能力:

  • Tool Calls:可以调用外部工具,配合插件生态完成多步骤任务。
  • JSON Output:输出格式可以强制约束成 JSON,方便下游代码解析。
  • 思考模式:可以显式打开推理链条,用更多的 token 换更高的准确率。
  • 上下文缓存:命中缓存的输入 token 打大折,长会话成本可控。
  • 原生 OpenAI Responses API、Anthropic Messages API 兼容:老代码基本不用改。

这些能力叠在一起,你就知道它不是拿来做"给图片写个描述"的传统 VLM,而是设计给 Agent 场景用的。梁子的思路很明确——先让模型能被 Agent 生态用起来,再谈别的。

2.5 和 V4-Flash 正式版的关系

一张表让你一眼看清:

维度

DeepSeek-V4-Flash(正式版)

DeepSeek-V4-Flash-Vision-Exp

上线时间

更早,已长期稳定运行

2026 年 8 月 21 日

版本状态

正式版(GA)

实验版(Experimental)

输入形式

仅文本

文本 + 图片

上下文窗口

1M

1M

最大输出

384K

384K

纯文本任务表现

基线

与基线持平

视觉理解

无

具备

定价

现有 V4-Flash 定价

与 V4-Flash 完全一致

是否开源权重

部分开源

暂未开源

从这张表能看出,Vision-Exp 走的是"平替升级"路线——你没有理由再单独接文本版了,直接上 Vision 版就是免费送你一个能看图的模型。唯一例外的场景是你对稳定性要求极高、非常怕实验版下线。这种情况老实继续用 V4-Flash 正式版就好,等 Vision 转正再迁移。

2.6 一个不太起眼但很重要的信号

我个人还留意到一个细节:这次官方在同一版更新里,一并把 Files API 免费开放了。Files API 允许你把一张图片上传一次、拿到一个 file_id,然后在多次请求里通过这个 id 反复引用,不用每次都重新传图片二进制。

单看这个 API 好像只是省点带宽,但如果你写过多模态 Agent 就会知道——一个长会话里,同一张背景图、同一张需求截图、同一张风格参考图,被反复引用是很常见的。以前每轮请求都要把 base64 传一次,带宽和请求体大小都会爆。Files API 一开,这个体验一下子就顺了。

梁子这次是模型 + 基础设施一起动,不是单纯挂个新模型完事。这也是我觉得它比看起来更重要的原因之一。

三、跑分怎么读:接近 Opus-4.8 的真相与水分

聊多模态模型不看跑分等于耍流氓,但只看跑分数字又非常容易被忽悠。这一章我把这次官方公布的所有基准分数摆一起,帮你看清楚哪些数字是硬实力、哪些数字带条件、哪些是"数字上好看,实际未必好用"。

3.1 官方公开的完整跑分表

先把数字摊在桌上。这是我根据官方 API 更新日志和 DataLearner 汇总的结果:

Benchmark

考察方向

V4-Flash-Vision-Exp

V4-Flash(纯文本)

Opus-4.8

Terminal Bench 2.1

终端环境多步任务

83.9

82.7

85.0

DeepSWE

真实软件工程长任务

59.3

54.4

58.0

NL2Repo

自然语言到仓库级代码

57.7

—

69.7

DSBench-Hard

数据科学困难任务

63.6

—

71.7

Toolathlon-Verified

工具调用综合

75.9

—

76.2

AutomationBench (Public)

自动化任务

25.7

25.1

27.2

ApexBench (Pass@1)

多模态综合 Agent

36.5

26.2

39.4

Agents' Last Exam

多模态 Agent 高难题

27.3

25.2

25.7

Chartography (p0.95)

专业图表理解

64.3

—

65.0

ZeroBench (Pass@5)

硬核视觉理解

35.0

—

34.0

注:Code Agent 类文本任务使用 DeepSeek Harness 极简模式测试,参数为 max effort、top-p=0.95、temperature=1.0;在 ApexBench 与 Agents' Last Exam 的对比中,纯文本的 V4-Flash 会直接忽略题目里的多模态元素,数字仅供理解模型迭代幅度用。

这张表信息量很大。我一条一条给你捋。

3.2 与 Opus-4.8 相比,赢了三项、平了三项、输了四项

按官方口径,Vision-Exp 一共在 10 个基准里和 Opus-4.8 掰手腕。它在 DeepSWE、Agents' Last Exam、ZeroBench 三项上分数更高,虽然幅度只有 1 到 2 分,但对于一个和 Opus-4.8 完全不同代际的实验版模型来说,能拿下三城已经很硬。

Toolathlon-Verified(75.9 vs 76.2)、Chartography(64.3 vs 65.0)、Terminal Bench 2.1(83.9 vs 85.0)三项,差距都在 1 分以内,可以视为"打平"。

真正被拉开的是 NL2Repo(57.7 vs 69.7,差 12 分)和 DSBench-Hard(63.6 vs 71.7,差 8 分)这两项,前者考察"从需求描述生成一个完整代码仓库"的能力,后者是数据科学里的硬题。这两项差距一定程度反映了 Flash 尺寸模型在需要长期规划、多步复杂推理的任务上,仍然被顶尖旗舰甩开一小段身位——这一点开发者接入时要有心理准备,别指望用 Flash 尺寸的模型去干 Pro 尺寸的活。

3.3 视觉能力的跃升到底有多大

这是这次发布最想秀肌肉的地方。看这张收窄表:

ApexBench (Pass@1)
  V4-Flash(纯文本)  26.2 分
  V4-Flash-Vision-Exp 36.5 分   ← 相比纯文本版跃升 10.3 分
  Opus-4.8            39.4 分   ← 仍领先,但差距被压缩到 2.9 分

Agents' Last Exam
  V4-Flash(纯文本)  25.2 分
  V4-Flash-Vision-Exp 27.3 分   ← 反超 Opus-4.8 的 25.7 分

ZeroBench (Pass@5)
  V4-Flash(纯文本)  未公布
  V4-Flash-Vision-Exp 35.0 分   ← 高出 Opus-4.8 的 34.0 分 1 分

看到这里你可能会疑惑:如果 V4-Flash 是纯文本模型,它是怎么在多模态题目上拿到 26 分的?

官方在脚注里说得很直白——"在 ApexBench 和 Agents' Last Exam 的评估中,纯文本模型 V4-Flash 会忽略题目中的多模态元素"。换句话说,那 26 分是 V4-Flash 硬着头皮闭着眼答文字线索得到的分,Vision-Exp 睁开眼加了图之后,直接把分数抬到了 36。这个 10 分的跃升,真正反映的就是"看见"这件事本身的价值。

所以官方那句"接近 Opus-4.8",主要指的其实是多模态相关的四个基准(ApexBench、Chartography、Agents' Last Exam、ZeroBench)。剩下六个偏文本能力的基准里,Vision-Exp 和 Opus-4.8 还是有明显差距。看跑分的时候一定要分场景看,别一句"接近 Opus"就把它捧成 Opus 平替——这个陷阱新手最容易踩。

3.4 极简模式 + max 档位是什么意思

官方脚注里还有一段小字:Code Agent 类文本任务用的是 DeepSeek Harness 极简模式 作为 Agent 框架,思考档位设成 max,采样参数固定为 temperature=1.0、top_p=0.95。

这几个词第一次接触会有点懵,我用白话拆一遍。

DeepSeek Harness 是 DeepSeek 自研的 Agent 运行框架,8 月 13 日随 V4 Pro 一起开源。它相当于给模型套了一层"外骨骼",让模型能按标准协议调用工具、维护对话状态、跑长任务。Harness 内置了标准、极简、代码、创造四种预设模式。

极简模式(Minimal)只给模型两个工具、写死提示词,规则最简单、变量最少。梁子选它跑基准是有讲究的——工具变量压到最小,跑出来的分数更能反映模型自身能力,而不是"工具设计得好不好"。但这也意味着你在自己项目里用 LangChain、AutoGen、CrewAI 这些框架时,跑出来的实际效果可能和官方分数不完全对齐。官方原话就是"其他框架下结果可能略有不同",属实是难得的透明。

max 档位是把思考强度拉到最大,允许模型消耗更多推理 token 去尝试。理论上分数会更好,但成本会更高、响应会更慢。生产环境里你不一定用得起 max,要根据业务对成本和延迟的容忍度自己权衡。

temperature=1.0 和 top_p=0.95 是常见的采样参数,表示"给模型更多随机性、允许它探索多种可能答案"。跑分场景多次采样求最好,效果不错;线上场景如果你希望稳定输出,通常会把 temperature 调低到 0.2 到 0.7 之间。

3.5 各个 benchmark 一句话简介

新手看基准名字容易头晕,我把这次涉及的几个陌生名字也一并解释一下:

  • Terminal Bench 2.1:让模型在终端环境里完成多步实操任务,考察它读懂命令行输出、编写 shell 命令、修 bug 的综合能力。
  • DeepSWE:真实开源仓库里的软件工程任务,模型需要读代码、定位问题、写 patch、跑测试。
  • NL2Repo:给一段自然语言需求描述,让模型从零生成一个完整的可运行仓库。
  • DSBench-Hard:数据科学场景的困难题,包括数据清洗、特征工程、建模、可视化等步骤。
  • Toolathlon-Verified:综合工具调用能力,模型需要在多个工具之间来回切换完成任务。
  • AutomationBench (Public):桌面/浏览器自动化任务的公开子集。
  • ApexBench:多模态 Agent 综合基准,题目中含图像、需要模型看图作答。
  • Agents' Last Exam:多模态高难度综合题,被戏称为"Agent 的高考"。
  • Chartography:专门测图表理解,如折线图、柱状图、饼图的数据抽取和分析。
  • ZeroBench:面向多模态大模型的高难度视觉基准,故意做成"当前模型全跪"的难度,用来给顶级模型留 headroom。

3.6 我怎么看这份跑分

我(莫潇羽@无忆研习社)个人的判断可以浓缩成三句话:

一是这份数据的信号价值大于绝对值——它告诉我们,DeepSeek 用一个 Flash 尺寸的实验版模型,在多模态维度上已经能和顶级旗舰打平甚至反超,说明底层视觉能力的训练是踏实的,接下来 Pro 版本可期。

二是别把"接近 Opus"当成生产宣传语。它接近的是特定几个多模态基准分数,其余方面尤其是复杂代码和长程规划,短板依然存在。

三是看基准别忘了看 harness 和采样参数。同一个模型,跑在不同 Agent 框架里、用不同参数,分数能差出 20 分以上。官方给出的是"上限",你实际能拿到多少,取决于你的调用姿势。

四、图片是怎么被算成 token 的:一张图到底多少钱

多模态模型的账不好算,很多人接完 API 半个月,账单出来才傻眼。这一章我把 V4-Flash-Vision-Exp 的图片计费逻辑掰得细一点,让你在动手前心里就有一本谱。

4.1 核心规则:图片先被 token 化,再按普通输入 token 计费

先立一个大前提:这个模型没有"按张图收费"的说法。所有图片进入模型前,会被一个"tokenizer"(分词器/视觉编码器的联合流程)转换成一定数量的 token,之后就和文字 token 混在一起,按你所在时段的输入价格计费。

单张图片消耗的 token 数量,由图片经过缩放后的最终像素决定,上限是 384 tokens。也就是说,不管你原图是 4K 还是 8K,最多也只会算 384 个 token 给你。这是一个"很平"的收费机制——不像国外某些模型按照 tile(图块)叠加算,越大越贵没上限。

4.2 图片会被自动缩放

模型不是拿到原图就直接算 token 的。它会先做一次"标准化缩放":

  • 原图偏小:可能会按等比例上采样,让像素总量落到一个合理区间。
  • 原图偏大:会按等比例下采样,让总像素落到大约 800×800 这个量级。

800×800 是一个近似的目标像素密度,不是精确等尺寸——具体到长宽比不同的图,DeepSeek 内部会按算法调整。这一步是为了把不同源头、不同分辨率的图归一化,方便后续 tokenizer 处理。

这就带来一个非常反直觉的现象:一张 2000×2000 的图和一张 5000×5000 的图,缩放之后消耗的 token 数量基本一致。大图不会烧钱、原图不会更贵。你不用为了省 token 提前手动压缩图片。

4.3 一张图到底多少钱:算一笔细账

先把 V4-Flash 现行的价格摆出来(注意:AI 大模型的定价变动非常快,下面是写稿时的近似行情,请以 DeepSeek 官方定价页面的实时数据为准):

计费维度

非高峰时段

高峰时段

输入(缓存未命中)

约 1.5 元 / 百万 tokens

约 3.0 元 / 百万 tokens

输入(缓存命中)

约 0.15 元 / 百万 tokens 量级

略高

输出

约 4.5 元 / 百万 tokens

约 9.0 元 / 百万 tokens

以一张 1920×1080 的图为例,缩放后大概会占用 369 tokens。按高峰时段的输入价(约 3 元/百万 tokens):

成本 = 369 × 3 / 1_000_000 元
     ≈ 0.001107 元
     ≈ 约 0.11 分钱

即便按单图 384 token 的封顶值算,一张图的输入成本也只有 0.001152 元,都不到一分二厘钱。

再放大一点看。假设你做一个日均 10 万次调用、每次带 1 张图的多模态 Agent 服务,一天光图片的输入成本是:

100000 × 384 × 3 / 1_000_000 ≈ 115.2 元

一个月大概 3500 元上下。加上文字部分和输出部分才是全部账单,但至少"图片带来的额外成本"不再是压死项目的稻草。这个价格结构真的比很多国内外多模态 API 都要友好。

4.4 官方还提供了一个 token 计算器

如果你想在动手前对不同尺寸的图心里有个数,DeepSeek 官方在 API 文档里给了一个图片 token 用量估算器。你把图片尺寸输入进去,它会告诉你这张图会被算成多少 token。也可以在自己本地按官方给的近似公式做一遍估算,方便你写成本预警脚本。

4.5 其它容易被忽略的限额

除了单图 token 上限,官方还给出了一堆"防炸参数",我整理成一张速查表:

限额项

具体数字

说明

外部图片 URL 最大长度

8,192 字符

太长的签名 URL 需要考虑短链

单个 HTTP 请求体最大

48 MiB

Base64 请求最容易超这个上限

单张 Base64 或 URL 图片

32 MiB

超出请先压缩或走 Files API

Files API 单文件最大

64 MiB

上传管道更宽松

单次请求图片数量

最多 600 张

批量处理场景可利用

单次请求图片总大小(不用 file_id)

64 MiB

直接内联传图时的天花板

单次请求图片总大小(含 file_id)

200 MiB

走 Files API 可以放大三倍多

图片单边尺寸

通常 ≤ 8,192 像素

超过会拒收

图片单边尺寸(图片 ≥ 15 张时)

≤ 4,096 像素

批量场景更严格

这些限额是很多新手栽跟头的地方。尤其是 Base64 内联传图,加上编码本身有 33% 左右的膨胀,一张原本 20MB 的高清图 Base64 之后就快 27MB 了,几张一起传立刻打爆 48MB 请求体上限。我的建议是:超过 5MB 的图,一律走 Files API。这也是下一章要展开讲的。

4.6 detail 参数:你可以自己选精度

官方还给了一个 detail 参数,用来控制图像细节的解析粒度:

  • low:把图片 resize 到 512×512 处理,token 消耗最省,适合不需要精细视觉细节的场景(比如只是识别整体布局、大致内容)。
  • high 或 original:保留更高分辨率的图,模型能看到更多细节,token 消耗更接近上限 384。

注意"保留原图"其实并不是完全不做处理——模型真正读图前,还是会按前述的 800×800 目标做一次缩放。所以 high 和 original 只是让你不主动降精度,不代表原图会按原始像素完整输入模型。

这个参数是个很实用的省钱开关。我的做法是:非视觉密集型任务(比如让模型看一张 dashboard 截图判断"上面有几个卡片")用 low;视觉密集型任务(比如让它读一张图表的具体数据点)用 high。批量场景配合 low 再走 Files API 复用,成本能压得非常低。

五、三种 API 调用格式与三种传图方式:接入姿势全览

模型再强也要能接进去才算数。这一章我把 V4-Flash-Vision-Exp 的三种调用格式、三种传图方式全部拆开,用伪代码演示每一种的写法和适用场景。注意下面所有伪代码都做了通用化处理,去掉了 API key 硬编码和平台特有的封装,请以官方 SDK 和文档为准。

5.1 三种调用格式,你可以按老代码"平替"

官方直接给足了兼容性:

格式

兼容对象

迁移成本

Chat Completions

OpenAI 老风格

最低,改 base_url 和模型名即可

Anthropic Messages

Claude 风格

低,原本用 Claude 的项目可平迁

Responses API

OpenAI 新风格

低,跟着 OpenAI 官方演进方向走

这三种格式在 OpenAI、Anthropic 生态里已经很常见,梁子等于把 DeepSeek 做成了一个"多协议兼容底座"。这意味着你原本用 GPT 家族或 Claude 家族的代码,理论上只要改两行就能直接跑起来跑 DeepSeek,几乎没有迁移成本。

5.2 三种传图方式,各有各的适用场景

再来是传图方式,同样是三选一:

  • Base64 内联:把图片二进制编成 Base64 字符串,直接塞进请求体。适合图片小、一次性使用、对延迟不敏感的场景。
  • 外部 URL 引用:给模型一个可公开访问的图片链接(比如 CDN URL、公开的 OSS 链接),模型自己去拉。适合图片已经在你的对象存储里、有公网可达链接的场景。
  • Files API 上传后引用:先把图片上传到 DeepSeek 平台拿到 file_id,之后在请求里用 id 引用。适合同一张图会被反复引用、图片较大、多轮对话的场景。

Files API 本身是免费的,只有实际推理请求按 token 计费。这个设计对多轮多模态 Agent 特别友好——一张背景图上传一次,之后几十轮对话都不用再传字节流。

5.3 Chat Completions + Base64 内联的伪代码

这是最经典的写法,适合入门:

# 伪代码:Chat Completions 格式 + Base64 内联传图
# 请自行安装并替换为对应 SDK

import base64
from openai import OpenAI

client = OpenAI(
    api_key="<你的-DEEPSEEK-API-KEY>",
    base_url="https://api.deepseek.com/v1",
)

# 1. 读本地图片并做 Base64
with open("screenshot.png", "rb") as f:
    image_b64 = base64.b64encode(f.read()).decode("utf-8")

# 2. 发起对话请求
resp = client.chat.completions.create(
    model="deepseek-v4-flash-vision-exp",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "请描述截图里的关键 UI 元素与可能存在的问题"},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/png;base64,{image_b64}",
                        "detail": "high",   # low / high / original
                    },
                },
            ],
        }
    ],
    temperature=0.3,
)

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

几个新手容易犯的错:

  • Base64 前面一定要带 data:image/png;base64, 前缀(或者对应格式的前缀),不然模型识别不出来是图。
  • detail 字段决定 token 消耗,非视觉密集任务写 low 能省不少。
  • 记得 Base64 传图受 32MiB 单图上限、48MiB 请求体上限约束,超了就换 Files API。

5.4 外部 URL 引用的伪代码

如果图片已经在你自己的 CDN 或者对象存储上:

# 伪代码:Chat Completions 格式 + 外部 URL 传图

resp = client.chat.completions.create(
    model="deepseek-v4-flash-vision-exp",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "分析这张日报截图,提炼三个核心趋势"},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://your-cdn.example.com/reports/2026-08-21/daily.png",
                        "detail": "high",
                    },
                },
            ],
        }
    ],
)

注意事项:

  • URL 必须公开可访问,不能是需要登录才看得到的私有链接。
  • URL 长度别超 8,192 字符,签名 URL 太长的话考虑用短链服务。
  • 强烈建议自己的 CDN 上给图片打上一个较长的缓存 TTL,避免模型每次都重新拉带宽。

5.5 Files API 上传 + file_id 引用的伪代码

Files API 是这次一起放出的一个大件,尤其适合多轮场景。使用流程分两步:

# 步骤 1:上传图片,拿到 file_id
uploaded = client.files.create(
    file=open("logo.png", "rb"),
    purpose="vision",  # 用途标记
)
file_id = uploaded.id
print("file_id:", file_id)

# 步骤 2:在后续请求里用 file_id 引用同一张图
resp = client.chat.completions.create(
    model="deepseek-v4-flash-vision-exp",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "基于这个 logo 生成三种海报文案思路"},
                {
                    "type": "image_url",
                    "image_url": {"file_id": file_id},
                },
            ],
        }
    ],
)

一旦拿到 file_id,在这个会话乃至以后的多个请求里都可以复用它。Files API 上传本身不收费,只有实际调用模型推理的部分按 token 计费——所以对"同一张图在多轮对话里反复被引用"的场景,走 Files API 是省带宽、省重复上传时间的最佳姿势。

5.6 Anthropic Messages 格式的最小示例

老 Claude 用户可以几乎零改动迁移过来:

# 伪代码:Anthropic Messages 格式

import base64, requests

DEEPSEEK_MSG_ENDPOINT = "https://api.deepseek.com/anthropic/v1/messages"
API_KEY = "<你的-DEEPSEEK-API-KEY>"

with open("chart.png", "rb") as f:
    image_b64 = base64.b64encode(f.read()).decode("utf-8")

body = {
    "model": "deepseek-v4-flash-vision-exp",
    "max_tokens": 2048,
    "messages": [
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "请读出这张图表里 Q2 到 Q4 的数据"},
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": "image/png",
                        "data": image_b64,
                    },
                },
            ],
        }
    ],
}

r = requests.post(
    DEEPSEEK_MSG_ENDPOINT,
    headers={
        "x-api-key": API_KEY,
        "anthropic-version": "2023-06-01",
        "content-type": "application/json",
    },
    json=body,
)
print(r.json())

这里的关键是 content 里的每个块用 type: "image" 而不是 type: "image_url",格式跟着 Anthropic 走。如果你的项目原本已经在跑 Claude,模型名换成 deepseek-v4-flash-vision-exp、endpoint 换成 DeepSeek 的 Anthropic 兼容地址,其余不用动。

5.7 主流 Agent 框架里怎么接

因为 V4-Flash-Vision-Exp 兼容 OpenAI 的 Chat Completions 格式,主流 Agent 框架接入几乎无痛:

  • LangChain:把 ChatOpenAI 的 model_name 换成 deepseek-v4-flash-vision-exp,openai_api_base 指向 DeepSeek endpoint。
  • AutoGen:同上,在 config_list 里换模型名和 base_url。
  • CrewAI:在 LLM 配置里替换 provider 和 model 即可。
  • LlamaIndex:OpenAI LLM 类替换 model 和 base_url。

多模态部分要注意一点:一些老版本 Agent 框架的消息结构还没适配"图文混合 content"这种数组形式,需要升级到最新版才能顺利传图。这个坑我踩过——升级前一直报 "invalid content format",升级后立刻通了。

5.8 一个"错峰"的小技巧

DeepSeek 的定价对高峰时段和非高峰时段是分档的。非高峰时段(一般是 UTC 深夜到早晨的时段,对应北京时间的白天和傍晚部分)价格是高峰时段的一半左右。

如果你做的是可以异步、批量处理的任务,比如离线分析、每日报表生成、大批量图片打标签,排到非高峰时段跑,成本能直接砍一半。

🔒
该内容仅对更高等级社区用户开放
请谨慎解锁时效性强且发布日期较早的文章
单篇解锁后若未显示全文请刷新页面
您当前:游客 · 可见 60% 内容 · 升级至 注册用户 可见 70%
👀
游客
可见 60%
✓ 当前
注册用户
注册用户
可见 70%
社区精英
社区精英
可见 100%
社区守护
社区守护
可见 100%
仅解锁本文,永久有效。如需PDF珍藏版,请联系站长获取。 当前单篇价格 ¥9.9
✏️ 发表评论

请先登录后发表评论

前往登录
📊 站点统计
今日发布0 篇
文章总数1107 篇
昨日发布1 篇
本月发布31 篇
建站时间456 天
🔍 搜索
站长微语

联系站长

QQ:2805463528
AIGC 技术社区
致力于解码 AI前沿技术 与经验分享
纯粹的技术应用社区

💡 欢迎您的建议与反馈,让社区变得更好

快速通道
联系站长
站长QQ二维码
AI交流群
AI交流群
仍在路上

那些寒夜里追赶过的方向

那些冷眼下没放弃的理想

一篇一篇写到现在

仍在路上

"不羁放纵爱自由"

—— 致敬 Beyond
持续创作中 莫潇羽 · 无忆研习社
▲