CoEvolution-Labs

SystematicNotes —— 自动化课程笔记生成系统

自动化课程资料整理与笔记生成系统 — 把 PPT + 录音 → 图文并茂的精品 Markdown 笔记

CoEvolution-Labs 0 Updated 2w ago

Resources

10
GitHub

Install

npx skillscat add coevolution-labs/awesome-learn

Install via the SkillsCat registry.

SKILL.md

BOSS REQUIRE DONT MODIFY不要修改下面的内容:
我希望可以做成一个skill,可以自动化搜集全面的资源、列举、分析、下载、分析、整理


SystematicNotes —— 自动化课程笔记生成系统

快速概览

模块化 Pipeline 系统:收集课程资料 → 自适应选择处理器 → 生成结构化笔记。支持 PDF 课件视觉分析 + transcript 文字处理。

架构

src/                          # 通用共享代码
├── engine.py                 # PipelineEngine(编排核心)
├── registry.py               # AdapterRegistry(适配器自动发现+注册)
├── model.py                  # 数据模型(CourseMaterial, PipelineConfig 等)
├── adapters.py               # 基类(BaseCollector, BaseProcessor, BasePublisher)
├── providers/                # LLM Provider 层
│   ├── base.py               # BaseProvider(ABC)
│   ├── boyue.py              # BoyueProvider(OpenAI 兼容)
│   └── router.py             # get_provider(name)
├── utils/checkpoint.py       # 断点续跑
└── cli.py                    # 命令行入口

pipeline/
├── 01-collect/adapters/      # 资料收集器(local 等)
│   └── scripts/              # 辅助脚本(如 ELRC catch_all.js)
├── 02-process/
│   ├── adapters/             # 加工处理器(pdf, transcript, exec)
│   ├── generators/           # 笔记生成器(LLM 调用)
│   └── prompts/              # Prompt 模板(.md 外置)
└── 03-publish/adapters/      # 发布器(local, github)

templates/course/             # 课程标准目录模板
├── 01-raw/{slides,transcripts,recordings,homework,documents}/
├── 02-processed/{images,summaries,drafts}/
└── 03-output/{notes,cheatsheet,homework}/

courses/                      # 实际课程数据(通过 symlink 或直接存放)
├── cs336/                    # Stanford CS336(已有资料+笔记)
├── gai-sde/                  # MIT 6.S184 Diffusion Models
└── quick-test/               # 快速测试

使用方法

# 列出可用适配器
python3 -m src.cli --list-adapters

# 运行 Pipeline
python3 -m src.cli courses/my-course
python3 -m src.cli courses/my-course --force --dpi 200

质量检查-优化循环(强制执行)

MUST:笔记生成后必须进行质量检查。如果发现问题或有明显优化空间,必须进入检查→优化→再检查的循环,直至质量达标。

检查维度

维度 检查内容 红线(必须修)
结构完整性 所有课时是否覆盖?章节层级是否清晰? 缺课、章节断裂
内容准确性 公式/代码/定义是否正确?是否与原始资料一致? 事实错误、公式错误
可读性 中文是否通顺?术语是否准确?排版是否清晰? 机翻痕迹严重、格式错乱
深度 是否只是表面摘录?有无解释"为什么"? 纯罗列无深度
实用性 能否直接用于复习/考试/面试?有无 TLDR? 缺少总结/要点

循环流程

生成笔记 → 质量检查 → 有问题? ──Yes──→ 针对性修复 → 回到检查
                        │
                       No
                        │
                        ▼
                      输出最终版
  • 每轮修复必须有具体的修复目标(不能"再改改")
  • 最多 3 轮循环,超限则标注 [待人工审核] 并输出当前最佳版
  • 检查结果写入 03-output/notes/quality_report.md

常见问题 & 修复策略

问题 修复方式
某节课内容明显比其他课少/浅 单独重新生成该课笔记(降低 temperature、加长 prompt)
公式渲染错误/缺失 正则修复 + 针对性重写含公式段落
中文术语不统一 术语表对照替换
章节结构混乱 重新合并+润色,强调大纲结构
缺少关键图表说明 补充视觉摘要引用

资料完整性规范

核心理念:我们要的不是"有一些资料然后生成笔记",而是把对应课程(学期)的高质量、全面的资料都下载,结合生成笔记,并引导进行练习。一门课的价值 = 听懂(notes) + 会做(labs/homework) + 能读源码(code)。

每门课程应收集的资料清单

