快速结论
少量本地图片可直接内联,多次复用可先上传取得 file_id。上传需要 purpose=user_data;可设置过期时间,未设置时文档描述为永久保留。识别效果和每次推理费用仍要单独核对。
- 官方 Vision 文档示例使用 deepseek-flash,支持 JPEG、PNG、GIF 和 WebP。
- Files API 通过 POST /files 上传图片,purpose 必须为 user_data,单文件上限 64 MiB。
- expires_after 两个字段需配套设置;文档允许 1 小时至 30 天,省略时永久保留。
- Chat Completions 用 type=file 与 file_id 引用上传结果;复用上传不等于后续推理不计费。
本次更新:10 月 10 日新增并核验官方来源,分别标明事件日期、可用范围及文档示例。
本篇按 2026 年 10 月 10 日的Vision与Files API官方文档整理。示例未调用付费模型,也未上传真实业务图片。
1. 先选择图片传递方式
| 场景 | 方式 | 要核对的事项 |
|---|---|---|
| 少量本地截图 | Base64 内联 | 编码后请求体大小 |
| 可公开访问的图片 | HTTP(S) URL | 链接可达性和有效期 |
| 同一图片反复使用 | 上传后 file_id | 文件所属凭据与过期时间 |
文档当前支持 JPEG、PNG、GIF、WebP,并按实际内容识别格式。仅修改扩展名不能把其他文件变成受支持图片;也不能从 Files API 的名称推断它已提供任意 PDF 或 Office 文档解析。
2. 上传时带上必要字段
向 https://api.deepseek.com/files 发起 multipart 上传,字段包括真实图片 file 与 purpose=user_data。单文件上限为 64 MiB。若设置生命周期,应同时提供 expires_after[anchor]=created_at 和 expires_after[seconds]。
文档允许生命周期为 1 小时至 30 天;省略两个过期字段时,文件永久保留。编辑建议是在任务设计时就明确保存期限,而非上传后忘记文件清单。
3. 保存真实 file_id,再进行引用
上传响应会返回实际 file-api-... ID。Chat Completions 的用户消息可采用如下内容片段:
[
{"type": "text", "text": "请读取截图的表头和可见数值;看不清时标明,不补造。"},
{"type": "file", "file_id": "替换为本次上传返回的真实 ID"}
]
这只是 content 片段,完整请求还需要模型名、消息角色和认证。不要把示例占位符作为真实 ID。若采用 Responses 格式,要按其 input_image 结构组织,不能混用两个接口的消息块。
4. 把传输复用与推理费用分开
上传一次可以减少重复传输,但模型再次分析图片仍会产生相应 token 用量。图片中的小字、压缩痕迹和分辨率也会影响可读性。先用有已知答案的样本检查表头、数字和单位,再扩展到批量处理。
遇到错误时依次检查真实文件格式、单文件与请求体限制、凭据归属及文件是否已过期。任务结束后,按既定流程核对服务上的文件记录和保留状态。本文没有给出未经实测的 OCR 准确率或成本节省比例。
参考资料
本文依据以下资料整理,版本与接口信息请以来源页面的现行说明为准。