DSH Hub

jing-hy/picturereader

picturereader

UIVision33 GitHub stars· updated 2026-08-22

DSH plugin: pixel-to-text image reading for text-only models. image_scan/image_ocr/image_sample tools + image-reading skill (34-image trained methodology). Pure local, optional PaddleOCR.

Install

npx @deepseek-ai/dsh plugin --profile web add picturereader

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

picturereader DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/picturereader.svg)](https://dshhub.dev/plugins/picturereader)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from jing-hy/picturereader, cleaned of badges and images.

picturereader

v3.0.6 — 给纯文本模型(DeepSeek / text-only)的全能「看图 / 读文档」能力:粘贴即用、原生缩略图。 融合 视觉孪生 adapter(把任意文本模型原位包装成「支持图片」→ DSH 原生缩略图 + 图片块自动分析)、三模式路由本地像素级工具链(scan / OCR×3 引擎 / crop / palette / compare / batch)、文档转图片(pdf / word / excel / ppt)与可选外部 VLM 桥。一个插件全包,无需另装。


定位

DeepSeek 等纯文本模型没有视觉编码器,无法直接看图片;DSH 原生缩略图也需要模型被声明为「支持图片」才会渲染。

已支持外部视觉 API(OpenAI 兼容端点 / LM Studio / 云端 VLM),由 LLM 自行按需调用:配置好端点后,模型会在智能/严谨模式下自主判断"这张图值不值得外呼视觉模型",需要时用 vision_analyze 调外部 API 做语义理解,简单内容则本地像素/OCR 搞定——外部 API 是即插即用的增强能力,不是必须依赖

picturereader 解决两件事:

  1. 把「看图/读文档」翻译成纯文本模型能理解的结构化证据(像素级 huel/结构/材质分析 + OCR 实读 + 可选 VLM 语义描述),并沉淀为读图方法论 skill。
  2. 通过「视觉孪生 adapter」让纯文本模型在 DSH 里获得原生缩略图体验:勾选模型即生成「(视觉)」变体,粘贴图片显示原生缩略图、图片块进会话、并被自动分析成文本路径 + 本地证据再交给模型——模型拿到的永远是纯文本,不会触发 UNSUPPORTED_CONTENT

版本徽章与兼容性:已验证兼容 DeepSeek Harness EAC 4.2.0@deepseek-ai/dsh-client-ui-workspace rc.7。

🚀 后续将作为 DeepSeek Harness EAC 的内置视觉插件:本插件计划替换内置的 dsh-tool-vision,随 DSH EAC 桌面版直接捆绑发布,开箱即用(见上游 PR)。作为独立包发布的目的,是让非 EAC / 旧版用户也能通过 dsh plugin add picturereader 或 Git/npm 安装获得同等「看图 / 读文档」能力。

功能总览

① 视觉孪生 adapter(原生缩略图 + 自动分析)

  • Proxy 原位包装:对被勾选的模型所属 provider,用 Proxy 把其 adapter 包装成「孪生」并原位替换(registerTwinAdapters,卸载经 ctx.effect 还原),不重复注册。
  • listModels / resolveModel:对被勾选模型声明 inputModalities: ['text','image']、名称加「(视觉)」后缀 → DSH 认为它支持图片 → 原生缩略图渲染、图片块进会话、粘贴准入全部解锁。
  • stream 拦截:捕获请求里的 image block → 导出到 ~/.dsh/picturereader-vision/images/ → 替换成文本路径 + 本地工具链引导 → 转发给原始 adapter。pi-ai 收到的是纯文本,不会报 UNSUPPORTED_CONTENTopencode-go 等走 @earendil-works/pi-ai 的 provider 同样经此孪生获得原生缩略图能力。
  • 隐私模式下分析只走本地工具,绝不外发。

② 智能路由(隐私 / 智能 / 严谨 三模式)

这是 picturereader 的"大脑":统一在 routing.js + runtime.js 收敛「什么时候走外部 VLM、什么时候只用本地、要不要交叉验证」,供各工具 / 图片桥 / 视觉孪生 stream / vision_analyze 共享,保证整条图链都遵守同一套路由策略。

路由决策原理

每次看图,模型面对的问题其实是同一个:「这张图,值得花什么成本、用哪条路线读懂它?」picturereader 把答案预置成三种策略,模型据此自主决策,同时 host 侧做硬约束兜底:

图片进来 → 孪生 stream 拦截 / 工具被调用
        → 读入当前「模式」→ 得到该模式的路由策略
        → 模型 / 工具按策略选路线:
            本地像素分析(image_scan / image_sample)
            本地文字识别(image_ocr:windows / paddle / rapid)
            外部语义理解(vision_analyze include_vlm=true → VLM)
            交叉验证(多路证据对照)

核心决策函数 visionAnalyzeDefaults(mode) 定义各模式"默认的证据组合":

模式默认 include_scan默认 include_ocr默认 include_vlmallow_low_info
隐私(privacy)❌(硬禁)
智能(smart)❌(按需)✅(值得才调)
严谨(strict)

三种模式的路线策略

🕶 隐私模式(Privacy)——零外呼硬门禁

  • 绝不调用任何外部视觉端点,即使你在设置卡配了 API。
  • 约束是 host 侧强制:runtime.js 使 isVlmConfigured() 恒为 falsevision_analyze 强制 include_vlm=false,视觉孪生 stream 的降级文本也明确"只用本地工具"。
  • 模型只能用本地工具:image_scan / image_ocr / image_sample / image_crop / image_palette / image_compare。图片字节不出本机。
  • 适用:敏感图片(身份证、合同、私人截图)、离线、零外部流量审计场景。

⚡ 智能模式(Smart)——省轮数、省时间(默认)

  • 目标:先把成本压到最低,复杂内容才值得外呼
  • 决策流程:先 image_scan 快速看整体 → 自行判断:
    1. 图片以文字为主 → image_ocr 读文字即可,不必调 VLM
    2. 普通图表 / 界面 / 简单内容 → image_scan + image_sample 自己看就能说清,不必调 VLM
    3. 仅当内容复杂、需语义理解(照片、抽象画面)且配置了端点时,才 vision_analyze(include_vlm=true) 走外部 VLM。
  • 视觉孪生死活都会先把图片导出成本地路径,模型可随时本地深挖,不会被困在"必须外呼"的死路。

🎯 严谨模式(Strict)——交叉验证、细看细节

  • 目标:可靠性优先,不贪省。
  • 决策:先 image_scan 了解整体 → 必要时 image_ocr 读文字、image_sample 细看细节 → 对关键判断做交叉验证(把像素证据、OCR 证据、(可选)VLM 语义描述相互对照,不轻信单一来源)。
  • 允许使用外部 VLM(需配置),但强度更高、可追溯。
  • 适用:需要高准确率与可复现结论的场景(审图、校对、数据分析)。

Related plugins