前言¶
在本地整理课件时,经常遇到两类问题:一是课件里只有一堆 PPTX/PDF/DOCX/MD,章节标题散落在各页,难以快速定位;二是想找配套的讲解视频,但 B 站上关键词一搜就是一屏无关结果。DeepSeek Harness(DSH)的插件生态允许在对话界面内集成这些能力,把原本需要跨软件、跨步骤的操作收拢到一条对话流里。
课程助手(dsh-course-assistant)就是这样一个工作流插件:把课程文件拖进面板,自动识别章节目录,逐章生成知识点/重点/难点,检索 B 站配套网课,最后输出一份 Markdown 学习报告(可导出 PDF),报告末尾固定附 B 站网课列表。
插件定位¶
- 类型:工作流插件(bundle)
- 维护者:logb-1
- 仓库:https://github.com/logb-1/dsh-course-assistant
- 核心价值:把本地课件转化为结构化学习资料,并关联站外学习资源
核心功能¶
1. 文件识别与目录提取¶
支持拖入或点击选择 .pptx .pdf .docx .md .txt 文件,一次最多 12 个(单文件 ≤60MB)。插件会解析文件,识别章节目录,并逐章生成要点、重点、难点与关键词。
2. B 站网课推荐¶
启用「检索 B 站网课」后,插件会根据课程内容与章节关键词检索 B 站视频。附录包含「系列课程推荐」与「分章节视频推荐」两个表格,列出视频标题、UP 主、播放量、时长/集数及链接。若检索被风控或无结果,附录会退化为 B 站搜索入口。
3. 学习报告输出¶
报告严格按需求给定的结构输出:
# 《课程名》学习报告
> 生成时间 / 来源文件 / 章节数 / 总结模型
## 一、课程目录
## 二、各章知识点 ### 第 N 章 … - 要点 / - ⭐ 重点 / - ⚠️ 难点 / - 关键词
## 三、课程总结 (≤300 字)
## 附录:B 站相关网课推荐
### A. 系列课程推荐 序号 | 标题 | UP 主 | 播放量 | 时长/集数 | 链接
### B. 分章节视频推荐 章节 | 标题 | UP 主 | 播放量 | 时长 | 链接
报告可在面板中查看、下载 Markdown/PDF 或复制文本。
4. 质量闸门与 OCR 重读(1.2.0 新增)¶
解析后插件会计算四项指标:每页字数、可疑字符率、空页率、成词率,并判定「good / fair / unusable」。若结果不理想,可在面板中选择「不太行」并展开三条补救:换源文件(最优)、OCR 重读、关闭网课检索重跑。OCR 重读使用 Windows OCR(zh-CN,约 1 秒/页,默认上限 60 页),仅 Windows 平台可用。
5. 领域锚定与搜索优化(1.5.0 新增)¶
插件通过代码特征识别课程语言(如 #include/std::/cout → C++;System.out → Java…),并对章节关键词强制带域(例如「Python 异常处理」→「C++ 异常处理」)。B 站查询会加上前缀,并按领域过滤跨语言结果。若识别不准,可在配置里写死 domain 字段。此外,插件会清洗通用词章名(如「主要内容」),改用「第一个有信息量的小标题」或正文首行。
6. 要点溯源与本地核对(1.4.0 新增)¶
每条要点都会带原文引文,并由本地核对。插件会将引文与章节原文做归一化比对,判定为 exact(引文是原文子串)、fuzzy(4-gram 覆盖率 ≥ 0.85)、short(归一化后不足 10 字)或 missing(找不到)。报告与面板只陈述测量值(如「词面重合 34%:要点多为改写」「5 条引文 2 条找不到」),不再用重合度推断「编造」。
7. 多项实用改进(1.4.0 / 1.3.0 新增)¶
- 字形反查:对字体缺少
/ToUnicode的 PDF,解析嵌入的 TrueTypecmap表,把字形编号还原成真字。 - 演讲者备注:读取
notesSlides,讲义备注往往是完整讲稿。 - 编码还原:对无 ToUnicode 的字体先按 GBK/Big5 再解一次,能救「GBK 字节被当 Latin-1」的老 PDF。
- 同名源文件择优:同时拖
x.pptx与x.pdf时自动用 pptx,并提示跳过了哪个。 - 要点重合计分:每章要点与原文算 bigram 重合度,低于 30% 标「可能有推断成分」。
- OCR 引擎抽象:支持
windows(WinRT 渲染 + Windows OCR)与rapidocr(需安装rapidocr_onnxruntime pymupdf)两种引擎。 - 双栏排版:按栏读论文/教材型 PDF,避免左右两栏内容串成一句话。
- 单章重跑与差异视图:每章右上角「重跑本章」,只重算该章并重建报告,其他章节与总结保持不变。面板会显示绿色新增与红色删除的要点。
- 本地课件问答:使用
Intl.Segmenter分词 + BM25 在章节正文里检索,返回带章号与页码的原文片段。 - 对照考纲算覆盖率:把复习大纲/考点清单交给插件,按 token 重合把每条考点归到最匹配的章节。
- 增量课程:
append操作可把新课件追加到已有课程,旧章节摘要缓存命中则不重算。 - 修复静默 bug:1.4.0 起正文显式传给模型,prompt 版本升到 v5。
8. 配置与校验(1.4.0 新增)¶
插件通过 schemastery 声明 11 个配置字段,激活时校验非法配置会直接 fail loud。字段与优先级(请求 > 配置 > 默认):
| 字段 | 默认 | 约束 |
|---|---|---|
dataDir |
空(<DSH_HOME>/course-assistant) |
路径 |
concurrency |
4 | 1–5 |
withVideos |
true | 布尔 |
domain |
空(自动识别) | 字符串 |
ocrMaxPages |
60 | 1–400 |
ocrEngine |
空(自动) | windows / rapidocr |
ocrPython |
空 | python 路径 |
provider / model |
空(跟随默认模型) | 字符串 |
spacingMs |
1000 | 1000–60000 |
keepUploadsDays |
7 | 1–90 |
安装与启用¶
前置条件¶
- 安装好 DeepSeek Harness
- profile 里配好一个可用模型(缺失时会退回本地抽取摘要)
装法一:让 Agent 装(最省事)¶
在 Harness 对话框里直接说:
帮我安装插件 dsh-course-assistant(用 plugin_manager,action=install_bundle,target 用包名)
Agent 会执行 install_bundle(target="dsh-course-assistant"),从 npm 装;application: applied 后刷新页面即可。
装法二:GitHub ZIP(不用 git、不用 Node)¶
- 打开 https://github.com/logb-1/dsh-course-assistant/releases
- 下载最新 ZIP 包
- 解压到 DeepSeek Harness 的插件目录(通常为
<DSH_HOME>/plugins/dsh-course-assistant) - 重启 DSH
面板入口¶
- 左侧栏「课程助手」图标(
main槽位,keycourse-assistant) - 常驻入口:输入框下方 dock 的一行「🎓 课程助手 · 打开面板 →」(
conversation.composer.dock)
典型用法¶
- 打开课程助手面板
- 拖入课程文件(支持
.pptx .pdf .docx .md .txt) - 等待解析、目录识别、逐章总结与 B 站检索
- 在面板标签页查看「知识点」「目录」「B 站网课」「报告」
- 若结果不理想,选择「不太行」并选择补救方式(换源文件、OCR 重读、关闭网课检索重跑)
- 下载 Markdown/PDF 或直接复制报告
适用场景与注意¶
- 适合需要系统化整理本地课件、生成结构化学习资料的用户
- 适合希望关联 B 站视频资源以辅助学习的场景
- 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证(MIT)
- B 站检索需要网络连接,关闭「检索 B 站网课」选项可避免站外请求
结尾¶
课程助手通过本地解析、要点溯源与 B 站推荐,把本地课件转化为结构化学习报告,并支持增量更新与单章重跑。插件版本 1.5.2,仓库与目录页见下方链接。
- 目录页:https://www.skillhub.cn/plugins/logb-1/dsh-course-assistant
- GitHub:https://github.com/logb-1/dsh-course-assistant