Codex 用 DeepSeek 模型无法识图?一招接入千问 VL,让 AI 秒懂你的截图
某天你正在用 Codex,后端报了一长串异常,你懒得复制粘贴,直接截图甩给 AI。结果它回复:“我暂时看不到你发的图片内容——图片标签里没有可读取的路径。你能描述一下图片里是什么内容吗?你忍住摔键盘的冲动,老老实实打字描述。然后你又发了第二张、第三张截图,AI 直接开始"失忆"——上下文爆了,token 超限,前面的对话全白费。这不是你的问题,是模型的问题。DeepSeek-V4-Pro、Deep
截图发给 Codex,它回我"我看不到图片"——给 DeepSeek 装一双千问的眼睛
摘要:Codex + DeepSeek 模型没有识图能力——截图甩过去,AI 要么装傻让你"描述一下",要么 token 直接爆掉。本文记录从踩坑到解决的完整过程:为什么不用 GPT-4o、怎么用阿里云百炼的 Qwen3-VL-Flash 做识图代理、.env 配错路径 401 了三次才通的暗坑。附带完整的 Codex skill 配置方案。
📌 前言 / 问题场景
晚上 11 点,Spring Boot 启动报了一长串异常。你懒得逐行复制,直接 Win+Shift+S 截图,贴进 Codex:
“帮我看看这个报错。”
AI 秒回:
“我暂时看不到你发的图片内容——图片标签里没有可读取的路径。你能描述一下图片里是什么内容吗?”
你心想行吧,手动敲了几行关键报错。然后你又截了第二张——配置文件、第三张——依赖树。AI 突然开始胡言乱语,回复的内容是 10 分钟前聊过的。你一看:上下文爆了,token 超限。
3 张截图,8000 token 白扔,问题没解决,还搭进去一晚上。更气的是——你用的 DeepSeek-V4-Pro 本来就不认图,图片传进去只是占坑不干活。
这不是配置问题,是模型天生没长眼睛。
📋 环境说明
| 组件 | 版本/说明 |
|---|---|
| Codex CLI | open-source 版本 |
| 底层模型 | DeepSeek-V4-Pro / DeepSeek-V4-Flash |
| 模型 Vision 能力 | ❌ 无 |
| 识图方案 | claude-vision-skill(GitHub 开源,后面细说) |
| 识图模型 | 阿里云百炼 Qwen3-VL-Flash |
| 成本 | 新用户 100 万 token 免费,识一次图约 300-500 token |
🔍 问题复现
发第一张图时:
用户: [图片: error-log.png] 帮我看看这个报错 Codex: 我暂时看不到你发的图片内容——图片标签里没有可读取的路径。 你能描述一下图片里是什么内容吗?
发第 3 张图时:
Codex: [开始复读 10 分钟前的对话内容,完全忽略当前问题]
根因:DeepSeek 的 API 不处理 image_url 字段。图片以 base64 格式传进去了,但模型根本不解析——白白占着上下文窗口,还挤掉了真正有用的对话历史。
🧭 排查过程
尝试 1:换 GPT-4o ❌
第一反应——换个有 Vision 的模型不就完了?
GPT-4o 确实能看图。但很快发现三个问题:
- API Key 不通用,DeepSeek 的 Key 调不了 OpenAI
- 单独买 GPT-4o 额度,每月多一笔开销
- 最关键的是:我就是想用 DeepSeek 写代码,换模型等于换工具,本末倒置
排除结论:不能换主模型,得在"外部"解决识图。
尝试 2:自己写 Python 脚本调千问 API 🤔
思路很直接——千问 VL 模型有 OpenAI 兼容接口:
- Python 读图片 → base64
- POST 到阿里云 DashScope
- 拿到文字描述,粘贴回 Codex
正要动手,搜 GitHub 时发现已经有现成的——claude-vision-skill。虽然名字带 Claude,但本质就是个 OpenAI 兼容的识图脚本,和模型无关。
决定:直接用,不重复造轮子。把精力省下来解决怎么和 Codex 的 skill 机制集成。
最终方案:Codex Skill + Qwen3-VL-Flash ✅
核心思路:把识图做成 Codex 的一个 skill,每次用户发图时自动拦截 → 调千问 API → 把文字描述注入上下文。主模型(DeepSeek)完全感知不到图片的存在,它只看到一段文字描述。
🛠️ 解决方案
Step 1:获取阿里云百炼 API Key
打开 阿里云百炼控制台,创建 API Key。
新用户送 100 万 token,识一次图大概 300-500 token,日常使用几乎不花钱。
Step 2:安装 skill
ash git clone https://github.com/asuojun/claude-vision-skill.git ~/.codex/skills/claude-vision-skill
项目核心就一个 ision.js——读图 → base64 → 调 OpenAI 兼容 API → 返回文字描述。不绑定任何特定模型,细节可以看它的 README。
Step 3:配置 .env(这里踩了最大的坑)
在 skill 目录下创建 .env:
`env
~/.codex/skills/claude-vision-skill/.env
DASHSCOPE_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
VISION_MODEL=qwen3-vl-flash
`
⚠️ 暗坑:.env 放错路径,401 了三次
第一次我把 .env 放在了项目根目录 → 401。
第二次放在 ~/.codex/ 下 → 还是 401。
第三次才反应过来——vision.js 读的是自己同目录的 .env,也就是 skill 目录下。
javascript // vision.js 里的加载逻辑 try { require("dotenv").config({ path: path.resolve(__dirname, ".env") }); } catch {}
就这一行,折腾了十几分钟。README 没写清楚 .env 的具体路径要求。
为什么选 qwen3-vl-flash 而不是 qwen-vl-max?
- Flash 版响应快(< 2 秒),日常识图足够
- Max 版更准但慢,适合需要识别代码截图语法高亮细节的场景
- 日常排查截图 Flash 完全够用
Step 4:验证
配置完重启 Codex,发一张截图测试。正常流程:
用户发图 → skill 拦截 → vision.js 调千问 → 返回文字描述 → DeepSeek 基于描述回复
整个过程对用户透明——你只管发图,AI 自动识图。
🧠 原理分析
为什么这样设计?
`mermaid
sequenceDiagram
participant U as 你(用户)
participant C as Codex CLI
participant S as claude-vision-skill
participant Q as 千问 VL (DashScope)
participant D as DeepSeek 模型
U->>C: 发送截图
C->>S: 检测到图片 → 触发 skill
S->>S: vision.js 读图 → base64 编码
S->>Q: POST /chat/completions<br/>(image_url + prompt)
Q-->>S: "这是一段 Spring Boot 的异常日志…"
S-->>C: 文字描述注入上下文
C->>D: "用户发了一张图,内容是:…请帮他分析"
D-->>C: 基于文字描述回复
C-->>U: 输出结果
`
关键设计决策:
| 决策点 | 方案 A | 方案 B(采用) | 理由 |
|---|---|---|---|
| 识图谁来做 | 换 GPT-4o(主模型直接识图) | 千问 VL 做代理 | 不换主模型,继续用 DeepSeek 写代码 |
| 图片怎么传 | 图片 base64 直接进 DeepSeek 上下文 | 图片 → 文字描述后注入 | 图片不进主模型上下文,不爆 token |
| 脚本自己写还是用开源 | 手写 Python 调千问 | 用 claude-vision-skill | 省时间,专注 Codex skill 集成 |
这个模式可以复制
不只是识图——任何主模型不具备的能力(TTS 语音合成、视频理解、联网搜索),都可以用 skill + 外部 API 代理 的模式补上。
本质就是:主模型只管推理,外围 skill 负责"翻译"它理解不了的输入格式。
📝 总结
- DeepSeek 不识图不是 bug,是设计选择——它就没长眼睛,别折腾配置
- 别换模型,加代理——千问 VL 就看图、DeepSeek 就写代码,各干各的
- .env 放对路径——vision.js 读的是自己同目录下的 .env,不是项目根目录
- 新用户免费额度够用很久——100 万 token,按每次 500 token 算,能识 2000 张图
- 这个模式可以到处复用——skill + 外部 API = 给任何模型打补丁
📚 参考资料
- asuojun/claude-vision-skill — 开源识图 skill(核心:vision.js)
- 阿里云百炼控制台 — 获取 API Key
- DashScope API 文档 — 千问 VL 模型文档
© 本文为原创内容,转载请注明出处。
如果这篇踩坑记录帮你省了一晚上排查时间,欢迎点赞 👍、收藏 ⭐、关注 ➕,后续还会分享更多 Codex + AI Agent 的实战经验。
更多推荐



所有评论(0)