创新实训开发日志:研途Buddy(二)
对于我们的项目,当前已完成从需求拆解、方案选型到框架调试的步骤,以下是对数据库接入操作以及针对刷题模块数据采集与清洗的思路:
1. 接入MySQL数据库
考虑到业务场景的匹配以及兼容性与开发效率最优,我们选用MySQL作为项目数据库最终方案。之所以选择 MySQL,核心是贴合项目实际需求 —— 项目数据以用户信息、聊天记录、真题题库等结构化数据为主,且后端开发框架与 MySQL 适配度极高,同时 MySQL 轻量化部署、易维护的特点,也适配快速迭代、本地调试与后期部署的节奏。
首先这里本地进行 MySQL 服务的安装,手动创建项目专属数据库yantu_db来与项目业务匹配。与此同时,为保障数据安全,我们将数据库连接等敏感信息,统一配置在项目根目录下的.env 文件中,实现敏感信息与代码的隔离,既防止信息泄露,也能灵活切换开发与部署环境,提升项目的可移植性。
当前数据库接入架构已完全打通,这也适配接下来刷题模块的扩展,只需新增题库表、刷题记录表,复用现有数据库连接逻辑即可。
2. 刷题模块前置规划思路
完成基础数据库接入与环境搭建后,现阶段正式推进刷题模块的前期数据准备工作。结合项目阶段性规划,现阶段仅聚焦近十年408统考真题数据,暂时不纳入教材知识点、课堂笔记等其他功能模块数据内容,集中精力完成真题题库的搭建,保证功能迭代循序渐进。
真题数据选定与采集规划
结合 408 真题资源分布特点,优先选用专业计算机考研学习平台作为核心爬取数据源,最好要分类清晰、真题内容完整、题目格式规范,覆盖历年 408 四门统考科目选择题、简答题等全题型内容,适配我们初期题库建设需求。
采集过程中暂时考虑完整保留原始题干、选项、答案、解析、对应考点等原始信息,不做提前删减,为后续精细化数据清洗保留完整原始素材。
结构化数据清洗设计思路
原始网页抓取的数据普遍存在格式混乱、换行杂乱无效符号等问题,无法直接入库使用,因此标准化清洗是题库落地的关键。结合 MySQL 关系型数据表的存储特性,提前梳理并定义了统一的结构化数据字段规范,将零散、杂乱的网页原始数据,统一规整为符合数据库存储要求的标准表结构,确保数据入库后能实现高效管理与快速查询。
清洗工作将围绕标准化字段逐一梳理,循序渐进完成数据的规整。大致步骤为:先进行无效内容剔除,保证文本干净简洁;完成内容拆分重组;进行内容标准化统一;进行数据校准排查。
清洗后数据入库
所有真题数据完成清洗、校验、结构化整理后,依托已搭建完成的 MySQL 数据库,按照提前设计好的题库数据表结构,将进行批量入库存储。标准化的表结构设计,适配关系型数据库的存储优势。
前置数据处理链路
为支撑项目 AI 答疑功能的检索需求,我们设计了三级递进式数据处理流程,实现从结构化存储到 RAG 可用格式的过渡,兼顾数据管理效率与 AI 检索性能。
1.MySQL 结构化表:以结构化字段形式存储清洗后的真题数据,实现数据的安全、可追溯管理,同时支持按年份、科目、考点快速筛选。
2.JSON 切片数据:从 MySQL 导出数据并转换为 JSON 格式,对题干、解析等长文本进行切片处理,既便于批量处理,也为后续向量化适配做准备。
3.RAG 向量文件:将切片数据转换为向量文件与元数据文件,向量文件支持快速相似度检索,元数据则关联真题原始信息,为 AI 答疑的精准检索提供保障。
后续规划与进度闭环
当前,数据库接入已落地,刷题模块的真题数据采集、清洗与前置处理流程已明确,后续我们将逐步推进刷题模块的功能开发,重点实现题目随机抽取、分类刷题、答案匹配、解析展示等核心功能;同时对接 RAG 数据处理链路,将真题数据与 AI 答疑功能结合,为用户提供真题的知识点答疑支撑,完整闭环刷题模块的数据层与业务层开发。
