1. 项目背景
在考研和升学的漫漫长路上,信息不对称、错题整理效率低、缺乏科学规划是困扰许多学生的痛点。为了解决这些问题,拾学AI (ShiXue AI)应运而生。
“拾学”,寓意“重拾学习的热情,拾起遗漏的知识”。这是一个融合了Django、Vue 3和大语言模型 (LLM)技术的全栈项目,致力于通过 AI 技术让学习变得更简单、高效。
2. 技术架构概览
本项目采用主流的前后端分离架构,并深度集成了多种 AI 服务。
前端 (Frontend)
核心框架: Vue 3 (Composition API) + TypeScript
构建工具: Vite
UI 组件库: Element Plus
状态管理: Pinia
路由管理: Vue Router
后端 (Backend)
Web 框架: Django 5.2
API 框架: Django REST Framework (DRF)
数据库: MySQL
身份认证: JWT (JSON Web Token)
任务调度: Celery (可选扩展)
AI 与第三方服务集成
LLM 基座: Moonshot AI (Kimi) - 提供智能对话与逻辑推理。
OCR 识别: Aliyun Dashscope (Qwen-VL) - 实现图片转文字,用于错题录入。
语音交互: Baidu AI Cloud - 支持语音输入,提升交互便捷性。
工作流编排: Dify - 编排复杂的 AI 智能流,处理长上下文与多步推理。
基础设施: SMTP 邮件服务 (验证码)、Python-pptx (自动化生成报告)。
3. 核心功能亮点
3.1 智能问答助手 (Smart QA)
不仅仅是简单的聊天机器人。我们利用Streaming Response (流式响应)技术,实现了类似 ChatGPT 的打字机效果,大幅降低了用户的等待焦虑。支持语音输入,让提问像聊天一样自然。
3.2 智能错题本
传统的错题整理需要手抄或剪贴,效率极低。拾学AI 支持上传错题图片,后台自动调用 OCR 识别文字,并结合 LLM 分析错题原因、生成解析,一键保存至云端。
3.3 激励型用户中心
除了基础的个人资料管理,我们特别设计了可视化打卡系统。后端采用 JSON 字段存储打卡日期,前端通过自定义`el-calendar`组件展示,让每一天的坚持都清晰可见。
3.4 模考与择校
模考中心支持上传试题文件,AI 自动解析并模拟考试环境。基于模考分数,系统会生成多维度的择校报告,帮助用户精准定位目标院校。
4. 开发挑战与解决方案 (Troubleshooting)
在开发过程中,我们遇到并解决了许多实际问题,以下是几个典型案例:
挑战一:Token 认证与文件下载
问题:模考中心的“下载附件”功能是通过点击链接触发的 GET 请求,无法像 AJAX 请求那样自动在 Header 中携带 JWT Token,导致下载被拦截。
解决:
1.后端改造:修改`JwtAuthMiddleware`,使其支持从 URL 查询参数 (`?token=xxx`) 中提取 Token。
2.前端适配:在生成下载链接时,自动将当前的 Token 拼接到 URL 后面,确保权限验证通过。
挑战二:全栈功能的落地
问题:初期只有前端界面,邮箱注册和打卡功能均未对接后端。
解决:
邮箱:实现了`SendEmailCodeView`,集成 SMTP 服务,利用 Django 缓存系统处理验证码的存储与过期校验。
打卡:设计了轻量级的 JSON 数据结构存储打卡记录,避免了创建冗余的关联表,同时保证了查询效率。
挑战三:环境配置冲突
问题:前后端联调时,经常遇到 8000/5173 端口被占用。
解决:编写了自动化检测脚本,配合 Vite 的自动端口切换配置,并熟练使用`taskkill`清理僵尸进程,保证了开发环境的稳定性。
5. 总结与展望
“拾学AI”是一个典型的 AI Native 应用探索。它证明了即使是小团队,利用现有的开源框架 (Django/Vue) 和强大的 AI API,也能快速构建出解决实际痛点的产品。
未来,我们将继续探索:
更深度的 AI Agent:让 AI 主动规划学习路径。
社区化功能:通过错题共享和经验交流,打造更有温度的学习社区。