跳到主内容

picturereader

31Star4Fork0Issue0Watching

给纯文本 DeepSeek Harness 模型补全看图读文档能力:视觉孪生拿到原生缩略图,本地像素工具+三模式路由+可选外部视觉端点,图片字节可全程不出本机。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
MIT
分支
main
deepseek-harnessdsh-pluginimage-readingocrpixel-artvision

安装

命令web profile
$ dsh plugin --profile web add picturereader

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 jing-hy/picturereader:先查看仓库 https://github.com/jing-hy/picturereader 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

给 DeepSeek Harness 里的纯文本模型补全"看图"能力:视觉孪生让原生缩略图真的渲染出来,本地像素工具链把图片翻译成模型可读的文本证据,外部视觉端点按需调用,隐私模式下图片字节全程不出本机。

核心能力

  • 视觉孪生 adapter:把被勾选的文本模型声明为支持图片,模型选择器里出现"deepseek-v4-flash (视觉)"变体;粘贴图片触发原生缩略图,图片块被透明替换为本地像素分析文本(src/picturereader-vision.mjs:108-163)
  • 本地像素工具:image_scan(颜色/分区/纹理扫描)、image_sample(N×N 精确取样)、image_crop(按区域裁剪导出 PNG)、image_palette(主色+色相家族)、image_compare(两图/两区域像素 diff)
  • 多引擎 OCR:image_ocr 支持 windows(内置)、paddle(PaddleOCR,对发光/弯曲/游戏字更强)、rapid(RapidOCR,轻量快速)三套引擎,失败自动降级(src/tool.js / src/more-tools.js)
  • 统一入口 vision_analyze:按当前使用模式路由——隐私硬走本地、智能先本地判断再决定是否外呼、严谨模式会做多路证据交叉验证;附 low-information 拦截,空白/纯色图不外呼(src/vision-analyze.js / src/guard.js)
  • 批量与上下文:image_batch 给一堆图片做"自动扫描 + 类型判定 + 是否值得深入"评估;image_batch_ocr 自动全量 OCR 后按字符截断
  • 文档转图片:document_to_image 把 PDF / DOCX / PPTX / XLSX 逐页渲染为 PNG(dpi、max_pages 可配),供视觉孪生/工具链按页读
  • 可选外部 VLM 桥:模型按路由策略自行决定调用 sendVisionRequest,OpenAI 兼容端点 baseURL 自动补 /v1/chat/completions(src/vlm.js)
  • 隐私/智能/严谨三模式:设置卡顶部切换,运行时 src/runtime.js 拉快照、隐私模式硬门禁 isVlmConfigured()=false

技术实现

  • 语言: JavaScript(ESM,"type": "module")
  • 关键依赖: jpeg-js(纯 JS JPEG 解码)、pngjs(PNG 解码)、omggif(GIF 解码)、@deepseek-ai/dsh-settings + dsh-llm(宿主服务注入)、@deepseek-ai/schemastery(设置 schema 声明与运行时校验)
  • 架构模式: 单一 cordis bundle + 双半区 patch。host 侧 src/index.js 把命名空间写进 settings.yaml、用 Proxy 包裹被勾选 adapter 注册视觉孪生、按 ctx.inject 阶段依次就位(tools/llm/attachments/webServer/settings);client 侧 client.js 在 Web 设置页注册"图片阅读"卡片。cordis.patch.yml 只插入插件行,不动宿主代码
  • 入口文件: src/index.js(host 半区入口)、client.js(web 设置页入口,dsh.client.platform=web)

适用场景

DSH 里跑 DeepSeek 这类没有视觉编码器的纯文本模型,又经常处理截图、扫描件、UI 视觉稿、合同照片、跨页长 PPT;想让模型读到图里信息但又不想让原始字节全部外发。日常轻度读图用"智能模式"省成本,处理证件照、隐私材料切到"隐私模式"全程本地,审图/批量校对则切"严谨模式"做交叉验证。

前置依赖与兼容性

依赖最低版本说明
DSH0.1.0-rc.6+peerDependencies 声明 @deepseek-ai/dsh-settings ^0.1.0-rc.6、@deepseek-ai/dsh-llm ^0.1.0-rc.6
Node^22.19 或 >=24engines.node 字段
平台跨平台核心图片解码全用纯 JS 库,无原生模块;OCR/文档转图片依赖按需安装
原生模块无jpeg-js / pngjs / omggif 都是纯 JavaScript,无需 node-gyp
可选 Python venv选装想用 PaddleOCR / RapidOCR 跑 scripts/setup-ocr.mjs、setup-rapid.mjs;想转文档跑 scripts/setup-doc-venv.mjs

安装方式

dsh plugin --profile web add picturereader

配置项

