基于 RAG 混合召回 + SOLO Agent 主动智能的全栈 AI 辅教系统。
上传课件 → 智能问答 → 自动测验 → 错题分析 → 主动推送薄弱章节。
5 大技术亮点,从存储到检索到主动智能,全程用 Trae 开发完成。
传统关键词检索无法理解语义——搜索"树的遍历"匹配不到"前序遍历"。 本项目加载 transformers.js 的 all-MiniLM-L6-v2 模型(384 维), 在浏览器端计算向量相似度,与自实现 BM25 混合: BM25 × 0.4 + 向量 × 0.6。 向量持久化到 IndexedDB,上传一次课件永久复用,无需重复计算。
输入问题,查看 BM25 + 向量如何各自评分并融合(点击下方问题快速体验)。
数据完全存浏览器本地,后端变为纯 LLM 代理。用户隔离,刷新页面不丢失数据。 支持级联删除(删科目 → 自动删该科目的所有资料/分块/向量/对话/错题)。 缓存 TTL 自动过期,提供一键清理面板。
PDF/DOCX/PPTX 解析、文本分块、向量计算全部丢入 Worker 后台线程。
Worker 池并发控制(Math.min(hardwareConcurrency-1, 2)),
支持任务队列、实时进度、批量取消。上传 100MB PDF 也能流畅操作 UI。
区别于被动问答工具——Agent 在用户无操作时主动分析学情并推送建议。 5 个触发器:condition → action 模式,带冷却管理避免重复打扰。 支持网页通知(Notification API)+ Toast 卡片双通道推送。
在真实应用中,这些触发器会在你答错题、复习完毕、长时间未学习时自动触发。
这里可以手动触发体验效果(右下角弹出 Toast 卡片)。
Service Worker 三级缓存策略: HTML network-first(始终最新版本,避免白屏)、 JS/CSS stale-while-revalidate(秒开)、 CDN cache-first(向量模型 23MB 下载一次永久缓存,离线可推理)。 首次加载后断网仍可访问所有已缓存页面。
浏览器端全栈架构,服务端仅做 LLM 代理(API Key 不暴露)。
全部用 Trae 开发完成,从零搭建。
React 18 + TypeScript + Vite 6
Zustand + React Router 6
Tailwind CSS + CSS Variables
react-markdown + remark/rehype
KaTeX(懒加载)
Mermaid(按需加载)
IndexedDB(9 张分表)
BM25 + transformers.js 向量
Web Worker 池
pdfjs-dist + mammoth + JSZip
DeepSeek-V4-Flash
Railway + Vercel
进入应用后,按以下步骤体验完整流程。
设置页 → 滚动到底部 → 点击"加载示例数据"。预置 4 份数据结构课件 + 测验 + 错题,无需手动上传。
对话页 → 选择"数据结构"科目 → 提问"什么是栈?和队列有什么区别?"。AI 基于课件内容回答,标注来源。
测验页 → 选择题型和难度 → 开始答题。故意答错几道,体验错题自动归档。
答错几道题后等待 3 秒,右下角会自动弹出"薄弱章节预警"卡片。点击"去处理"跳转复习。
分析页 → 点击"查看今日日报"。查看学习统计、各科目详情、薄弱知识点、明日规划,支持导出 Markdown。