🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

图文取字 yuehancn/dsh-tool-ocr

DeepSeek Harness
yuehancn33 天前有提交已提供中文文档扫描:含敏感能力

从图片和 PDF 中提取文字,自动识别扫描件并调用 OCR 引擎

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add yuehancn/dsh-tool-ocr
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · vision
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 33 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件
查看扫描证据(共 8 处,展示前 8 条)
  • 执行外部命令来自配置/变量
    lib/index.js:109
    child = spawn(command, args, {
  • 读取本地文件
    lib/index.js:238
    text = await readFile(textOutPath, "utf8");
  • 读取本地文件
    lib/index.js:381
    info = await stat(source);
  • 写入本地文件
    lib/index.js:407
    await mkdir(outputDir, { recursive: true });
  • 写入本地文件
    lib/index.js:427
    await mkdir(outputDir, { recursive: true });
  • 写入本地文件
    lib/index.js:441
    await mkdir(outputDir, { recursive: true });
  • 写入本地文件
    lib/index.js:443
    await writeFile(textPath, text, "utf8");
  • 写入本地文件
    lib/index.js:536
    await mkdir(outDir, { recursive: true });
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 图片与PDF提取文字
  • 识别扫描件
  • 调用OCR引擎

在 DeepSeek Harness 里从图片和 PDF 提取文字:读取原生数字文本层,或用你配置的任意引擎对扫描件做 OCR。

README

由 DeepSeek 最新模型翻译生成
dsh-tool-ocr 在 dsh 里直接读图取字 —— 把截图、扫描件、发票、合同 PDF 丢给智能体,它自己判断有没有文字层,没有就调你配置的 OCR 引擎,最后把正文交回来。 给 DeepSeek Harness 用的自建工具插件:图片 OCR + PDF 文本抽取。 Compatibility: built and tested against dsh 0.2.0-rc.2 (preview). The apply(ctx) plugin spec is stable; verify against your own dsh version if newer. 一行安装 dsh plugin --profile desktop add github:yuehancn/dsh-tool-ocr 支持的配置档:desktop(桌面版)/ web(Web 版)。装完重启 dsh 即可用。 它解决什么问题 智能体能读文本文件,但读不了图里的字。你发给它一张发票截图、一份扫描合同、一个手机拍的表格,它只能猜。
展开完整文档(README 剩余 1 节)
dsh-tool-ocr

在 dsh 里直接读图取字 —— 把截图、扫描件、发票、合同 PDF 丢给智能体,它自己判断有没有文字层,没有就调你配置的 OCR 引擎,最后把正文交回来。

给 DeepSeek Harness 用的自建工具插件:图片 OCR + PDF 文本抽取。

Compatibility: built and tested against dsh 0.2.0-rc.2 (preview).
The apply(ctx) plugin spec is stable; verify against your own dsh version if newer.

一行安装

dsh plugin --profile desktop add github:yuehancn/dsh-tool-ocr

支持的配置档:desktop(桌面版)/ web(Web 版)。装完重启 dsh 即可用。

它解决什么问题

智能体能读文本文件,但读不了图里的字。你发给它一张发票截图、一份扫描合同、一个手机拍的表格,它只能猜。这个插件补上这一段:

| 输入 | 插件怎么处理 |
| 带文字层的 PDF(电子合同、导出的报告) | 直接读文字层,不调 OCR,快且准 |
| 扫描件 / 图片型 PDF | 检测到文字层为空 → 自动栅格化 → 调 OCR 引擎 |
| 图片(截图、照片、表格) | 直接交给 OCR 引擎 |

关键点:(1)它会先判断是不是电子版,不会把电子 PDF 白跑一遍 OCR; (2)引擎是你自己配的,tesseract / PaddleOCR / 公司内部 API 客户端都能接。

两个工具

ocr_read

ocr_read(path, engine?, lang?, pages?, saveAs?)

- path —— 图片或 PDF 的绝对路径
- engine —— 用哪个 OCR 引擎;不填走默认
- lang —— 语言提示,如 chi_sim+eng
- pages —— PDF 页码范围,如 1-3 或 2,5
- saveAs —— 把抽出的文字另存到输出目录

返回:text(正文)+ kind(image / pdf)+ engine(实际用的引擎)
+ pages + textPath + note(走了哪条路径、有什么提醒)。

note 是有意暴露给你的:智能体能据此判断「这次结果可不可信」,而不是把一堆字照单全收。

ocr_status

报告本机哪些引擎真能用(逐个探 --version),以及当前后端是什么。
动手 OCR 之前先问一句,能避免白跑一次几秒到几十秒的任务。

配置引擎

默认 backend: native —— 只用 poppler 读 PDF 文字层,不需要装任何 OCR。

要读扫描件,改成 command 并在 engines 里加一个:

~/.dsh/profiles/<profile>/cordis.patch.yml
- id: tool-ocr
config:
backend: command
outputDir: C:/Users/you/Documents/ocr-output
engines:
- id: tesseract
label: Tesseract 中英混排 command: tesseract
args: ["{input}", "{output}", "-l", "chi_sim+eng"]
isDefault: true

参数占位符(在 args 里可用):

| 占位符 | 展开成 |
| {input} | 交给引擎的图片绝对路径 |
| {output} | 引擎应写入纯文本的绝对路径 |
| {lang} | 本次调用的 lang 参数(可为空) |

引擎把文字写进 {output} 或打到 stdout 都行 —— 两种都被识别。

再配一个引擎(比如表格走 PaddleOCR、正文走 tesseract)就是再加一个条目:

engines:
- id: tesseract
command: tesseract
args: ["{input}", "{output}", "-l", "chi_sim+eng"]
isDefault: true
- id: paddle
label: PaddleOCR(表格/版面更好) command: python
args: ["-m", "paddleocr", "--image_dir", "{input}", "--use_angle_cls", "true"]

依赖

插件本体只在 Node 里跑,不装任何 Python 包。外部依赖按需:

| 依赖 | 用途 | 不装会怎样 |
| pdftotext(poppler) | 读 PDF 文字层 | 电子 PDF 也读不了,note 会告诉你 |
| pdftoppm(poppler) | 把 PDF 页栅格化成图 | 扫描 PDF 无法 OCR |
| 任一 OCR 引擎 | 识别图里的字 | 图片输入直接报错,提示你配置 |

Windows 装 poppler:下载 poppler-windows 解压,把 bin 加进 PATH,或直接把 pdftotext.exe 的完整路径写进 config 的 command。
Windows 装 tesseract:用 UB-Mannheim 的安装包,记得勾中文语言包(chi_sim),否则 -l chi_sim 会报缺 traineddata。

安全说明

- 插件只读你给的那个文件,不扫目录、不上传、不联网。
- OCR 引擎是你配置的本地命令,插件用 spawn 直接调用,不经 shell 拼接 —— 路径里的空格、引号、中文都不会出问题。
- 抽取的文字写到 outputDir,仅此一处写盘。

跑测试

三个套件,85 条断言,全部针对真实的 dsh 运行时跑(不是 mock 掉 defineTool):
1) 把 dsh 的依赖链放进 node_modules(复用本机已装的 profile)
PROFILE=~/.dsh/profiles/desktop/node_modules/@deepseek-ai
mkdir -p node_modules/@deepseek-ai
cp -r "$PROFILE/." node_modules/@deepseek-ai/

2) 跑全部
node _test/run-all.mjs

| 套件 | 覆盖什么 |
| test-logic.mjs | 页码解析、类型判定、参数模板、引擎选择、Config 默认值 |
| test-integration.mjs | 插件加载、工具注册、开关生效、输出 schema、错误路径 |
| test-e2e.mjs | 真跑子进程:调一个模拟引擎,验证抽取、存盘、选引擎、失败透传 |

test-e2e.mjs 用 _test/fixtures/mock-ocr.mjs 冒充 tesseract,遵守同样的 {input} {output} 约定 —— 所以除了识别模型本身, spawn、参数替换、读结果、错误处理全都真跑过。

许可

MIT
预览分享卡片长什么样 ↓yuehancn/dsh-tool-ocr
分享 · DeepSeek Harness Hub
yuehancn/dsh-tool-ocr

从图片和 PDF 中提取文字,自动识别扫描件并调用 OCR 引擎

这是你的仓库?认领条目

回到顶部