用 Python 写了个本地优先的 AI 家教:多种教学模式,教材当检索源,逐章掌握度分析
前言:为什么要做这么个东西
有人说过,电脑是人脑的延伸;如今,大模型则是人脑的近似。它能读万卷书、解万般题,人脑在"知识量"上确实追不上。但我一直觉得,工具是放大器,你自己长出来的能力才是最踏实的东西——所以这款东西我故意做得"笨":逼你想,而不是替你答。
之前试过不少学习类 AI 工具,大多止步于"你问它答",答完你还是没学会。认真学一门课,真正缺的不是答案,而是循序渐进的引导、及时的反馈,和对自己掌握情况的清楚认知。所以我把目标定得很具体:把任意一本教材,变成一位引导式的专属家教。
技术要点
1. 教材怎么变成"知识"
用户上传 PDF / TXT / Markdown 之后,程序在本地把文本切分,建一个 BM25 检索索引。关键点在于:之后所有答疑和出题,检索依据都是这本教材的原文,而不是让模型凭记忆瞎编。这能把"幻觉"压到最低——教材才是权威,模型只是讲解员。
2. 三种教学模式
同一本教材,按学习习惯切了三种教法:
- 引导探究式(默认):引入 → 小测 → 反馈 → 追问,一步步建立直觉。
- 讲授式:概念讲解 → 课堂作业 → 开放问答。
- 自由问答式:就原文任意内容深问深答。

3. 掌握度为什么按"章"算
这是我觉得最有用的一个设计。通常的练习只给一个总分,但"85 分"说明不了什么——你可能是第一章熟、第三章完全没懂。所以我让每道题按它归属的章节分别计分。举例,一道题整体 85/100,同时标出第一章矩阵 90、第三章行列式 80;哪块虚,复习就专门打那块。配合"自动挑最弱章节出题"的复习规划,时间都花在刀刃上。

踩坑记录
坑一:模型直接答题,效果一言难尽。 一开始图省事,让模型凭自己的知识回答,结果经常瞎编、跟教材对不上。后来改成"以教材原文为检索依据 + 模型只负责讲解",才稳下来。教训:教材才是标准答案,别让模型当主角。
坑二:笼统总分没用。 最早练习只给一个总分,用户看完还是不知道哪弱。改成按章节分别计分后,掌握度差异才真正看得见。
坑三:隐私这关不能省。 学习数据太私密,一开始就定死:教材和对话全在本机 SQLite 里处理,不上传任何第三方;API Key 只存在本机;数据目录安装时可自选,跟程序分离,卸载后保留。
验证通过 & 现状
目前 v0.1.0,桌面版有 Windows 安装包开箱即用,也能 python server.py 直接起;模型自己填 API Base / Key / 模型名,有一键测试连接。各章节掌握度、得分趋势、不同课程之间的对比,集中在一个统计页:

说句实话,现在功能还很糙,离"好用"还有距离,但方向我认为是对的——AI 横着走的年代,最值钱的不是"知道",而是"会学"。工具再强也只是放大器,舵得自己握着。
写在最后
做这个工具,算是一次不大的尝试,也接触到不少新东西。目前 v0.1.0,欢迎各位来挑刺、提 Issue。产品介绍页在这:AI家庭教师 ,想一起聊实现的,关注公众号「软趴趴的工程师」,私信"进群"就能进产品交流群。
微信公众号:软趴趴的工程师(一个乐于助人的工程师)

本文来自博客园,作者:pie_thn,转载请注明原文链接:https://www.cnblogs.com/pie-o/p/22152538

现在的 AI 已经能读万卷书、解万般题,人脑在"记住多少"这件事上确实追不上了。可工具再强也只是放大器,你自己长出来的本事,才是谁也拿不走、最踏实的保障。
浙公网安备 33010602011771号