suanmingxing/dsh-ai-mistake-book

dsh-ai-mistake-book

AI 错题本:把扫描试卷整理成以知识点为索引的错题合集(dsh-plugin)

Uncategorizeddeepseek-harness

AI 错题本 · DSH 插件

把扫描试卷变成一本以知识点为索引的错题本,也能把手写笔记转录成可编辑的电子版 Markdown:投喂 PDF/图片 → 插件建批次并光栅化 → 模型在会话里读卷面/笔记 → 生成卡片或笔记草稿 → 你确认后归档进 library/,并自动重建索引。

不是"AI 帮你解题",而是"AI 帮你把卷面上已经存在的东西整理成可复习的结构"。

功能

  • 扫描件直读:PDF 自动光栅化(默认 400 dpi),切成整页概览 + 高清横带;看不清时按需索取原生分辨率重切
  • 只在错题上花力气:按你报的题号逐题提取,题干、作答、划改、页边演算、卷面标注、知识点、错因、难度
  • 手写笔记转电子版(/note):多页笔记逐页转录、可一次提交多页、页内可分块;保留标题/列表/表格结构,公式用 LaTeX 保存;草稿可在待归档页直接编辑
  • 绝不编造:读不准的内容写进"待人工确认",交给人核对
  • 笔迹颜色筛选:/note 和 /mistake 可分别设置「提取的颜色 / 忽略的颜色」,只整理指定颜色笔迹(设置页 Prompt 配置里修改)
  • 卡片即 Markdown:library///cards/*.md,带 front-matter,可手改、可 diff、可进版本库
  • 笔记即 Markdown:library/notes//note.md,原扫描图放在同目录的 source/、bands/ 作为对照
  • 知识点索引:自动重建 index.md / index.json,按 学科 → 一级 → 二级知识点 归类
  • 导出打印版 PDF:板块(含自定义板块)可勾选、可排序;公式以 Word 原生公式(OMML)排版,不是 Unicode 拼凑;原卷按卡片记录的多个读取区域一起附图
  • 回收站:删除先进 _trash/,可逐项还原,清空才真正销毁
  • 会话可追溯:待归档页可跳回分析会话继续修改
  • Prompt 配置:设置页按文档类型分别展示任务书/格式约定;错题支持 PDF 板块与自定义板块,两种类型都支持笔迹颜色设置
更新记录见 CHANGELOG.md。

界面

已归档 · 浏览(按知识点索引) · 已归档 · 管理(导出 / 删除 / 回收站) ·

设置 · Prompt 配置与 PDF 模板 · 待归档(空状态) ·

  • 「已归档 · 浏览」左栏是学科 → 一级知识点 → 二级知识点的索引树,右栏是卡片列表;点卡片可对照原卷裁剪图查看转录。
  • 「已归档 · 管理」里导出 PDF、管理导出文件、删除卡片(进回收站)与还原。
  • 「设置」里左侧是可收起的 Prompt 配置;PDF 模板是统一列表(预设板块 + 自定义板块),可拖动顺序、勾选包含、编辑说明,列表下方可新增自定义板块。

环境要求

  • DSH(DeepSeek Harness)桌面版,Web/桌面 profile 均可。要求 DSH >= 0.2.1-rc.2
  • 分析模型需要支持图片输入(插件启动前会校验,不支持会直接报错而不是静默失败)
  • Node.js ≥ 22(DSH 自带运行时已满足)

安装

目前只通过 GitHub 分发(npm 包尚未发布)。

方式一:从 GitHub 安装(推荐)

dsh plugin --profile desktop add github:suanmingxing/dsh-ai-mistake-book
把 desktop 换成你实际使用的 profile(桌面版通常是 desktop,dsh web 用 web)。
装完重启 DeepSeek Harness 生效。

方式二:本地目录(开发/调试)

git clone https://github.com/suanmingxing/dsh-ai-mistake-book.git D:\tools\dsh-ai-mistake-book
dsh plugin --profile desktop add "link:D:/tools/dsh-ai-mistake-book"
link: 安装时 pnpm 不会替插件装 dependencies,所以本仓库已把必要依赖放在 `node_modules/` 里一并提交(见 VENDOR.md)。若你删掉了它,请手动补装:npm i @deepseek-ai/schemastery @deepseek-ai/cosmokit katex。

首次使用

  1. 设置归档根:设置 → 插件 → AI 错题本 → archiveRoot,填一个你希望存放错题本的绝对路径(默认 ~/.dsh/ai-mistake-book)。改这个字段需要重启插件。
  2. 建一个"归档工作区"会话:在 DSH 里打开该目录作为工作区(首次 /mistake 会自动创建)。
  3. 投喂试卷:
/mistake 错题为 3、5、6、8、9、11 题  @"C:\path\to\扫描卷.pdf"

或在插件页用模型工具 mistake_ingest 指定文件路径。

  1. 等分析:分析在当前会话里进行;期间该会话的工具会被临时收窄到 4 个(读页面、提交候选、提交决定、问用户确认),结束后自动恢复。
  2. 确认归档:插件页 →「待归档」核对候选 → 确认归档;之后到「已归档 → 管理」导出 PDF 或删除。正式归档需在插件页确认。
  3. 定制版式与提词(可选):到「设置 → AI 错题本」的 Prompt 配置里改分析任务书、背景、错因分类;在 ⑤ PDF 导出模板里调整板块顺序、勾选或新增自定义板块。改完点「保存全部修改」,分析新试卷时生效。
  4. 转录手写笔记(可选):
/note 第三章 线性方程组 @"C:\path\to\笔记.pdf"

分析完成后到「待归档」核对/编辑标题与正文,确认归档;之后在「已归档 → 笔记」查看。

