港大开源AI家教:RAG+大模型自动出题,把教材变成私教

发布时间:2026/9/24 20:38:46
港大开源AI家教:RAG+大模型自动出题,把教材变成私教 1. 这个开源项目的核心价值不是复读机而是会出题的老师说实话第一次看到港大这个 AI 家教项目的消息时我第一反应是又一个套壳 ChatBot。但仔细扒完项目之后我得承认——这个思路确实踩在了点子上。市面上的 AI 学习工具绝大多数还停留在你问我答的阶段你把教材丢给它它给你生成摘要、回答你的问题帮你整理重点。这当然有用但本质上还是在被动服务。而这个项目的逻辑完全不同它不只是啃下你的教材还能反过来出题考你检查你是不是真的读懂了。这个从读教材到出题检验的闭环才是它真正值钱的地方。作为一个长期关注 AI Agent 和开源教育项目的人我见过太多看起来很厉害、一用就露馅的 Demo。能不能落地关键看三个东西一是对长文档的理解能力二是出题质量是否稳定三是整个流程有没有做好工程化封装。这个项目在 GitHub 上线第一天就冲上热榜说明它至少把这三件事做到了一定水准——社区的眼睛是雪亮的。这篇文章我会从项目结构、核心原理、部署实测、出题质量评估、二次开发方向这几个角度把它拆开揉碎讲清楚给想上手复现或者想借鉴思路做二次开发的朋友一份完整的参考。2. 它到底是怎么做到的从教材解析到反向出题的技术链路拆解2.1 教材理解阶段RAG 不是简单切块嵌入这个项目做的最基础的一件事就是把你的教材读进去。但如果你以为它只是把 PDF 丢给大模型让它读那就太天真了。从代码结构和实现逻辑来看它走的是一条经典的 RAG检索增强生成路线但做了几个关键优化文档解析层支持 PDF 和 Markdown 等常见教材格式PDF 解析不只是简单提取文字而是尽量保留标题层级、段落结构方便后续按语义切块。这一步看似不起眼实际直接影响后面检索的质量。你可以想一下如果教材里一个章节的连续内容被硬生生切成了碎片那检索出来的上下文就是不完整的出题时自然容易跑偏。切块策略不是机械地按固定 token 数量切块而是结合文档结构做语义切块。比如章节标题下的大段内容尽量保持完整代码块、公式、表格等特殊段落单独处理。这样做的目的是让每个被检索到的块本身尽量是一个完整的信息单元而不是一句被拦腰截断的话。向量化存储用嵌入模型把切好的文本块转成向量存入本地向量数据库。这个设计的好处是学生提问时系统可以先把问题转成向量然后在教材的向量空间里做相似度检索找出最相关的内容片段再把这些片段连同原始问题一起交给大模型生成答案。提示这种检索-增强生成的范式是目前让大模型回答基于私有文档问题的最稳妥方案。它不要求你微调模型也不要求你把整本教材塞进上下文窗口成本低、可解释性强、更新教材也方便。2.2 出题阶段从单轮问答变成主动检验项目真正的创新点在出题环节。它做的不是简单问你这段话的中心思想是什么而是基于教材内容自动生成一套结构化的测验题覆盖以下几个维度基础概念理解检验读者是否掌握了核心术语和定义比如请解释 XX 概念并举一个教材中的例子。因果逻辑推演检验读者是否理解内容之间的逻辑关系比如为什么 A 会导致 B如果去掉某个前提条件结论还成立吗应用迁移检验读者能否把学到的知识用到新场景比如基于教材中 XX 方法的原理你会如何解决另一个相似场景的问题出题的形式也做了区分既有客观题判断题、选择题也有主观题简答题、论述题并且每道题都附带了参考答案和解析。这个答案解析的设计对自学者非常友好——你做完题不是对个答案就完事而是能看到 AI 为什么认为这是关键点从而发现自己遗漏的理解盲区。2.3 项目结构一览轻量、可改、模块化从仓库结构来看这个项目的模块划分是比较清晰的核心部分大致是这几个模块职责说明文档解析模块读取 PDF/Markdown提取结构化文本支持章节层级保留切块与嵌入模块对文本进行语义切块并向量化切块策略可调向量检索模块根据用户问题检索相关教材片段本地向量库存储出题服务模块调用大模型生成题目与解析支持自定义提示词模板Web 交互层提供聊天式的学习界面可选装饰性功能这种模块化设计最大的好处是你不需要把整个项目理解透了才能用想改出题模板就改出题模板想换成另一个嵌入模型也可以独立替换。对想拿它做二次开发的开发者来说这比一坨代码全糊在一起的 Demo 友好太多了。3. 部署实测记录从克隆仓库到跑通一次自动出题3.1 环境准备建议直接上 Python 3.11 和最新版依赖我是在一台配置不算太高的 Linux 服务器上测试的8 核 CPU16G 内存无独立显卡。整个部署过程比较顺利但有几个细节值得提醒。首先是 Python 版本。项目本身对版本没有写死但建议直接上 Python 3.11 或更高版本避免旧版本在某些新特性上踩坑。其次是依赖安装建议用虚拟环境或者 Conda 环境来隔离不要直接怼进系统 Python 里——这个项目依赖的库不算少和系统里已有的包容易冲突。安装依赖的核心命令就一条pip install -r requirements.txt但这里有个容易出错的地方如果你本地已经装过某个旧版本的向量数据库客户端、或某个大模型 SDK建议先看一下 requirements.txt 里的版本要求有冲突的先升级或降级不要无脑全量覆盖。我在实测时就遇到过旧版 SDK 调用新接口报错的问题排查起来很烦。3.2 配置模型本地小模型能跑但效果有差距项目的出题引擎默认通过 OpenAI 兼容接口调用大模型。如果你有自己的 API Key直接填进去就行。但如果你只是想在本地体验一把也可以用本地部署的量化模型比如通过 Ollama 之类的工具跑一个 7B 级别的模型接口做成 OpenAI 兼容格式即可。我实测了两种配置云端模型GPT-4o 级别出题质量高逻辑缜密解析清晰对教材的把握非常准。题目不仅覆盖了核心知识点还会拐几个弯考你理解确实有种被老师抽问的感觉。本地 7B 量化模型能出题但题目深度明显不足更倾向于这段话里出现了什么的浅层问答复杂逻辑推理和应用迁移类的题目质量一般。提示如果你只是想把概念玩通本地模型完全够用如果你真的要拿它辅助学习还是建议配一个能力更强的模型出题质量会显著提升。这不是项目本身的问题而是底座模型能力的天花板决定的。3.3 喂入教材与初次出题实际效果怎么样我拿了一本开源协议相关的英文技术书籍做了测试。把 PDF 拖进去之后系统会先做解析和向量化这个过程耗时取决于文档长度。几十页的教材在 CPU 环境下大概几十秒就能完成索引速度可以接受。然后我在交互界面里点了生成测验系统生成了一套 10 道题的测验覆盖了概念题、判断题和一道开放性的迁移应用题。整体感受是题目确实是源自教材的没有凭空捏造知识点说明检索环节找对了位置。解析写得比题目本身还精彩它不只是告诉你选哪个而是把为什么对、为什么错都解释了一遍这对自学纠偏特别有帮助。开放题会略微发散比如让读者结合自己的项目经验谈看法这种题没有标准答案但 AI 给的参考思路还是有一定启发的。我第一次跑通的时候心里只有一个想法这东西如果在我当年啃大部头教材的时候出现我可能不会学得那么痛苦。4. 出题质量深度评测好的 AI 出题该有什么标准4.1 覆盖度与随机性会不会每次都出一样的题我特意做了个测试同一本教材连续让它生成了三次测验对比题目重合度。结果是比较满意的——三次测验的题目虽然都锚定核心知识点但切入角度和问法有差异说明系统在出题时是带随机采样逻辑的不是机械地从教材里抽句子拼凑。这一点对学习者来说非常重要。如果出的题每次都一样那学生很容易通过记忆答案来作弊式通关完全达不到检验学习效果的目的。好在这个项目规避了这个问题。你甚至可以设计一个流程每学完一章生成一套新题隔周再生成一套用来做间隔复习和记忆巩固。4.2 难度的层次感从送分题到送命题进一步观察它的出题分布能发现一个有意思的现象题目有明显的难度分层。低难度直接在教材里能找到答案的概念题用于检验基础记忆。中等难度需要跨段落综合理解才能作答的题比如把两个章节的知识点串联起来问。高难度给出一个教材之外的场景要求学生用教材里的方法论去分析和解决属于真正的迁移应用。这种分层设计本质上是在模仿一位有经验教师出题的思路先摸摸底再让你动动脑最后逼你动动手。如果一个 AI 出题工具只会出基础题那它只是练习册能出分层题才配叫家教。4.3 可能存在的问题你现在就该知道的坑虽然整体质量不错但我还是发现了几个潜在问题提前告诉你免得你踩坑教材本身的排版质量会直接影响出题效果如果 PDF 是扫描件且没有 OCR解析出来的文本就会乱成一团向量检索和出题质量都会急剧下降。建议优先使用电子版或质量良好的文本型 PDF。某些专业领域术语会变形我测试的书籍里有一些数学公式解析时公式变成了乱码或怪字符。如果教材里公式密集需要提前做一些预处理或者至少要有心理预期。客观题的选项偶尔有送分现象个别选择题的错误选项过于明显一眼就能排除。这说明大模型生成干扰项的能力还有提升空间。不过瑕不掩瑜整体不影响使用。5. 从学习到教学我可以拿它来做什么5.1 学习者视角把被动阅读变成主动检索练习对我个人来说这个工具最打动我的不是能生成题目而是它重新定义了阅读的节奏。过去读书我是从头到尾线性阅读读完就忘合上书什么也想不起来。而有了 AI 出题之后我可以每读完一个章节就停下来让它生成一套速测题——我把它当作主动回忆练习的触发器。具体做法是读完一章后围绕该章内容点一次生成测验。先凭记忆答题不翻书。答完再对照 AI 给的解析找出自己理解偏差的地方。把错题对应的知识点带回原文精读一遍。这一套流程下来记忆留存率比单纯读两遍书高得多。有认知科学研究早就证明检索练习retrieval practice是最有效的学习策略之一而这个工具等于把检索练习的成本降到了几乎为零。5.2 教学者视角快速产出随堂测验与课后练习如果你是老师或培训讲师这个项目的价值可能更大。备课的时候你不需要再花大量时间手动编写随堂测验题直接把教材或教案喂进去几分钟就能生成一套基础测验然后你在此基础上修改、增删题目就能得到一份相当不错的练习卷。我的实测建议是AI 生成的题目当题库种子非常好用但直接用之前一定要人工审一遍。理由很简单AI 对教材的理解再准也可能出一些语义含糊的题目个别开放题的参考答案也可能存在不够全面或略有偏颇的情况。教师的作用就是把 AI 当成一个效率工具而不是完全交付出题权的甩手掌柜。5.3 开发者视角可扩展的三个方向从开发者的角度我觉得这个项目留了不少扩展空间出题模板自定义项目当前出题风格由提示词控制你完全可以写一套更符合自己学科风格的 prompt比如针对编程教学、医学知识、法律条文等不同场景定制不同的题型与深度。学习进度追踪可以在生成测验前后记录答题正确率形成一个学习进步的曲线。现在项目偏单次问答如果加入历史记录和统计分析就是一个完整的学习管理系统雏形。多模态支持进阶当前主要处理文本教材。如果未来能扩展为支持图片、音视频内容的理解与出题那应用面会宽很多。出题答案自动评估对于主观题可以接一个独立的评估 prompt让学生提交自己的答案后由 AI 按维度打分并给出评语——这几乎是目前 AI 教育赛道最热的功能之一。6. 一些实践中的经验与建议项目本身还在快速迭代中社区讨论也很活跃。结合我实际使用的感受最后给你几条建议第一别拿它当标准答案的权威。它出题和解析的基础来自大模型这就代表它天然有可能犯错。尤其在你准备重要考试或评审材料时请务必把 AI 生成的解析当作辅助参考核心知识还是要回归教材和权威资料。第二把出题考自己变成一种习惯。这个工具最妙的使用方式不是偶尔玩一下而是融入你的学习节奏里。每读完一节、一章就主动生成一套题让学习从输入变成输入-输出-反馈的循环效果一定会让你意外。第三关注项目的后续更新。从目前的活跃度和社区反馈来看后续大概率会补上更多实用功能比如题型的进一步丰富、对中文教材的更好支持、以及针对不同学习阶段的难度调节。如果你想长期用可以持续关注仓库动态。说实话这个项目让我最感慨的不是技术多复杂而是它找到了一个非常落地的场景AI 在知识传递过程里不是取代老师而是把主动学习这个本该是学习者自己做的事变得容易坚持下来。从这一个点来说它值得每一位关注 AI 教育、自学效率、开源项目的人认真试一次。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询