VicroCode
让代码创造价值
VicroCode是一个轻量级代码在线发布、交易平台,开箱即用,免部署、免服务器、免备案,支持接入智能体、通用管理系统、游戏等多种项目
稍候片刻,您可先学习AI编程手册
正在加载中...

AI MARKET GUIDE

看着荣耀学习空间的「学情分析」,我用一个下午拼了个家庭版习题讲解小页面

荣耀学习空间把习题辅导和学情分析报告做进了系统,我没那么大盘子,就想给自家娃搞个能录错题、自动出讲解、再来张可视化小结的网页。这篇复盘我怎么把需求砍到最小,前端 HTML、后端 Python、模型 API 怎么衔接,以及讲解质量飘忽时踩的坑。

起因:一条系统适配新闻勾出来的念头

前几天刷到荣耀学习空间手机版要适配 MagicOS 11 的消息,说是 9 月 15 日起相关机型陆续开放升级。我本来没太在意,直到看到官网列的功能清单:内置习题辅导、支持切换学科、创建学习任务、查看学情分析报告。

前面那些我够不着,但「习题辅导 + 学情分析报告」这两个词一直在脑子里转。

道理很简单,我家娃平时做错的题,我基本靠拍照发家庭群然后手打讲解,效率极低,讲完还没个记录。大厂能把这套做进系统,我一个人肯定做不了那种量级。

但我想的不是复刻,而是抠出最小那一块:录入错题 → 自动生成一段讲解 → 攒够几道题出一份可视化小结,能直接丢给爱人和老人在手机上打开就行。

就这么点事,我给自己定了个下午的时间盒。做不完就砍功能,不允许延期,免得又变成一个永远躺在收藏夹里的「以后再说」。

先把需求砍到只剩一根主线

我一开始的草稿其实很膨胀:想要学科分类、想要按知识点打标签、想要错题本导出 PDF、还想搞个家长和孩子分别登录。写到第四条我就停了,这明显是给自己找罪受。

于是狠心删。最后留下的主线只有三步:一个能填题目和孩子答案的表单、点一下出讲解、页面下方累计一个简单的统计条(做了几道、涉及哪些学科)。

别的全砍。登录不要,先固定给自己家用;PDF 不要,家人能在浏览器里看到就够;知识点标签也先不做,让用户手填一个「科目」字段顶着。

这里我想强调一句,独立开发者跟荣耀那种功能清单最大的差别不是技术,是取舍的自由度。人家要覆盖全学龄全学科,我只要覆盖我家一个娃。

把范围缩到这么小,一个下午才有可能收尾。

前端:一个能直接跑起来的 HTML 页面

界面我没上任何框架,就是一个纯手写的 HTML 表单,三个输入框(题目、孩子的答案、科目)加一个提交按钮,下面留一块区域显示返回的讲解,再下面一条统计。样式随便对付,反正是家里人用。

我把这个页面直接放到平台上用HTML在线运行边写边看效果,改一行刷新一下,省去了本地起服务的那点麻烦。对我这种只想快速验证交互的场景,这一步体验挺关键——我不用先纠结环境,先把「点了按钮有没有反应」这条路走通。

表单提交我用最土的办法,fetch 把三个字段 POST 到后端一个接口,拿到 JSON 再塞进页面。没搞什么状态管理,一个函数从头写到尾,能读懂就行。

后端:Python 把数据接住、调模型、再存下来

后端逻辑我全交给 Python。它干三件事:接住前端传来的题目和答案、组织提示词去调用平台模型中心的 API 拿讲解、把这一条记录写进 SQLite。

写数据处理和拼接请求这段,我基本是靠Python在线运行一小段一小段试出来的。比如返回的文本怎么切、异常怎么兜、字段缺了怎么给默认值,我都是先跑个几行看输出对不对,再往主逻辑里合。

这种即写即验的方式,对一个人干活来说太省心了,不用为了看一个变量的值专门起一整套工程。

模型调用我走的是平台模型中心的 API,把「你是小学阶段的家庭辅导老师,请针对下面这道题和孩子的错误答案,给出通俗的讲解和一个类似的练习题」这类指令连着题目一起发过去。存储用 SQLite,一张表,字段就是时间、科目、题目、答案、讲解,够我做统计了。

统计条也是从这张表里 count 出来的,谈不上什么可视化,但「本周做了 12 道、语文 5 道数学 7 道」这种信息,家里人一眼能看懂就达到目的了。

把后端逻辑挂成一个可被前端调用的接口这件事,平台的 API 端点托管帮我省了不少事,我不用自己去操心服务器怎么常驻。

踩的坑:讲解质量飘,是这个下午最难的部分

真正卡我的不是代码,是讲解质量不稳。同一道题,我连着请求三次,有一次讲得挺清楚,有一次直接把答案报出来就完了,还有一次自作主张改了题目条件。

给大人看无所谓,给孩子看,这种忽好忽坏是要命的。

我试了几轮才慢慢摸到门道。第一,提示词里必须明确说「不要直接给最终答案,要一步步讲思路」,否则它很爱偷懒。

第二,我强制它输出固定的三段结构:错在哪、正确思路、再做一道类似的。有了结构约束,输出稳定多了。

第三,我把孩子的错误答案也一起喂进去,让它针对错误点讲,而不是泛泛复述知识点,这一步讲解的针对性肉眼可见地上来了。

还有个小坑是科目字段。我一开始让用户随便填,结果有人填「数学」有人填「算术」,统计就乱了。

后来我在前端改成下拉选择,几个固定选项,这类脏数据一下就没了。这种小地方,恰恰是自己用才会发现的。

必须说清楚一点:讲解到底准不准、对孩子学习有没有实际帮助,这个我没有做过任何严肃评估,属于**待核实**。它现在的定位就是帮我省掉手打讲解的力气,家长自己还是得把一眼关。

收尾:托管发布,让家人直接能用

下午快结束的时候,我把整个页面通过Web应用托管发布出去,拿到一个链接,直接甩进家庭群。爱人在手机上点开就能录题,老人也能看讲解,不用装任何东西。

对我来说,这一步才算真的「做完」——不是代码跑通,而是身边的人真的用起来了。

有了托管这个出口,后面想扩也有方向。比如错题攒多了,我在考虑用平台的 LanceDB 知识库把讲解做成可检索的,下次遇到相似题先翻旧账;再往后如果真做出点门道,项目本身也支持分享和变现,不排除整理成给其他家长用的版本。

不过这些都是后话,我没急着上,免得又把需求撑爆。

给同样想动手的人几句实在话

回头看,这事能在一个下午收尾,靠的不是技术多牛,而是三点:需求砍得够狠、前后端各司其职别互相拖、以及承认自己搞不定的部分(比如讲解质量)就用约束去兜,而不是死磕完美。

HTML 页面负责交互、Python 负责数据和调模型、模型 API 出内容、SQLite 存记录、托管发布让人能用——这就是一个能自己转起来的最小闭环。大厂把它做成系统级功能是一码事,你我把它做成一个家里能用的小页面,是另一码事,后者其实一个人一个下午就够了。

真别一上来就想着做平台。先做一个只服务你自己、你家人的小东西,跑通了、被真实使用了,再谈扩展和变现,心里会踏实很多。