手写笔记:/note

/note 与 /mistake 共用投喂/光栅化/归档流程,但输出不是错题卡片,而是一篇 Markdown 笔记:

  • 多页一起处理:模型逐页读图后,可用 pages 数组一次提交多页;单页内容太长时用 chunk 分块续写,不用担心长笔记被截断。
  • 忠实转录:保留原笔记的标题层级、编号、列表、表格;公式写成 $...$ / $$...$$;图形无法转录时用 [图:…] 占位并标进「待人工确认」,不编造。
  • 待归档可编辑:标题、学科、正文都能在插件页直接改;点「确认归档」会先保存再归档(标题会变成 library/notes// 的目录名,重名自动加序号)。
  • 已归档查看:渲染 Markdown 公式,并列出原扫描页(source/、bands/)链接,便于对照。
  • 笔迹颜色:如果一页上有多种颜色的笔迹,可在设置页分别给「笔记」和「错题本」设置提取/忽略颜色(见下一节)。

数据与隐私

  • 所有数据都在你自己的机器上:试卷、转录、卡片、导出件都在 archiveRoot 下,插件不向任何第三方服务上传内容
  • 模型调用走你 DSH 里配置的 provider(同样的调用链路,不会额外外发)
  • 归档根结构:
<archiveRoot>/
├─ inbox/<batchId>/     进行中的批次(原始扫描、光栅图、笔记分页 part)
├─ library/<学科>/<卷子>/cards/*.md   归档后的错题卡片
├─ library/notes/<标题>/note.md       归档后的电子笔记(同目录 source/、bands/ 为原图)
├─ templates/           可编辑的提示词(analysis / background / error-taxonomy / note-analysis / note-format / custom-templates.json / ink-colors.json)
├─ exports/             导出的 PDF
├─ export-settings.json PDF 导出模板(板块顺序/勾选/预设说明/原卷图)
├─ _trash/              回收站
└─ index.md / index.json  自动生成的索引(含卡片与笔记)

主要设置项

设置 · 默认 · 说明 archiveRoot · ~/.dsh/ai-mistake-book · 错题本存放位置 pdfDpi / overviewDpi · 400 / 200 · 横带与整页概览的分辨率 pagesPerRequest · 2 · 一次投喂几页(每页 1 概览 + N 横带) maxRecutsPerPage · 4 · 每页原生重切配额 restrictAnalysisTools · true · 分析期间收窄会话工具集 analysisProvider / analysisModel · 空 · 空 = 用部署默认;必须支持图片 deleteToTrash · true · 删除进回收站而非销毁

设置页:设置选项与 Prompt 配置

设置页只有两块:

  • 设置选项(置顶,只读):当前生效的模型、光栅化、导出与存储参数;真正的修改入口在 DSH 的「设置 → 插件 → AI 错题本」。
  • Prompt 配置(单列,按模型实际接收顺序,所有板块都可收起/展开):顶部先选文档类型(错题本 / 笔记),两种类型的配置完全独立。

错题本:

  1. 分析任务书(templates/analysis.md)——主体;{{background}} / {{taxonomy}} / {{custom}} 是插入点
  2. 难度与学段背景(templates/background.md)
  3. 错因分类(templates/error-taxonomy.md)
  4. 系统自动追加(只读折叠)——每批次固定追加的工具调用速记
  5. 笔迹颜色——提取/忽略两栏(见下)
  6. PDF 导出模板——统一列表:六个预设板块 + 自定义板块,可勾选、↑↓ 排序、编辑说明;列表最下方可「新增模板」
  • 说明会写进分析提示词;停用的自定义板块不会被当成"未登记标题"塞回 PDF 末尾

笔记:

  1. 笔记转录任务书(templates/note-analysis.md)——转录规则、逐页/多页提交、公式与结构保留
  2. 笔记格式约定(templates/note-format.md)——标题层级/公式/列表/表格
  3. 系统自动追加(只读折叠)
  4. 笔迹颜色——同上,笔记与错题本的规则互不影响

笔迹颜色:提取颜色非空时只处理这些颜色的笔迹;忽略颜色会被跳过;两栏都为空 = 不限制。可点常用颜色快捷添加,也可手输自定义颜色名;同一颜色不能同时出现在两栏。保存后下一次分析生效(不影响进行中的批次)。颜色筛选通过提示词约束模型完成,不是图像像素级遮罩。

不会自动保存:改完点「保存全部修改」;每块的「恢复默认」只改草稿,仍需保存。PDF 导出时「管理」页还可以对这一次导出做临时覆盖。

依赖说明

本插件在 node_modules/ 里随包提交了三份依赖(合计约 0.7 MB):@deepseek-ai/schemastery、@deepseek-ai/cosmokit(DSH 发布版,公开 npm 同版本)、katex。原因与升级方式见 VENDOR.md。

katex 仅用于会话内的公式预览(MathML),缺失时会降级为纯文本,不影响归档。

已知限制

  • 公式排版覆盖错题卡常见写法(分数、根式、上下标、向量、\left…\right、希腊字母与常用运算符);矩阵、分段函数等结构暂不支持,会退化为可读文本
  • 分析依赖模型的视觉能力;看不清的字段会进入"待人工确认",不会猜测
  • 笔迹颜色筛选是提示词级的(模型按颜色取舍),不是图像像素级遮罩;笔迹颜色非常接近或扫描偏色时可能不完美
  • 笔记中的图形/示意图用 [图:…] 文字占位,不会转成矢量图;笔记暂不导出 PDF(后续版本再评估)
  • 界面文案提供中/英两份字典,提示词模板本身默认中文

许可证

MIT © 2026 suanmingxing