课程助手:DeepSeek Harness 插件

前言

在本地整理课件时,经常遇到两类问题:一是课件里只有一堆 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,解析嵌入的 TrueType cmap 表,把字形编号还原成真字。
  • 演讲者备注:读取 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

安装与启用

前置条件

  1. 安装好 DeepSeek Harness
  2. 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)

  1. 打开 https://github.com/logb-1/dsh-course-assistant/releases
  2. 下载最新 ZIP 包
  3. 解压到 DeepSeek Harness 的插件目录(通常为 <DSH_HOME>/plugins/dsh-course-assistant)
  4. 重启 DSH

面板入口

  • 左侧栏「课程助手」图标(main 槽位,key course-assistant)
  • 常驻入口:输入框下方 dock 的一行「🎓 课程助手 · 打开面板 →」(conversation.composer.dock)

典型用法

  1. 打开课程助手面板
  2. 拖入课程文件(支持 .pptx .pdf .docx .md .txt)
  3. 等待解析、目录识别、逐章总结与 B 站检索
  4. 在面板标签页查看「知识点」「目录」「B 站网课」「报告」
  5. 若结果不理想,选择「不太行」并选择补救方式(换源文件、OCR 重读、关闭网课检索重跑)
  6. 下载 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye