DeepSeek Harness Hub
← 返回列表

离线手写公式输入xiaxi626/dsh-math-input

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

手写或截图识别公式,离线转 LaTeX 并渲染

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/1 · 已提供中文文档

dsh-math-input 是一个 DeepSeek Harness 插件,提供零 token 消耗的离线数学输入能力。核心功能包括:手写笔迹识别(基于 ONNX 模型 + 束搜索)、LaTeX 自动修复与渲染(KaTeX)、以及手写画板 UI。所有推理在浏览器端完成,不依赖远程 API。

综合分
28.4
GitHub 分
28.4
用户评分
★ Stars
0
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add xiaxi626/dsh-math-input
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-settings@deepseek-ai/dsh-typert-protocol@deepseek-ai/schemastery
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-math-input

英文 |

一个零 token、完全离线的 DeepSeek Harness(DSH)数学输入插件。手写公式、从截图中 OCR 识别,或直接编辑 LaTeX——全部在你的浏览器中完成识别,无需 API key,零 token 成本。

为什么你需要它

DSH 的输入框是纯文本的。如果你想让模型对某个公式进行推理,就得手动输入 LaTeX——既慢又容易出错。这个插件增加了三种输入方式以及行内渲染:

| 输入方式 | 最适合 | 引擎 |
|---|---|---|
| 手写 | 有触控笔 / 鼠标,想快速写下一个公式 | CoMER 神经网络(ONNX Runtime Web) |
| 截图 OCR | 已经有公式图片(PDF 截图等) | 同一引擎,图像转张量识别 |
| LaTeX 编辑器 | 懂 LaTeX 语法,想要一个符号面板 | 无需识别,直接输入 |
| 行内渲染 | 在输入框中输入 \[ ... \],自动渲染 | KaTeX |

所有识别都通过 ONNX Runtime Web(WASM / WebGPU)运行。模型大小为 7.2 MB,下载一次后缓存在 IndexedDB 中。该插件从不调用 ctx.llm——你的 token 账单始终为零。

安装

前置条件

- DeepSeek Harness >= 0.1.1-rc.2
- Node.js >= 20.0.0
- Chrome 或 Edge(用于支持 WebGPU 和 SharedArrayBuffer)

安装插件

从 GitHub 安装
dsh plugin --profile web add github:/dsh-math-input

没有全局 dsh CLI 时
npx @deepseek-ai/dsh plugin --profile web add dsh-math-input

安装后重启 DSH profile(停止并重新运行 dsh web)。输入行左侧会出现一个“+”按钮——这说明安装成功了。

卸载

从 DSH profile 中移除
dsh plugin --profile web remove dsh-math-input

或者没有全局 CLI 时
npx @deepseek-ai/dsh plugin --profile web remove dsh-math-input

重启 DSH profile。“+”按钮和所有输入窗口都会被移除。

模型缓存(IndexedDB 数据库 math-handwrite-models)不会自动清除。如需手动清理,请前往浏览器 DevTools → Application → IndexedDB 并删除该数据库。

使用方法

点击输入行左侧的“+”按钮打开菜单:

1. 手写输入

1. 在菜单中点击 “手写输入”——会弹出一个画布模态框
2. 用鼠标、触摸或触控笔书写公式
3. 停笔约 1.5 秒(可在设置中配置)——引擎会自动识别
4. 结果会以 KaTeX 预览形式渲染;下方可编辑 LaTeX 源码
5. 点击 “确认并插入”——公式会以 \[ ... \] 形式进入输入框并就地渲染
6. 点击 “清除” 重新开始,点击 “撤销” 移除最后一笔

2. 截图 OCR

1. 在菜单中点击 “截图并识别”
2. 按 Ctrl+V 粘贴图片,或点击 “上传文件” 选择本地图片
3. 引擎会自动从图片中提取 LaTeX
4. 检查预览并点击 “确认并插入”
3. LaTeX 语法编辑器

1. 点击菜单中的 “LaTeX 语法编辑器” —— 输入行下方会展开一个停靠面板
2. 调色板提供希腊字母按钮(\alpha、\beta、\pi 等)和模板按钮(\frac{}{}、\sqrt{}、\sum_{}^{} 等)
3. 点击任意按钮,即可将对应的 LaTeX 代码插入编辑器
4. 右侧会实时渲染 KaTeX 预览
5. 点击 “插入” —— 公式会以 \[ ... \] 的形式进入编辑器

行内渲染

你在编辑器中输入(或粘贴)的任何 \[ ... \] 都会以公式形式行内渲染。例如,输入 \[x^2 + y^2 = r^2\] 会直接渲染该方程。

设置

