ESC
AI 2 分钟阅读

DeepSeek发布V4 Flash视觉实验模型,支持图像理解与三种图像传入方式

DeepSeek推出deepseek-v4-flash-vision-exp视觉模型,支持通过base64内联、外链URL及Files API文件ID三种方式传入图像。内联图像受48MiB请求体限制,单图最多32MiB;Files API引用图片最大64MiB。图像按分辨率自动缩放后计费,单图token上限384个。

来源:Hacker News

将图像编码后以 data: URL 的形式直接嵌入请求中,这是本地文件最简单的选项。编码后的数据计入 48 MiB 的请求体限制(参见 Limits)。

`import base64 from openai import OpenAI

client = OpenAI(api_key="", base_url=“https://api.deepseek.com”)

with open(“image.jpg”, “rb”) as f: b64 = base64.b64encode(f.read()).decode(“utf-8”)

response = client.chat.completions.create( model=“deepseek-v4-flash-vision-exp”, messages=[ { “role”: “user”, “content”: [ {“type”: “text”, “text”: “What is in this image?”}, { “type”: “image_url”, “image_url”: {“url”: f"data:image/jpeg;base64,{b64}"}, }, ], } ], ) print(response.choices[0].message.content) `

curl https://api.deepseek.com/chat/completions \
 -H "Content-Type: application/json" \
 -H "Authorization: Bearer <DeepSeek API Key>" \
 -d '{
 "model": "deepseek-v4-flash-vision-exp",
 "messages": [
 {
 "role": "user",
 "content": [
 {"type": "text", "text": "What is in this image?"},
 {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,<BASE64_DATA>"}}
 ]
 }
 ]
 }'

2. 外部图像 URL

传入一个可公开访问的 http(s) 链接,模型会为你下载图像。URL 长度最多为 8192 个字符,图像文件大小最多为 32 MiB,且下载必须在 60 秒内完成。如果链接过长,请改用 base64 data URL 或 Files API。

response = client.chat.completions.create( model="deepseek-v4-flash-vision-exp", messages=[ { "role": "user", "content": [ {"type": "text", "text": "Describe this image."}, { "type": "image_url", "image_url": {"url": "https://example.com/image.jpg"}, }, ], } ], ) print(response.choices[0].message.content)

3. 引用通过 Files API 上传的文件

使用 Files API 上传一次图像,然后在请求中引用其 file_id。当你需要在多个请求中复用同一张图像,或图像导致请求体超过 48 MiB 内联限制时,这是最佳选择。与内联图像不同,通过 Files API file_id 引用的图像最大可为 64 MiB,并且不受每张图 32 MiB 的检查限制。

使用返回的 file_id(格式为 file-api-...)来构建 file 内容块:

response = client.chat.completions.create( model="deepseek-v4-flash-vision-exp", messages=[ { "role": "user", "content": [ {"type": "text", "text": "What is in this image?"}, {"type": "file", "file_id": "file-api-xxxxxxxxxxxxxxxx"}, ], } ], ) print(response.choices[0].message.content)

或者,file 块也可以通过 file_data 以 base64 形式内联携带图像,而不是使用 file_id(两者互斥):

{
 "type": "file",
 "file_data": "data:image/jpeg;base64,<BASE64_DATA>",
 "filename": "image.jpg"
}

细节级别

对于 image_url 输入,你可以可选地设置 detail 字段来控制图像的处理方式:

{
 "type": "image_url",
 "image_url": {"url": "https://example.com/image.jpg", "detail": "low"}
}

何时使用 Files API

内联图像(base64 或 file_data)会计入 48 MiB 的请求体大小限制。在以下情况考虑使用 Files API:

图像会根据其尺寸转换为 token,并与文本 token 一起计费。

在推理之前,每张图像都会自动调整大小:

因此,每张图像有 384 个 token 的上限:例如,2000×2000 的图像和 5000×5000 的图像在调整大小后消耗相同数量的 token。当请求包含多张图像时,每张图像在该规则下独立计数——多图像请求没有单独的计算方式。

要估算特定尺寸图像的 token 成本,请使用 Token & Token Usage 页面上的图像 token 计算器。

有关通过 Files API 上传文件的存储和上传配额,请参阅 Files API: Limits。

除了上述 OpenAI 兼容端点外,你还可以通过 Anthropic 兼容的 /messages 端点发送图像(base_url = https://api.deepseek.com/anthropic)。通用设置请参见 Anthropic API。