新闻详情

新闻详情

首页 / 资讯中心 / 详情

DeepSeek 不能看图怎么办?Claude Code 配 TaoToken 读图+读 PDF 完整方案

发布时间:2026/9/28 18:40:08来源:尧图网络
DeepSeek 不能看图怎么办?Claude Code 配 TaoToken 读图+读 PDF 完整方案
1. DeepSeek 读图读 PDF 的真实困境DeepSeek 是纯文本模型这件事在写代码、做推理时几乎无感但一旦你把它接进 Claude Code 当主力模型问题立刻暴露你丢一张原理图截图进去它返回的是一堆二进制乱码你让它读一份 300 页的芯片数据手册 PDF它连文件都打不开。这不是 DeepSeek 弱而是它的能力边界就在文本上——它没有视觉编码器也没有 PDF 解析层。我平时用 Claude Code 做嵌入式开发每天要面对两类文件芯片数据手册PDF动辄几百页和原理图/PCB 截图PNG/JPG。DeepSeek 在这两个场景下完全帮不上忙但它的代码分析和逻辑推理又确实好用换掉可惜。所以真正要解决的不是换模型而是给 DeepSeek 补一条视觉输入链路把图片和 PDF 在外面转成纯文本再喂给它。这套方案的核心思路一句话DeepSeek 不认识的格式在外面转成文字再给它。图片走视觉模型转文字文字型 PDF 走文本提取扫描件 PDF 走渲染成图再转文字。整条链路通过 TaoToken 统一 Key 和 API 通道接入不用在多个平台之间来回切换配置。下面从接入准备开始一步步把这条链路搭起来。2. TaoToken 前置准备统一 Key 与 API 通道TaoToken 在这里的角色是统一入口你不需要为每个模型单独申请 Key、单独记 Base URL、单独配环境变量。一个 Key 走通所有模型调用Claude Code 的 settings.json 里只写一份配置就行。对这套DeepSeek 主模型 视觉模型辅助的方案来说统一通道能省掉大量切换成本。先拿到 Key。打开官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册后在控制台创建 API Key。控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsole 。Key 创建后只显示一次复制保存好。API 端点统一用 https://taotoken.net/api 注意这个地址不加 UTM 参数直接作为 Base URL 填进配置。模型对话调试可以在 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodels 里先验证 Key 是否可用确认能正常返回再往下配。如果你后续要长期跑编码任务或 Agent 流程可以看 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-plan 。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdoc API Keys 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keys 。Claude Code 相关的 Anthropic 兼容配置参考 https://taotoken.net/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentClaudeCodeAnthropic 。注意Key 不要硬编码进脚本提交到 Git。统一放环境变量settings.json 里用$TAOTOKEN_API_KEY引用。3. Claude Code settings.json 可复制配置骨架Claude Code 的配置文件在~/.claude/settings.json。下面这份骨架把 TaoToken 通道、DeepSeek 主模型、视觉辅助脚本权限一次性配好你可以直接复制后改 Key。{ env: { TAOTOKEN_API_KEY: sk-你的Key填这里, TAOTOKEN_BASE_URL: https://taotoken.net/api, ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的Key填这里 }, permissions: { allow: [ Bash(node ~/.claude/tools/vision.js:*), Bash(node ~/.claude/tools/read-pdf.js:*), Bash(node ~/.claude/tools/render-pdf.mjs:*), WebFetch, WebSearch ] }, model: deepseek-chat }配置说明ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址Claude Code 会把请求发到这里再路由到对应模型。permissions.allow里放行三个脚本分别对应识图、读文字型 PDF、渲染扫描件 PDF。脚本统一放~/.claude/tools/目录方便 Claude Code 用绝对路径调用。装依赖只需要两个 npm 包npm install pdfjs-dist canvaspdfjs-dist是 Firefox 同款 PDF 引擎负责提取文本和渲染页面canvas提供 Node.js 端的 Canvas 实现把 PDF 页渲染成 PNG 用。识图脚本用原生fs和fetch零额外依赖。4. 读图与读 PDF 的完整脚本与验证4.1 识图脚本 vision.js图片转文字的核心是读文件 → 转 base64 → 调视觉模型 → 拿回文字描述。视觉模型走 TaoToken 通道和主模型共用同一个 Key。// ~/.claude/tools/vision.js const fs require(fs); function imageToBase64(filePath) { const data fs.readFileSync(filePath); const ext filePath.split(.).pop().toLowerCase(); const mime { jpg: jpeg, png: png, webp: webp }[ext] || jpeg; return data:image/${mime};base64,${data.toString(base64)}; } async function seeImage(imagePath, prompt 请详细描述这张图片的内容包括所有文字、元件标号和连线关系。) { const imageUrl imageToBase64(imagePath); const body JSON.stringify({ model: qwen-vl-plus, messages: [{ role: user, content: [ { type: image_url, image_url: { url: imageUrl } }, { type: text, text: prompt } ] }], max_tokens: 1024 }); const res await fetch(${process.env.TAOTOKEN_BASE_URL}/v1/chat/completions, { method: POST, headers: { Authorization: Bearer ${process.env.TAOTOKEN_API_KEY}, Content-Type: application/json }, body }); const data await res.json(); return data.choices[0].message.content; } const [,, img, q] process.argv; seeImage(img, q).then(console.log).catch(e console.error(识图失败:, e.message));调用方式node ~/.claude/tools/vision.js 原理图.png 这里面用的是什么芯片供电部分怎么接的4.2 文字型 PDF 提取脚本 read-pdf.js芯片数据手册、协议标准这类文档文字信息都在直接提取文本即可不需要走视觉模型。// ~/.claude/tools/read-pdf.js const fs require(fs); const { getDocument } require(pdfjs-dist/legacy/build/pdf.js); async function readPDF(filePath, startPage 1, endPage 10) { const data new Uint8Array(fs.readFileSync(filePath)); const doc await getDocument({ data }).promise; console.log(PDF 共 ${doc.numPages} 页读取 ${startPage}-${endPage} 页\n); for (let i startPage; i endPage; i) { const page await doc.getPage(i); const content await page.getTextContent(); const text content.items.map(it it.str).join( ); console.log( 第 ${i} 页 \n${text}\n); } } const [,, file, s, e] process.argv; readPDF(file, Number(s) || 1, Number(e) || 10).catch(e console.error(读取失败:, e.message));调用方式node ~/.claude/tools/read-pdf.js ADuCM431数据手册.pdf 120 1404.3 扫描件 PDF 渲染脚本 render-pdf.mjs原理图导出的 PDF、扫描版老文档文字很少、图形为主先渲染成 PNG 再走识图流程。// ~/.claude/tools/render-pdf.mjs import fs from fs; import { getDocument } from pdfjs-dist/legacy/build/pdf.js; import { createCanvas } from canvas; async function renderPDF(filePath, outDir) { const doc await getDocument({ url: filePath }).promise; if (!fs.existsSync(outDir)) fs.mkdirSync(outDir, { recursive: true }); for (let i 1; i doc.numPages; i) { const page await doc.getPage(i); const viewport page.getViewport({ scale: 2.0 }); const canvas createCanvas(viewport.width, viewport.height); const ctx canvas.getContext(2d); await page.render({ canvasContext: ctx, viewport }).promise; const buf canvas.toBuffer(image/png); fs.writeFileSync(${outDir}/page_${String(i).padStart(3, 0)}.png, buf); console.log(已渲染第 ${i} 页); } } const [,, file, out] process.argv; renderPDF(file, out || ./pdf-pages).catch(e console.error(渲染失败:, e.message));调用方式node ~/.claude/tools/render-pdf.mjs 原理图.pdf ./pages node ~/.claude/tools/vision.js ./pages/page_001.png 分析这页原理图的电源部分4.4 验证请求与成功结果配好后先做一次最小验证。在 Claude Code 里直接说帮我读一下 ~/docs/datasheet.pdf 的第 50 到 55 页告诉我这个芯片的 I2C 寄存器地址。Claude Code 会调用read-pdf.js返回类似 第 50 页 Register 0x00: Device ID ... 0x01: Control ...然后它基于提取的文本给出寄存器地址分析。识图验证同理丢一张原理图截图让它调vision.js返回中文描述后再做电路分析。两条链路都通了说明配置成功。5. 本篇常见错排查报错Cannot find module pdfjs-dist依赖没装到脚本能找到的目录。在~/.claude/tools/下执行npm init -y npm install pdfjs-dist canvas确保 node_modules 和脚本同级。识图返回 401 或 403Key 没生效。检查TAOTOKEN_API_KEY是否在 settings.json 的 env 里正确填写以及脚本里是否用了process.env.TAOTOKEN_API_KEY。Key 前后不要有空格。PDF 提取出来是空白大概率是扫描件文字层不存在。改用render-pdf.mjs渲染成 PNG 再走识图。判断方法用read-pdf.js读几页如果输出全是空格或乱码就是扫描件。渲染报错canvas相关canvas包在部分系统需要编译工具链。Linux 下先装libcairo2-dev libpango1.0-dev libjpeg-dev libgif-devmacOS 用brew install pkg-config cairo pango。Claude Code 不调用脚本检查permissions.allow里的路径是否和实际脚本路径一致。路径写错会导致权限不匹配Claude Code 会拒绝执行。图片太大导致请求超时base64 后体积膨胀约 33%。超过 5MB 的图先压缩或者用render-pdf.mjs的 scale 参数控制渲染尺寸scale 设 1.5 通常够用。6. 长期编码与 Agent 场景的接入建议这套方案跑通后日常开发基本不用再手动开 PDF 翻页。查寄存器地址直接让 Claude Code 读指定页码范围看原理图截图直接丢给它分析PCB 走线图渲染后让它判断布局是否合理。DeepSeek 负责代码和逻辑视觉模型负责看TaoToken 负责把两边串起来。如果你要长期跑编码任务或搭 Agent 流程建议走 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-plan 统一通道下模型切换和额度管理都更省心。接入细节和参数说明看文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdoc Key 管理在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keys 。Claude Code 的 Anthropic 兼容配置参考 https://taotoken.net/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentClaudeCodeAnthropic 。模型对话调试用 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodels 。一个实用技巧把vision.js和read-pdf.js的调用封装成 Claude Code 的自定义命令比如/see和/pdf这样在对话里直接敲命令就行不用每次写完整 node 路径。脚本里的 prompt 也可以按你的场景定制比如专门针对原理图优化成提取所有元件标号、封装类型和网络连接返回的结构化程度会更高。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【吃透C++】万字解析类和对象 2026/9/28 20:34:36

