☰
DeepSeek 也能看图了!deepseek-eyes 配 TaoToken:给大模型装上眼睛的配置骨架
2026/9/27 13:08:11 网站建设 项目流程

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 的原始设计里,视觉部分走的是阿里云百炼 DashScope,DeepSeek 部分走 DeepSeek 官方接口。两套 Key、两套计费、两套环境变量,调试时很容易搞混。TaoToken 的价值在于提供一个统一的 API 入口,你只需要维护一个 Key,就能同时调用视觉模型和 DeepSeek 文本模型。

先明确几个地址,后面配置里会反复用到:

  • 官网入口:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
  • API 基址:https://taotoken.net/api
  • 模型对话页:https://taotoken.net/api/model-chat?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite
  • Coding Plan 页:https://taotoken.net/api/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite
  • 控制台:https://taotoken.net/api/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite
  • API Keys 管理:https://taotoken.net/api/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite
  • 接入文档:https://taotoken.net/api/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite
  • Claude Code 接入说明:https://taotoken.net/api/claude-code-anthropic?utm_source=taotoken_aicg_blog_end&utm_content=claude_code&utm_campaign=rewrite

操作顺序建议这样:先进控制台创建 API Key,然后在 API Keys 页面复制出来,接着按接入文档确认基址格式。Key 只在本地环境变量里出现,不要写进任何会提交到 Git 的文件。如果你打算长期在 Claude Code 里跑编码任务,Coding Plan 页有对应的套餐说明,比按量计费更适合高频调用。

注意:TaoToken 是合规的 API 聚合通道,配置时只填官方给出的基址,不要自行拼接或改写域名路径。

3. 可复制配置骨架:settings.json 与 config.toml

Claude Code 的配置分两层:一层是 Claude Code 自身的 settings.json,决定它调用哪个模型端点;另一层是 deepseek-eyes 技能内部的 config.toml,决定视觉模型走哪个通道。两层的 Key 可以统一成同一个 TaoToken Key。

3.1 settings.json 配置

Claude Code 的 settings.json 通常放在~/.claude/settings.json(macOS/Linux)或%USERPROFILE%\.claude\settings.json(Windows)。核心是让 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.3

api_key_env指向环境变量名,而不是把 Key 硬编码进文件。high_res = true对应高精度模式,处理小字和复杂图表时更稳。language = "zh"让视觉模型输出中文描述,DeepSeek 读起来更顺。

3.3 环境变量设置

macOS / Linux:

echo 'export TAOTOKEN_API_KEY="sk-你的TaoToken密钥"' >> ~/.bashrc source ~/.bashrc

Windows PowerShell:

[Environment]::SetEnvironmentVariable("TAOTOKEN_API_KEY", "sk-你的TaoToken密钥", "User")

设置完重开终端,用echo $TAOTOKEN_API_KEY(Windows 用$env:TAOTOKEN_API_KEY)确认能打印出来。这一步没做对,后面所有请求都会报 401。

4. 验证请求:一条最小图像请求确认模型能读图

配置写完不能只看文件,得发一条真实请求确认链路通。deepseek-eyes 的 eyes.py 支持直接命令行调用,先拿一张本地图片试。

4.1 准备测试图片

找一张带文字的截图,比如终端报错、网页表单、或者一张带标注的图表。放到当前目录,命名test.png。

4.2 直接调用 eyes.py

cd ~/.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": f"data:image/png;base64,{img_b64}"}} ] } ], "max_tokens": 2048 } resp = requests.post( f"{base_url}/v1/chat/completions", headers={"Authorization": f"Bearer {api_key}"}, json=payload, timeout=60 ) 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 页操作,接入细节以接入文档为准。配置这件事,第一次跑通之后,后面就是复制粘贴的功夫了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询