deepseek-flash(当前对应 DeepSeek-V4.1-Flash)通过 OpenAI-compatible Chat Completions 接收图文消息;图片可用 Base64、公开 URL 或 Files API file_id 传入,选择方式时同时检查 48 MiB 请求体、单图大小、图片数量和图像 token 成本限制。旧名称 deepseek-v4-flash-vision-exp 仍被接受,但已退役,其请求由最新 Flash 模型处理。官方 Vision 指南
适合的任务:图片描述、截图文字识别、图表分析,以及需要同时提供文字指令和一张或多张图片的任务。
不适合的任务:把图片放入 system 或 assistant 消息;官方说明这会返回 400。对超出大小、数量或尺寸限制的图片,也应先压缩、拆分或改用 Files API。
适用的模型版本:DeepSeek-V4.1-Flash,API 模型名为 deepseek-flash。旧名称 deepseek-v4-flash-vision-exp 仍接受,但不是独立的旧模型能力入口。
适用的客户端、Agent 或 API:OpenAI-compatible Chat Completions;同样的三种图片来源也适用于 Responses API,Anthropic-compatible /messages 使用另一种 image/source 内容结构。
推荐的推理档位和参数:本文未给出视觉任务统一推理档位。按视觉细节选择 detail:细节不重要时用 low,需要保留原图时用 original;high 与 original 等价,auto 当前也等价于 original。
这是请求结构模板,不是官方完整提示词。将 <任务> 替换为要执行的动作,并把图片作为同一条 user 消息中的 image_url 或 file 块传入:
{
"model": "deepseek-flash",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "<任务>"},
{"type": "image_url", "image_url": {"url": "<图片 URL>", "detail": "auto"}}
]
}
]
}Base64 适合本地文件。编码结果放在 data: URL 中,并计入 48 MiB 请求体限制。
import base64
from openai import OpenAI
client = OpenAI(
api_key="<DeepSeek API Key>",
base_url="https://api.deepseek.com",
)
with open("image.jpg", "rb") as image_file:
encoded = base64.b64encode(image_file.read()).decode("utf-8")
response = client.chat.completions.create(
model="deepseek-flash",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What is in this image?"},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{encoded}",
"detail": "auto",
},
},
],
}
],
)
print(response.choices[0].message.content)公开 URL:将 image_url.url 设为可公开访问的 http(s) 链接。URL 最长 8192 个字符,下载必须在 60 秒内完成。
{"type": "image_url", "image_url": {"url": "https://example.com/image.jpg"}}Files API:先上传图片,再把返回的 file-api-... 放入 file 块。适合重复引用同一图片,或单图超过 32 MiB 的情况。
{"type": "file", "file_id": "file-api-xxxxxxxxxxxxxxxx"}file 块也支持 file_data 直接携带 Base64 data: URL,但 file_id 与 file_data 互斥。通过 Files API 的 file_id 引用时,detail 不生效。
detail 取值| 值 | 行为 |
|---|---|
low | 推理前缩放到 512×512;细节不重要时更快、更省。 |
high | 保留原图;为兼容性保留,等价于 original。 |
original | 保留原图。 |
auto | 自动选择;当前等价于 original。 |
Responses API 使用 input_image 内容块;Anthropic-compatible API 使用 image 内容块和 source 对象,字段形状不同,不能直接复制上面的 Chat Completions 块。
选择输入方式:本地小文件用 Base64,公开资源用 URL,需复用或超过 32 MiB 的图片用 Files API file_id。
将图片放在 role="user" 消息的 content 数组中,并加入明确的文字任务;不要放进 system 或 assistant 消息。
根据任务细节设置 detail。先用 low 处理缩略图、粗粒度分类等任务;需要小字或图表细节时使用 original。
多图请求逐张检查大小、数量和总大小;服务会独立计算每张图片的 token。
读取 response.choices[0].message.content,并在调用前记录图片来源、detail 和任务类型,便于排查超限或识别质量问题。
页面说明 deepseek-flash 接受图像与文本,并列出 JPEG、PNG、GIF、WebP 四种格式;格式按实际文件内容判断,不按文件名或声明的 MIME 类型判断。官方 Vision 指南
页面规定三种输入方式:Base64 data: URL、公开 http(s) URL、Files API file_id;三者在 OpenAI-compatible Chat Completions 中都使用 content 数组。
Base64 或 file_data 计入 48 MiB 请求体;Base64/公开 URL 单图上限为 32 MiB,Files API file_id 单图上限为 64 MiB。公开 URL 最长 8192 个字符,下载时限 60 秒。
单请求最多 600 张图片;不含 file_id 图片时总图片大小最多 64 MiB,包含 file_id 图片时最多 200 MiB。单边最大 8192 px;请求含 15 张或更多图片时,单边上限降为 4096 px。
图片会按尺寸转换为 token,并与文本 token 一起计费。推理前,小于约 544×544 总像素的图片会按比例放大;更大的图片会按比例缩小,使总像素约为 1300×1300。每张图片最多 1024 tokens;多图按相同规则逐张计算。
low 会先缩放至 512×512;high 与 original 等价,auto 当前等价于 original。file_id 图片忽略 detail。
图片仅支持出现在 user 消息;放入 system 或 assistant 消息会返回 400。
48 MiB 是请求体限制,不能简单等同于原始图片文件大小;Base64 编码会增加请求体体积。接近限制时,应优先改用 Files API。
“公开 URL”必须能被服务端访问;本地路径、需要登录的地址或下载超过 60 秒的地址不满足页面条件。
low 的 512×512 缩放可能丢失小字、细线和图表细节;original 保留输入图像,但图像仍会按页面所述尺寸规则预处理并计入 token。
Files API 只改变上传与引用方式,不改变图像格式、数量、总大小、尺寸和 user 消息限制;文件存储与上传配额需另行查看 Files API 限制页面。
页面没有给出视觉识别准确率、OCR 准确率或统一的视觉任务推理档位,不能把接口限制推断为模型效果保证。
2026-09-16 通过 Tabbit 浏览器访问 Vision,完整读取页面正文、代码块、限制表和限制说明;未使用搜索摘要或其他视觉资料。
用本地 JPEG 和上面的 Python 示例发起 stream 默认配置的图文请求,核对请求体中 model、content 数组、image_url 和 detail 字段;不要把真实 API key 写入日志。
分别替换为公开 URL 和 Files API file_id,确认三种输入结构;使用超过 URL 长度、单图大小、图片数量或图片尺寸上限的测试数据,记录服务端错误,不把未执行的结果写成已验证事实。
需要 Responses API 或 Anthropic-compatible API 时,按原页面对应的 input_image 或 image/source 结构重写内容块,不直接复用 Chat Completions JSON。
DeepSeek V4.1 Flash