DeepSeek 视觉增强实战

DeepSeek 是目前非常流行的纯文本推理模型,擅长代码、数学和逻辑推理,但有一个明显的短板:它没有视觉能力。直接发图片给它,它看不到图片内容。

这篇文章记录我用 ds-vision-skill + 阿里云百炼 给 DeepSeek 补上”眼睛”的完整过程,包括原理、安装、配置、验证和使用,照着做就能复现。

为什么要给 DeepSeek 装”眼睛”

纯文本模型的输入和输出都只有文字,无法直接理解图片、截图、扫描件和 PDF。一个通用的解决思路是加一层”视觉前置层“:

  1. 检测到用户输入的是图片或文档时,把视觉任务交给专门的视觉模型(如 Qwen-VL、GLM-4V、Claude);
  2. 视觉模型把图片内容转换成文字或结构化 JSON;
  3. 把转换结果交给 DeepSeek 继续推理、总结和回答。

这样 DeepSeek 负责它最擅长的推理,视觉模型负责”看图”,各司其职,还能在视觉通道失败时自动降级到其他通道或本地 OCR,不会让整个流程中断。

方案:ds-vision-skill

ds-vision-skill 是一个开源 Codex Skill,把这个”视觉前置层”做成了即插即用的组件。它不替代主模型,而是负责任务识别、工具选择、结果整理

需求 路由
理解截图、图表、UI、照片或数学图片 视觉推理竞速池(GLM / Agnes)
从图片提取纯文字 Baidu OCR → Windows OCR
解析 PDF、论文、报告 MinerU
使用自己的模型或中转服务 custom-1 / custom-2 / custom-3
敏感内容本地处理 Ollama / LM Studio / llama.cpp

降级链:

1
2
3
图片理解: race(glm, glm-thinking, agnes-2.5-flash, agnes-2.0-flash) -> custom-1 -> custom-2 -> custom-3 -> local
OCR: baidu-ocr -> windows-ocr -> 视觉推理
文档解析: mineru flash -> mineru extract

所有工具在 -Json 模式下输出统一结构,方便主模型读取:

1
2
3
4
5
6
7
{
"task_type": "image_reasoning | document_parsing | ocr",
"tool_used": "实际使用的工具或模型",
"confidence": "high | medium | low",
"result": "识别、解析或理解后的内容",
"metadata": {}
}

安装

方式一(推荐):用 skill-installer 安装

1
python "$env:USERPROFILE\.codex\skills\.system\skill-installer\scripts\install-skill-from-github.py" --repo Sorwcyra/ds-vision-skill --path . --name ds-vision-skill

方式二:直接 git clone

1
git clone https://github.com/Sorwcyra/ds-vision-skill "$env:USERPROFILE\.codex\skills\ds-vision-skill"

安装后文件位于 ~/.codex/skills/ds-vision-skill/,重启 Codex 会话后技能即可生效。

配置视觉通道(阿里云百炼实战)

1. 注册并获取 API Key

登录阿里云百炼控制台,进入 API Key 管理页面创建 API Key。注意:不要把 key 明文发到聊天或提交到 git 仓库。

2. 选择视觉模型

本文使用的模型是 qwen3.5-omni-plus-2026-03-15(Qwen 系列 omni 模型,支持图片理解)。可以在百炼控制台确认自己的账号已开通该模型。

3. 配置自定义槽位

百炼提供 OpenAI 兼容接口,可以直接作为 ds-vision-skill 的自定义槽位:

1
2
3
4
5
6
7
cd "$env:USERPROFILE\.codex\skills\ds-vision-skill\scripts"

.\setup.ps1 -SetCustom -Slot 1 `
-BaseUrl "https://dashscope.aliyuncs.com/compatible-mode/v1" `
-Key "<你的百炼API Key>" `
-Model "qwen3.5-omni-plus-2026-03-15" `
-Verify

-Verify 会生成一张测试图实际调用一次模型,验证通过才会保存。成功输出类似:

1
2
3
4
  verify channel=custom-1 exit=0
response: OK
Saved VISION_CUSTOM_1_BASE_URL=... VISION_CUSTOM_1_API_KEY=sk-w****ifUU VISION_CUSTOM_1_MODEL=qwen3.5-omni-plus-2026-03-15 (User scope)
Verification: OK

key 写入当前用户级环境变量,输出自动脱敏。

4. 免费通道(可选)

如果还想配置免费的 GLM / Agnes 通道作为竞速池(一个 key 各自启用两个通道):

1
2
.\setup.ps1 -SetKey -Channel glm -Key <GLM_API_KEY> -Verify
.\setup.ps1 -SetKey -Channel agnes-2.5-flash -Key <AGNES_API_KEY> -Verify

验证

1
2
.\setup.ps1 -Status      # 查看各通道配置状态
.\preflight.ps1 # 汇总系统、工具、通道、路由状态

验证出错时参考退出码:

退出码 含义
0 成功
2 缺 key 或认证失败
3 限流
4 网络或服务端错误
5 模型 ID 无效或参数错误

使用

配置完成后,最简单的方式就是在 Codex 对话里直接发图片,skill 会自动完成识别和路由。也可以手动调用统一入口:

1
.\vision-router.ps1 -Path <图片或PDF路径> -Prompt "请分析这个文件" -Intent reason -Json

常用参数:

  • -Intent auto|reason|ocr|document:默认 auto;纯文字提取用 ocr,PDF 解析用 document
  • -Complex:图表、数学、复杂 UI、代码截图等推理场景
  • -AccurateOcr:票据、扫描件、低清晰度文字
  • -NoCache:强制重新调用模型,跳过缓存

实测返回示例(用测试图调用百炼):

1
2
3
4
5
6
7
8
9
10
11
12
{
"task_type": "image_reasoning",
"tool_used": "custom-1:qwen3.5-omni-plus-2026-03-15",
"confidence": "high",
"result": "The image displays the text \"DS vision test 123\" on a plain white background.",
"metadata": {
"channel": "custom-1",
"model": "qwen3.5-omni-plus-2026-03-15",
"latency_ms": 1413,
"cached": false
}
}

注意事项

  1. Key 安全:API key 不要明文出现在聊天、截图或代码仓库里,配置完成后建议定期轮换。删除通道配置:.\setup.ps1 -RemoveKey -Channel <名称>

  2. 隐私:云端通道会把图片内容发送给对应服务商。处理合同、证件、医疗、财务等敏感内容时,优先使用 Windows OCR 或本地模型(Ollama)。

  3. 更新:本地安装是副本,不会自动跟随 GitHub 更新:

    1
    2
    .\check-update.ps1    # 检查新版本
    .\update-skill.ps1 # 更新到最新版

小结

给 DeepSeek 配视觉能力的本质,是加一个”视觉前置层”:用专门的视觉模型看图,把结果变成 DeepSeek 擅长的文本或 JSON。ds-vision-skill 把这一层做成了即插即用的 Skill,配合阿里云百炼的 OpenAI 兼容接口,几分钟就能跑通。希望这篇实战记录对你有帮助。