YZHLX/ THE OPEN LAB
未完成的实验档案
全部项目
PROJECT FILE / 01软件与工作台
已实现2026

错题复习系统

让复习发生在遗忘之前

从 PDF 和图片入库,到题目提取、复习卡片与带截止日约束的 SM-2 调度。我围绕自己的学习需求,把一条完整的复习流程接起来。

我负责
需求定义、全栈实现组织、调试与验收
协作方式
个人项目 · AI 辅助开发
技术与工具
Python / FastAPI / SQLite / JavaScript / 视觉模型 / SM-2
源码
私有仓库,仅公开摘要
错题系统复盘界面,左侧题干,右侧出处与卡壳点记录
仓库中的历史运行截图,展示复盘视图;不是当前线上状态。 点击查看原图 ↗

验证与边界

有依据的进展

  • PDF / 图片上传、文本与视觉双路径抽取、文件和题目去重
  • 四档记忆反馈、SM-2 调度、考试截止日约束与超期排程压缩
  • 7 个响应式视图;仓库包含算法、迁移、接口与前端交互测试

还没验证,或需要留意

  • 视觉识别结果需要核对,复杂版式切题仍有启发式限制
  • 抽取使用单进程后台线程,尚未引入持久化任务队列
  • 没有独立用户鉴权;部署文档要求反向代理登录门禁,本次未复验线上服务

开发记录问题、取舍与过程

从一份错题文件开始

我想解决的不是“再做一个题库”,而是让已经整理出来的错题,能在合适的时候重新出现。文件入库、识别、纠错和复习安排要连在一起,否则整理本身就会成为负担。

系统先判断材料的类型:有可靠文本层的 PDF 用规则切题;扫描件和照片交给视觉模型;对于结构清楚的错题本导出,还会直接提取单道题的图片。无法可靠分离的区域会提示核对,而不是把答案图片当成题干。

一个算法,也要服从真实的截止日

常规间隔复习追求长期记忆,但一次有截止日期的考试提出了不同要求:如果题目的下次间隔比剩余天数还长,它就再也不会在考前出现。

我把截止日作为独立约束叠加到调度器上,给所有天级间隔加上限,包括新卡毕业和“轻松”选项。已经排到截止日以后的题目,可以重新平均铺到剩余时间里。算法保留确定性,方便用测试核对每一次状态变化。

把“复盘”留给使用者

页面会记录自评、出处、知识点和卡壳点。模型可以提取印刷信息,但解题思路需要我自己填写。四档反馈会先预览实际间隔;选中反馈后,再明确保存并继续。

我在其中的工作

我定义学习流程与边界,借助 AI 编程工具组织实现,持续检查算法、数据迁移、题干预览和部署路径。我的贡献包括需求取舍、集成、问题排查与验收,不意味着每行代码都是我手写的。

目前的结果

仓库保留了可运行代码、界面截图、测试入口和服务器部署脚本。它已经形成完整的个人使用流程;模型识别的准确度、批量抽取的可靠性和公网访问保护,仍然需要分别看待。这里的项目状态来自仓库证据,没有把旧部署记录当作本次线上可用性测试。

下一次,什么时候再见?SM-2 / 交互演示

模拟一张卡片的复习。选择记忆反馈,观察下一次排期;不连接题库,不保存数据。

当前阶段新卡
模拟经过0 天
选择本次记忆反馈

点击任意反馈,开始一次模拟复习。

这份记录从哪里来

资料核对于 2026-11-12。以下是整理时阅读的文件与记录,不代表本次重新执行了源项目的硬件、部署或完整回归。

  • 项目说明与部署边界README.md
  • 确定性调度器app/scheduler.py
  • 调度与截止日回归tests/test_scheduler.py
  • 子路径回归tests/test_url_prefix.py

源仓库为私有,仅保留适合公开的摘要。内部地址、凭证、财务原文及个人计划未公开。

下一个项目智能温湿度联动控制系统