
1. 当 DeepSeek 遇上截图它为什么“看不见”你在 Claude Code 里贴了一张报错截图问 DeepSeek 这是什么问题它回你一句“我无法查看图片”。这不是它笨而是 DeepSeek 当前版本没有原生多模态输入通道——文字它读得飞快像素它一概收不到。做前端调试、看监控大盘、读设计稿标注、分析 PDF 截图里的表格这些活儿只要涉及“图”DeepSeek 就卡在门外。deepseek-eyes 解决的就是这一小段路它把图片先交给一个视觉模型转成结构化中文描述再把描述喂给 DeepSeek 去推理。DeepSeek 不需要真的“看”它读文字描述就够了。适合谁正在用 Claude Code 做日常开发、习惯用 Python 脚本调模型、又想让 DeepSeek 参与图像理解环节的开发者。整条链路里视觉模型负责“看”DeepSeek 负责“想”而 TaoToken 负责把 Key 和 API 通道统一收口省得你在多个控制台之间来回切换。我试过把这套骨架跑通最直观的感受是配置本身不复杂复杂的是“Key 放哪、请求发哪、报错怎么查”。下面按可复制的方式拆开讲。2. TaoToken 前置统一 Key 与 API 通道的接入位置deepseek-eyes 的原始设计里视觉部分走的是阿里云百炼 DashScopeDeepSeek 部分走 DeepSeek 官方接口。两套 Key、两套计费、两套环境变量调试时很容易搞混。TaoToken 的价值在于提供一个统一的 API 入口你只需要维护一个 Key就能同时调用视觉模型和 DeepSeek 文本模型。先明确几个地址后面配置里会反复用到官网入口https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentAPI 基址https://taotoken.net/api模型对话页https://taotoken.net/api/model-chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewriteCoding Plan 页https://taotoken.net/api/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite控制台https://taotoken.net/api/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewriteAPI Keys 管理https://taotoken.net/api/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite接入文档https://taotoken.net/api/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewriteClaude Code 接入说明https://taotoken.net/api/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaude_codeutm_campaignrewrite操作顺序建议这样先进控制台创建 API Key然后在 API Keys 页面复制出来接着按接入文档确认基址格式。Key 只在本地环境变量里出现不要写进任何会提交到 Git 的文件。如果你打算长期在 Claude Code 里跑编码任务Coding Plan 页有对应的套餐说明比按量计费更适合高频调用。注意TaoToken 是合规的 API 聚合通道配置时只填官方给出的基址不要自行拼接或改写域名路径。3. 可复制配置骨架settings.json 与 config.tomlClaude Code 的配置分两层一层是 Claude Code 自身的 settings.json决定它调用哪个模型端点另一层是 deepseek-eyes 技能内部的 config.toml决定视觉模型走哪个通道。两层的 Key 可以统一成同一个 TaoToken Key。3.1 settings.json 配置Claude Code 的 settings.json 通常放在~/.claude/settings.jsonmacOS/Linux或%USERPROFILE%\.claude\settings.jsonWindows。核心是让 Anthropic 兼容端点指向 TaoToken 的基址{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoToken密钥, ANTHROPIC_MODEL: deepseek-chat }, permissions: { allow: [ Bash(python:*), Read(~/.claude/skills/deepseek-eyes/*) ] } }这里ANTHROPIC_BASE_URL填 TaoToken 的 API 基址ANTHROPIC_API_KEY填你在控制台创建的 Key。ANTHROPIC_MODEL指定默认走 DeepSeek 文本模型这样 Claude Code 的对话主模型就是 DeepSeek而 deepseek-eyes 技能负责在需要时插入视觉描述。3.2 config.toml 配置deepseek-eyes 技能目录下放一个 config.toml用来声明视觉模型的通道和参数。路径是~/.claude/skills/deepseek-eyes/config.toml[api] base_url https://taotoken.net/api api_key_env TAOTOKEN_API_KEY timeout 60 [vision] model qwen3-vl-plus high_res true max_tokens 2048 language zh [deepseek] model deepseek-chat temperature 0.3api_key_env指向环境变量名而不是把 Key 硬编码进文件。high_res true对应高精度模式处理小字和复杂图表时更稳。language zh让视觉模型输出中文描述DeepSeek 读起来更顺。3.3 环境变量设置macOS / Linuxecho export TAOTOKEN_API_KEYsk-你的TaoToken密钥 ~/.bashrc source ~/.bashrcWindows PowerShell[Environment]::SetEnvironmentVariable(TAOTOKEN_API_KEY, sk-你的TaoToken密钥, User)设置完重开终端用echo $TAOTOKEN_API_KEYWindows 用$env:TAOTOKEN_API_KEY确认能打印出来。这一步没做对后面所有请求都会报 401。4. 验证请求一条最小图像请求确认模型能读图配置写完不能只看文件得发一条真实请求确认链路通。deepseek-eyes 的 eyes.py 支持直接命令行调用先拿一张本地图片试。4.1 准备测试图片找一张带文字的截图比如终端报错、网页表单、或者一张带标注的图表。放到当前目录命名test.png。4.2 直接调用 eyes.pycd ~/.claude/skills/deepseek-eyes python eyes.py --image ./test.png --question 这张图里写了什么有没有报错信息预期输出分两段第一段是视觉模型返回的中文描述包含整体场景、文字内容、UI 元素、异常细节第二段是 DeepSeek 基于描述给出的回答。如果第一段有内容、第二段也有内容说明视觉通道和文本通道都通了。4.3 用 Python 脚本验证如果你想在自己的项目里集成最小请求长这样import os import base64 import requests api_key os.environ[TAOTOKEN_API_KEY] base_url https://taotoken.net/api with open(test.png, rb) as f: img_b64 base64.b64encode(f.read()).decode() payload { model: qwen3-vl-plus, messages: [ { role: user, content: [ {type: text, text: 详细描述这张图包括所有可见文字。}, {type: image_url, image_url: {url: fdata:image/png;base64,{img_b64}}} ] } ], max_tokens: 2048 } resp requests.post( f{base_url}/v1/chat/completions, headers{Authorization: fBearer {api_key}}, jsonpayload, timeout60 ) print(resp.json()[choices][0][message][content])跑通后你会看到一段结构化的中文描述。把这段描述再发给 DeepSeek它就能回答关于图片的问题了。4.4 在 Claude Code 里验证回到 Claude Code直接拖一张图片进对话然后问“这张图里的报错是什么原因”。如果技能配置正确Claude Code 会自动调用 eyes.py你会在终端看到视觉描述的输出紧接着是 DeepSeek 的分析。这一步成功说明 settings.json 和 config.toml 的配合没问题。5. 本篇常见错排查配置过程中最容易卡在几个固定位置按下面顺序查。401 Unauthorized九成是 Key 没读到。先确认echo $TAOTOKEN_API_KEY有输出再确认 config.toml 里的api_key_env拼写和实际环境变量名一致。如果 Key 是在控制台刚创建的复制时注意别带空格。404 Not Found基址写错了。TaoToken 的 API 基址是https://taotoken.net/api请求路径是/v1/chat/completions。不要写成/api/v1/...之外的多余层级也不要在末尾多加斜杠。模型名不识别视觉模型用qwen3-vl-plus文本模型用deepseek-chat。如果你在 config.toml 里写了别的名字请求会返回模型不存在。接入文档里有完整的模型列表对照着填。图片读不到eyes.py 支持本地路径和 base64 两种输入。用本地路径时确认文件存在且可读用 base64 时确认编码没截断。大图建议先压缩到 2MB 以内避免超时。超时无响应视觉模型处理高精度大图时耗时较长config.toml 里timeout建议设 60 秒以上。如果网络环境不稳定先换一张小图测试确认是图片问题还是通道问题。Claude Code 不触发技能检查~/.claude/skills/deepseek-eyes/目录下是否有 SKILL.md 和 eyes.py 两个文件缺一个都不会被识别。settings.json 的 permissions 里要允许 Bash 调用 python。描述质量差把high_res设为 true或者换qwen3-vl-plus模型。如果只是快速预览可以切到 flash 版本但小字和复杂图表会丢细节。6. 把 Key 和通道收口之后剩下的是习惯问题整套骨架跑通之后你会发现真正省事的地方在于不用再记两套 Key、不用在两个控制台之间切换、不用为每个新项目重新配一遍环境变量。TaoToken 把视觉和文本两条通道收口到一个基址deepseek-eyes 把“看图”这件事封装成一个技能调用Claude Code 负责在对话里自动触发。如果你主要在做长期编码和 Agent 任务建议把 Coding Plan 页的套餐说明看一遍高频调用下比按量计费更可控。如果只是偶尔验证模型能力模型对话页可以直接试。Key 的管理和轮换在 API Keys 页操作接入细节以接入文档为准。配置这件事第一次跑通之后后面就是复制粘贴的功夫了。