【吃透C++】万字解析类和对象

目录 类是什么? 内联函数 类的访问限定符 类的作用域 类的实例化 对象大小的计算 this指针是什么? this指针的特性 类的默认成员函数 1.构造函数 2.析构函数 3.拷贝构造函数 初始化列表 4.构造函数和拷贝构造函数的相似与不同 5.赋…

阅读更多 →
LPDDR5上电初始化与CA Training实战:从Power Ramp到时序收敛 2026/9/28 20:34:36

LPDDR5上电初始化与CA Training实战:从Power Ramp到时序收敛

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
秋招电控岗简历没回音?10个开源项目做深才有工程信号 2026/9/28 20:34:36

秋招电控岗简历没回音?10个开源项目做深才有工程信号

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
高分图像分类工程实践:从训练到部署的完整闭环 2026/9/28 20:34:36

高分图像分类工程实践:从训练到部署的完整闭环

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
8GB旧电脑杀疯了:一条命令跑大模型 2026/9/28 20:34:28

8GB旧电脑杀疯了:一条命令跑大模型

先上账单:电费,0.3元。模型下载费,0元。会员费,0元。 这是我用一台吃灰三年的旧笔记本,跑了三天本地大模型的全部成本。⌨️ 三天里它干了这些活:批量总结 47 份会议纪要、给我上周的记账流水做了分类、凌…

阅读更多 →
Ars Contexta开发者指南:Hooks实现原理与插件架构完整剖析 2026/9/28 20:34:28

Ars Contexta开发者指南:Hooks实现原理与插件架构完整剖析

Ars Contexta开发者指南:Hooks实现原理与插件架构完整剖析 【免费下载链接】arscontexta Claude Code plugin that generates individualized knowledge systems from conversation. You describe how you think and work, have a conversation and get a complete …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