)
audit_lessons.py 审计工具详解如何用它给 AI 工程课程做质量检查L001-L010 完整指南【免费下载链接】ai-engineering-from-scratchLearn it. Build it. Ship it for others.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-from-scratch在 ai-engineering-from-scratch 这门免费开源 AI 工程课程中audit_lessons.py 是内置的课程审计工具一条命令即可检查全部 523 个课程目录的结构完整性覆盖目录命名、文档规范、代码文件、测验格式和内部链接共 10 条不变量检查规则L001-L010。无论你是想贡献课程内容的开发者还是好奇大型课程如何保证质量的普通读者了解这个 AI 工程课程质检工具都能帮你快速建立质量门禁的工程思维。为什么一门 523 课的课程需要审计工具这门课程覆盖 20 个阶段、约 342 小时内容每节课都遵循统一的目录约定docs/en.md—— 英文课程正文code/—— 可运行的示例代码quiz.json—— 课前/课后测验当课程规模扩大到数百个目录每节课是否都完整这件事只能靠程序来回答。audit_lessons.py干的就是这件事只读地扫描phases/ 下的每个课程目录输出问题清单。它属于 scripts/ 目录下的一组维护脚本与 audit_certifications.py、link_check.py 等工具共同构成课程的质量防线。一分钟上手运行课程审计在仓库根目录执行python3 scripts/audit_lessons.py常用参数参数作用--phase 11只审计第 11 阶段LLM Engineering的课程--json以 JSON 格式输出报告便于脚本消费--strict将警告视为错误当前保留参数退出码是它最有工程价值的部分0 表示全部通过1 表示发现问题。这意味着它可以无缝接入持续集成流程——课程目录每次提交后自动跑一遍不合格就拦截。️L001-L010十条不变量检查规则详解下面是脚本实现的完整规则清单规则编号直接来自 audit_lessons.py 源码目录结构类L001 / L002 / L003 / L005规则检查内容不通过的含义L001课程目录名必须匹配NN-slug格式如01-dev-environment目录命名不符合排序与 URL 规范L002必须存在docs/en.md且为合法 UTF-8课程正文缺失或编码损坏L003docs/en.md不能短于 200 字节正文内容过于单薄L005code/目录如果存在就不能是空的占位目录没有交付任何代码L001 的命名正则保证了 523 个课程在仓库和网站中都能稳定排序例如 01-dev-environment 这种两位数字 小写短横线格式。内容质量类L004规则检查内容不通过的含义L004docs/en.md必须包含至少一个顶级 H1 标题文档结构不达标网站渲染可能异常这是典型的小检查、大收益规则一行正则就防止了整批页面缺失标题的批量事故。测验格式类L006 / L007 / L008 / L009quiz.json是课程测验的载体。以 quiz.json 为例它要求每题使用统一的规范键stage、question、options、correct、explanation。规则检查内容不通过的含义L006quiz.json必须是合法 JSON且为非空题目数组或含questions[]的对象测验无法被网站加载L007禁止使用旧版键名q/choices/answer存在未迁移的历史格式L008每题选项数量必须在 2~6 之间选项过少无区分度、过多难维护L009correct必须是 0 起始的有效选项索引正确答案指向错误位置这套规范键 vs 遗留键的设计见 audit_lessons.py值得借鉴数据格式升级时不删除旧格式而是让审计工具显式报出所有还没迁移的文件迁移进度一目了然。链接完整性类L010规则检查内容不通过的含义L010正文中的本地相对链接必须真实存在用户点击课程内链接会 404脚本会解析docs/en.md中所有非 http(s) 的 Markdown 链接逐一验证目标文件是否存在。对于 500 篇互相引用的课程来说这是防止死链累积的关键护栏。审计报告的两种形态不带参数时脚本输出人类可读的报告先列出每个问题的[规则号] 文件: 说明再按规则汇总计数加上--json后输出机器可读结构{ lessons_checked: 42, issues: [ { rule: L002, lesson: phases/.../03-xxx, file: phases/.../docs/en.md, message: missing docs/en.md } ] }配合--phase参数贡献者可以先缩小范围验证自己负责的阶段再全量跑一遍确认没有全局回归。这种先局部、后全局的验证习惯正是大型开源课程能长期保持结构整洁的原因。与课程目录约定的联动理解了规则再看仓库结构就顺理成章了。以第 0 阶段第一课为例它的目录恰好满足全部规则phases/00-setup-and-tooling/01-dev-environment/ ├── code/ # 可运行代码L005 检查非空 ├── docs/en.md # 课程正文L002-L004、L010 的检查对象 └── quiz.json # 规范格式测验L006-L009 的检查对象课程模板 LESSON_TEMPLATE.md 定义了新建课程的标准骨架而审计工具则是骨架没长齐就报警的那道关。新手可复用的三个经验用退出码做门禁审计脚本只输出 0/1 两种退出码CI 系统天然可消费无需解析文本。规则编号化每条检查有稳定的L0xx编号报告、讨论和文档可以精确引用这个问题是 L008 报出来的。只读、幂等、无副作用审计工具不修改任何文件随时可重复运行这也是 scripts/ 中所有audit_*、check_*脚本的共同设计原则。小结audit_lessons.py用约 280 行代码守住了 523 门课的结构底线从 L001 的目录命名到 L010 的链接可达性每条规则都对应一种真实会发生的错误。下次当你维护多文件的项目或内容仓库时不妨问自己一句——我的课程不变量是什么写一个这样的课程审计工具可能就是答案。【免费下载链接】ai-engineering-from-scratchLearn it. Build it. Ship it for others.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-from-scratch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考