打开 设置 → 数学输入 进行配置:

| 设置 | 说明 | 选项 |
|---|---|---|
| 识别模式 | 限制识别词汇范围 | auto(全部)、number(数字与运算符)、expression(数学表达式) |
| 束宽 | 质量与速度的权衡 | 1(最快)、2、3(最佳质量) |
| 执行提供程序 | ONNX 推理后端 | wasm(通用)、webgpu(需要 Chrome 113+,通常快 2–5 倍) |
| 笔画防抖 | 自动识别前的空闲时间 | 0.3 – 10 秒 |
| 界面语言 | 覆盖 UI 语言 | zh / en,留空则跟随 DSH 语言 |

设置会持久保存在 Host 端,并在页面重新加载后保留。

本地测试

无需推送到 GitHub 或发布到 npm —— 按照以下五个步骤即可在本地验证。

第 1 步:构建项目

在 dsh-math-input/ 目录中:

cd dsh-math-input
npm install
npm run build      # generates lib/ directory

若只想检查类型而不构建,请运行 npm run typecheck(仅 tsc,无输出)。

第 2 步:链接本地包

此插件同时包含 Host 入口和 Client 包(package.json 中的
dsh.client)。Client 是通过 node_modules 发现的,因此必须先链接该包 ——
仅靠 overlay 无法加载 UI。

Windows(Git Bash / MINGW):

PROJECT="$(cygpath -m ~/Downloads/dsh-math-input)"   # ← your path
npx @deepseek-ai/dsh plugin --profile web add "file:$PROJECT"

macOS / Linux:

PROJECT="$(pwd)"          # ← run from the repo root
npx @deepseek-ai/dsh plugin --profile web add "file:$PROJECT"

这会在该 profile 的 node_modules 中创建一个持久链接。代码
更改后,只需 npm run build 并重启 —— 无需重新安装。

第 3 步:启动 DSH

npx @deepseek-ai/dsh web --no-open

打开 http://127.0.0.1:3080。

不链接的仅 Host 测试:如果你只需要测试 Host 端代码
(设置、typert 清单)而不需要 Client UI,请改用 overlay 补丁。
详情请参阅本地测试指南。

第 4 步:验证功能

在 DSH Web UI 中,逐项检查:

1. 输入行左侧会出现一个 “+” 按钮
2. 点击 “+” 会打开一个包含三项的菜单:手写、截图、LaTeX 编辑器
3. 手写板:模态框渲染,画布接受指针绘制
4. 设置:设置 → 数学输入显示五个控件
5. 更改设置后,页面重新加载仍会保留
6. 在编辑器中输入 \[x^2\] —— 下方会渲染出一个 KaTeX 芯片
7. LaTeX 编辑器停靠栏:从菜单切换,调色板插入片段,插入会写入 \[...\]

步骤 5:代码更改后重新测试

修改代码后:

rebuild
npm run build

stop DSH (Ctrl+C), restart
npx @deepseek-ai/dsh web --no-open

注意事项与限制

- 模型下载:首次识别会触发约 7.2 MB 的下载(编码器 3.4 MB + 解码器 4.0 MB + 词表 4 KB);后续加载使用 IndexedDB 缓存。
- WebGPU 自动回退:当选择 webgpu 但浏览器不支持时(需要 Chrome 113+),引擎会自动回退到 wasm。
- SharedArrayBuffer:当存在 Cross-Origin-Opener-Policy: same-origin 和 Cross-Origin-Embedder-Policy: require-corp 响应头时,ONNX Runtime Web 使用多线程 WASM。若没有这些响应头,则回退到单线程——识别仍然可用,但速度较慢。
- 手写与印刷体:CoMER 模型是在 CROHME 手写数学表达式数据集上训练的,并针对手写进行了优化。对印刷公式的截图 OCR 可能表现不佳。
- 浏览器兼容性:需要支持 WebAssembly SIMD 的现代浏览器。推荐 Chrome / Edge;Firefox 基本可用;Safari 支持有限。
- 零 token 保证:该插件从不调用 ctx.llm——所有识别都在浏览器本地运行,零 API 成本。

开发

npm run typecheck   # tsc --noEmit (strict)
npm run lint        # ESLint 9
npm test            # node:test + tsx
npm run build       # tsdown + tsc → lib/

CI 在 Node 20 / 22 / 24 上运行:类型检查、代码检查、单元测试、构建,以及检查已提交的 lib/ 是否与全新构建一致。

文档

- 架构(英文) | 架构(中文)
- 识别引擎选择
- 本地测试指南
- 插件安装验证
- 贡献指南
- 更新日志

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(xiaxi626)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群