山东大学软件学院项目实训团队博客:基于AI大模型的智能考研助手(七)

山东大学软件学院项目实训团队博客:基于AI大模型的智能考研助手(七)
本周团队聚焦“院校推荐”这一核心特色功能的端到端打通并同步完善 AI 对话与管理后台等周边能力架构侧完成院校推荐模块设计AI 侧落地多通道数据抓取与网页全局 AI 小助手后端打通 Dialog 与 Admin 两大模块前端完成院校推荐与 AI 智能匹配页面。系统从“能用”逐步走向“好用”。一、项目总体进展1. 架构设计与项目统筹负责人邵木凡完成院校推荐模块设计——单一入口 /school/getSchool、覆盖学业背景与职业期望的 DTO、含招生统计的多层 VO并产出接口文档与前端 UI 线框。2. AI 模块开发负责人邢越实现院校数据的 MCP 多通道抓取官网 → 研招网 → 缓存降级与基于知识库的网页全局 AI 小助手并完善帖子个性化推荐与知识图谱 AI 增强。3. 后端模块开发负责人王浩完成 Dialog 模块/dialog/textRabbitMQ 异步 CompletableFuture AIResultManager 30s 超时与 Admin 模块11 个后台接口人工 AI 协同审核。4. 前端开发负责人王睿完成院校推荐与 AI 智能匹配前端页面模块化设计、交互流畅、体验良好。二、各模块详细进展1. 院校推荐模块架构 AI 数据院校推荐的核心问题不是技术选型而是“推什么”。最初尝试 FAISS 向量检索实测发现同一所学校的多个段落都会命中、推荐列表里重复出现同一学校且部分片段脱离了院校整体最终改为基于结构化数据的多维度评分方案院校信息全量存入 MySQL推荐时直接查库过滤与评分每所院校只出现一次结果可解释、可调优。AI 端实现 MCPSchoolCrawler 多通道抓取数据源优先级为官网直接爬取 → 研招网 API → 第三方平台预留→ 数据库缓存兜底每个通道失败自动降级官网爬取用正则从纯文本中提取电话、邮箱、地址。种子数据预置 50 所院校并用 INSERT ... ON DUPLICATE KEY UPDATE 幂等写入。后端通过 /school/getSchool 接收用户画像经消息队列转发给 AI 端返回带近三年招生趋势、招生科目与录取指标的院校列表。2. AI 对话Dialog 模块后端DialogController 通过 RabbitMQ 与 Python AI 服务异步通信采用 CompletableFuture AIResultManager 实现“异步转同步”前端只需把文本发入队列再从结果队列取回数据30 秒超时机制确保响应及时。3. 管理后台Admin 模块后端实现 11 个后台管理接口包含“人工 AI 协同”的审核机制用户封禁 / 解封、帖子与评论审核、用户 / 帖子 / 评论搜索、帖子详情查看、仪表盘统计等。AI 助审通过消息队列将内容发送给 AIAI 返回结果后修改数据库 status 字段并支持系统消息通知与动态条件查询。4. 网页全局 AI 小助手AI 端小助手接入 app_guide 模式先在本地 APP 功能知识库做关键词检索再让大模型基于知识库作答并在回答末尾按固定格式输出跳转标记【跳转:/pages/xxx|按钮文字】前端解析后渲染成可点击的跳转按钮一次最多 3 个按钮、只引导知识库中真实存在的页面知识库没有的功能则礼貌说明暂不支持。5. 院校推荐前端前端基于 uni-app 完成院校推荐表单页采集本科层次、GPA、英语水平、专业排名、目标专业与院校层次等画像信息与 AI 智能匹配结果页展示匹配度、近三年招生情况、招生科目以及可展开的 AI 推荐理由与院校简介卡片化布局、交互流畅。三、技术亮点与总结架构决策体现工程思维院校推荐从向量检索果断转向结构化数据评分不盲目追逐技术热点而选择最适合业务场景的方案。多通道降级保证鲁棒性MCP 数据抓取通过官网 → 研招网 → 缓存逐级兜底保障数据获取的可靠性。异步转同步CompletableFuture AIResultManager 超时机制兼顾系统响应性能与用户等待体验。知识库化的 AI 小助手RAG 检索 跳转标记让助手回答聚焦于真实功能并能直接引导用户操作。下周团队将进入联调测试与收尾阶段向项目最终交付稳步迈进。