配置类型说明默认值
使用模式(mode)枚举隐私 / 智能 / 严谨,决定是否允许外呼外部视觉端点smart
启用外部视觉 API(vlm_enabled)布尔勾选后才会在设置卡显示并允许调用外部视觉端点;未勾选一律走本地false
视觉 API Base URL(vlm_base)字符串OpenAI 兼容端点地址,空字符串=禁用外部 VLM空
视觉模型(vlm_model)字符串端点对应的视觉模型名gpt-4o-mini
视觉 API Key(vlm_key)密码字段role:'secret',只写不读、保存即覆盖、不回显空
Key 环境变量(vlm_key_env)字符串vlm_key 为空时回退读取此环境变量名空
视觉桥模型列表(vision_models)数组勾选哪些文本模型生成"(视觉)"变体;改动需重启 DSH[]
默认 OCR 引擎(ocr_engine)枚举windows / paddle / rapidwindows
OCR 语言(ocr_language)字符串BCP-47 标签,如 zh-Hans / en-US空
单图大小上限(max_image_bytes)数字字节数,超过则拒绝(默认 50 MB)52428800
扫描默认格子大小(scan_default_size)数字 8..64image_scan 默认 size 参数32
扫描色板(scan_palette)枚举auto / full / basic / grayauto
扫描模式(scan_mode)枚举auto / ascii / colorauto
多模态白名单(multimodal_models)字符串逗号分隔,在白名单内的模型直收图片不降级空
请求保护(request_guard)布尔流式请求最末一关降级 image block,避免 UNSUPPORTED_CONTENTtrue
文档渲染 DPI(doc_dpi)数字 72..300document_to_image 渲染分辨率150
文档最大页数(doc_max_pages)数字 1..500document_to_image 截断阈值50
批量探测前几张(batch_probe_first)数字image_batch 判断是否文字密集3
每张 OCR 截断字符(batch_ocr_limit_chars)数字image_batch 单图 OCR 输出字符上限800
外部视觉超时(vlm_timeout_ms)数字毫秒300000
外部视觉 max_tokens(vlm_max_tokens)数字端点输出 token 上限8192
图片桥导出目录(bridge_export_dir)字符串空=用系统临时目录空
调试日志(debug)布尔输出更详细的诊断日志false

常见问题

Q: 必须安装 Python 或 LibreOffice 才能用吗?

A: 不必须。Windows OCR 是内置引擎,开箱即用;想解锁 PaddleOCR、RapidOCR 才需要跑 scripts/setup-ocr.mjs / scripts/setup-rapid.mjs 建 Python venv;想用 document_to_image 转 PDF/Office 才需要装 LibreOffice 并跑 scripts/setup-doc-venv.mjs。

Q: 隐私模式真的不会调用外部 API 吗?怎么保证?

A: 隐私模式是 host 侧的硬门禁,不是模型承诺。src/runtime.js 的运行时配置在这个模式下会让 isVlmConfigured() 恒为 false,vision_analyze 入口强制把 include_vlm 改成 false,视觉孪生 stream 也只会导出本地证据文本。即便你在设置卡里填了 baseURL 和 vlm_key,图片字节也一样不会走外部端点。

Q: 用完想把插件卸载干净,需要做什么?

A: dsh plugin remove picturereader 即可。插件会向宿主持久化两个东西:导出的图片存在 ~/.dsh/picturereader-vision/images/、设置写进 ~/.dsh/settings.yaml 的 picturereader 段;彻底清理需手动删掉这两个位置。

Q: 视觉孪生勾选后没反应,怎么排查?

A: vision_models 列表的改动不会热加载,必须重启 DSH 桌面端才能生效。如果你当前的 tools.mode 是 code,插件照样能用,只是要写成 await tools.image_scan({...}) 调用而不是直呼工具名。

Q: WebP 图片传进去报错怎么办?

A: 报错是预期的,把文件先转成 PNG 或 JPEG 再传。src/core.js 明确把 .webp 列入 UNSUPPORTED_EXTENSIONS 并直接抛错,image_scan / image_ocr / image_batch / document_to_image 全都遵守同一规则。

Q: 配置文件里的 vlm_key 安全吗?

A: 字段声明 role:'secret',代码里只写不读、不会回显;想完全不让凭据进配置文件的话,把 Key 写在环境变量里,并通过 vlm_key_env 字段告诉插件变量名即可。

Q: 视觉孪生会影响所有 provider 的模型吗?

A: 不会。视觉孪生只对 vision_models 列表里勾选的那几个模型起作用,并通过 Proxy 把它们所属 provider 的 adapter 改成"孪生",未勾选的模型行为不变。

Q: 单张图最大能处理多大?

A: 工具层硬上限是 50 MB 字节、24,000,000 解码像素;不过 DSH 附件上传侧默认约 5 MB,超大图会在上传阶段被宿主拦截,可以先用 image_crop 切图或降低分辨率再传。

上手难度

进阶 — 需要在 DSH 设置卡里至少指定"使用模式"、可选地填视觉端点 / 启用视觉孪生;想用增强 OCR 还要跑 setup 脚本建 Python venv。日常看图用默认模式即可,进阶玩法在隐私 vs 外呼、视觉孪生生效条件上需要理解。

已知问题与限制

  • WebP 格式不支持:image_scan / image_ocr / image_batch / document_to_image 都拒绝 .webp 入口,需先转 PNG / JPEG(src/core.js:316)
  • DSH 附件上传单图约 5 MB:超大图片可能在宿主层被拦截(README.md:269-276)
  • 视觉孪生需手动重启 DSH:vision_models 列表改动不会热加载(README.md:218-222)
  • BMP 限制:16 位 BMP、RLE 压缩 BMP 均不支持(src/core.js:200-209)
  • 跨包兼容敏感:v3.0.5 修复了 scope.load() 缺失的场景;v3.0.6 修复了 jpeg-js/omggif/pngjs 在 plugin 包内未正确安装导致 core.js 顶层 import 失败(README.md:301-315)
  • dsh-file-drop 与视觉孪生冲突:若同 profile 同时启用,可能出现"拖入图片即注入文本"与"视觉孪生自动分析"双路注入,建议停用 dsh-file-drop(README.md:275)
  • 外部 VLM 桥需要联网:未配置 / 离线时会自动跳过并给提示,隐私模式恒不调用(README.md:276)
  • image_batch 输出字符截断:单图 OCR 文本按 batch_ocr_limit_chars(默认 800 字符)截断,超长文本会丢尾部(src/image-batch.js:175-264)

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/jing-hy/picturereader)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录