DeepSeek 官方视觉 API 可以把图片和文字一起发给 deepseek-flash,让模型描述照片、读取截图文字或分析图表。当前官方模型表把 deepseek-v4-pro 的视觉输入列为不支持,因此这篇使用 Flash。下面以一张本地 JPEG 图片为输入,展示发送、读取和人工核对结果的完整路径。
准备图片与权限
DeepSeek 官方视觉指南列出 JPEG、PNG、GIF、WebP 支持格式,并说明格式按文件真实内容识别,改扩展名不等于转换格式。把一张你有权上传、内容容易人工核对的 JPEG 放在脚本旁,命名为 sample.jpg;不要把身份证、客户资料或不允许外传的图片拿来试。

官方文档对 Base64 或外部 URL 图片列出单图 32 MiB 上限,整条内联请求体限制 48 MiB。首次测试建议使用远小于上限的小图。官方模型与价格页显示 Flash 支持视觉输入;图片也会计入 token,用量以响应的 usage 为准。
发送本地图片
先在本机设置 DEEPSEEK_API_KEY、安装 openai Python 包,将下面代码保存为 deepseek_image.py。代码会检查文件是否存在且是否有 JPEG 文件头,再把图片编码为 data URL;这些检查不代替完整的图像解码验证。
import base64
import os
from pathlib import Path
from openai import OpenAI
key = os.environ.get("DEEPSEEK_API_KEY")
if not key:
raise RuntimeError("请先设置 DEEPSEEK_API_KEY")
path = Path("sample.jpg")
raw = path.read_bytes()
if not raw.startswith(bytes([0xFF, 0xD8, 0xFF])):
raise ValueError("sample.jpg 不是可识别的 JPEG 文件头")
if len(raw) > 8 * 1024 * 1024:
raise ValueError("示例仅接收小于等于 8 MiB 的测试图片")
data_url = "data:image/jpeg;base64," + base64.b64encode(raw).decode("ascii")
client = OpenAI(api_key=key, base_url="https://api.deepseek.com")
response = client.chat.completions.create(
model="deepseek-flash",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "列出图片中确定看得见的物体;不能确定的不要猜。"},
{"type": "image_url", "image_url": {"url": data_url}},
],
}],
extra_body={"thinking": {"type": "disabled"}},
)
print(response.choices[0].message.content)
print("usage:", response.usage)
怎样验收识图结果
运行 python deepseek_image.py 后,把回答与原图逐项对照:确实看得见的物体才算正确,漏掉或凭空添加都要记下。不要因为程序返回 200 就把描述当成可靠事实;截图文字和图表数字尤其需要回到原图人工核对。若回答为空或报 400,先确认模型名、消息中的 image_url 块、图片真实格式和大小。
官方 Chat Completions 参考说明图片内容块放在 user 消息中;放到 system 或 assistant 消息会报错。本文依据当前官方文档提供代码,没有访问你的图片或使用你的密钥实测,示例回答需要你在自己的图片上核对。
Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/30057.html