资料类型 存放目录 必需程度 说明
课件/幻灯片 01-raw/slides/ 必需 PDF、.py 可执行讲义、PPT
视频转录稿 01-raw/transcripts/ 强烈建议 YouTube/bilibili 字幕,优先 _clean.txt
课程笔记/讲义 01-raw/documents/ 建议 官方 lecture notes、syllabus、reading list
实验/Lab 01-raw/homework/ 如有则必需 Jupyter notebooks、Colab 链接、实验指导
作业/习题 01-raw/homework/ 如有则必需 习题集、答案、评分标准
源码仓库 01-raw/homework/ 如有则建议 课程配套 GitHub(labs/assignments 源码)
参考论文 01-raw/documents/ 建议 课程推荐的必读论文
视频/录音 01-raw/recordings/ 可选 课程录像(如无 transcript 则需要)

资料收集 SOP

每门新课程按以下步骤逐项完成:

  1. 找到课程官网 → 下载所有 slides PDF、lecture notes、syllabus、reading list
  2. 搜索 GitHubgithub.com 搜索课程编号/名称,clone labs、assignments、源码仓库
  3. 搜索 YouTube/bilibili → 搜索课程名+讲师,拉取所有视频 transcript
  4. 检查 syllabus → 看推荐阅读/参考论文列表,下载关键论文 PDF
  5. 检查 Colab → 课件中是否有 Colab 链接,下载 .ipynb 到 homework/
  6. 缺失清单01-raw/ 下空目录 = 待补充,提醒用户

自检

运行 pipeline 前,确认以下问题:

  • slides/ 非空且覆盖所有课时?
  • transcripts/ 覆盖所有课时(或至少大部分)?
  • homework/ 有 lab/作业(如果课程有的话)?
  • documents/ 有 syllabus/lecture notes(如果课程有的话)?

缺失项不阻塞 pipeline,但会在输出中标注「资料不完整」。

自进化机制

  • 新增适配器:在 pipeline/XX/adapters/ 下放一个 .py 文件,继承对应基类并设置 name,自动注册
  • 新增 Provider:在 src/providers/ 下实现 BaseProvider 子类
  • Prompt 优化:直接编辑 pipeline/02-process/prompts/*.md

当前状态

课程 资料状态 笔记状态
CS336 PDF+PY+Transcripts 已就绪(symlink),18节课 已有旧版笔记,新 pipeline 待重跑
gai-sde (MIT 6.S184) ✅ slides(5) + transcripts(6) + lecture_notes + labs(3+3解答) 待生成

API 配置

Boyue(OpenAI 兼容代理):http://35.220.164.252:3888

  • 文本:glm-4.7
  • 视觉:gpt-4o
  • 配置方式:.env 文件(参考 .env_example

已验证

  • Engine 全流程 ✅(transcript-only、pdf+vision、exec lecture 三种模式)
  • PDF→图片→视觉摘要 ✅
  • 笔记质量 ✅(结构化、公式、表格)
  • 适配器自发现 ✅
  • GitHub 图床发布 ✅
  • YouTube transcript 拉取 ✅
  • 可执行讲义解析 ✅

Gotchas

260708-Genetic-Notes-Design-Requirement

目标读者:[画像];读完后能:[终点能力](backward design)
组织契约:

  1. 用 genetic method 组织全文:单一主线 = 问题 → 方法 → 失效模式 → 下一代方法;禁止并列式知识点罗列
  2. 失效驱动衔接:每一节第一句显式回答「上一节的什么缺陷逼出了本节」
  3. 前置概念 just-in-time:在第一次被需要处引入,不集中堆在开头
  4. 开头只放一段 advance organizer:全文主线地图 + 为什么这条线非走不可
  5. 单一叙事主线:支线内容一律放折叠块/附录,不打断主干
  6. signaling:段落间用显式逻辑词(因此/然而/为了修复 X)标注关系
    流程契约:
    先计划,再执行

260708-Notes-Must-Reference-Raw-Materials

Problem:LLM 凭自己知识生成笔记,零引用、无法溯源验证。表面看起来正确,实际上是"凭空编造"。
Need:每条关键论断必须可追溯到原始资料的精确位置(文件名+页码/章节),读者可以用 grep 验证。
Solution:
笔记生成 Pipeline 三步:

  1. 提取:pdftotext/pymupdf 从 raw PDF 提取全文 → 02-processed/<source>_ChX.txt
  2. 阅读+分析:Read 提取文本,理解真实结构和关键段落,确定哪些内容进入笔记
  3. 生成+引用:基于提取文本写笔记,每条论断标注 [来源, p.X];原文直接引用用 > block quote;提取件独立存放供 grep 验证
    反模式:
  • 凭 LLM 内部知识直接写笔记(零引用 = 零可信度)
  • 用古典曲线曲面论(do Carmo 风格)去解释一本直接从流形开始的讲义(Salamon)——结构对不上
  • 先写笔记再去找资料佐证——应该先读资料再写笔记
    复现List:260708-diffgeom-notes(本 session,Ch.1-2 初版被删除重写)

Categories