当前位置: 首页 > news >正文

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

本周团队聚焦“院校推荐”这一核心特色功能的端到端打通,并同步完善 AI 对话与管理后台等周边能力:架构侧完成院校推荐模块设计,AI 侧落地多通道数据抓取与网页全局 AI 小助手,后端打通 Dialog 与 Admin 两大模块,前端完成院校推荐与 AI 智能匹配页面。系统从“能用”逐步走向“好用”。

一、项目总体进展

1. 架构设计与项目统筹(负责人:邵木凡):完成院校推荐模块设计——单一入口 /school/getSchool、覆盖学业背景与职业期望的 DTO、含招生统计的多层 VO,并产出接口文档与前端 UI 线框。

2. AI 模块开发(负责人:邢越):实现院校数据的 MCP 多通道抓取(官网 → 研招网 → 缓存降级)与基于知识库的网页全局 AI 小助手,并完善帖子个性化推荐与知识图谱 AI 增强。

3. 后端模块开发(负责人:王浩):完成 Dialog 模块(/dialog/text,RabbitMQ 异步 + 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 助审通过消息队列将内容发送给 AI,AI 返回结果后修改数据库 status 字段,并支持系统消息通知与动态条件查询。

4. 网页全局 AI 小助手(AI 端)

小助手接入 app_guide 模式:先在本地 APP 功能知识库做关键词检索,再让大模型基于知识库作答,并在回答末尾按固定格式输出跳转标记【跳转:/pages/xxx|按钮文字】,前端解析后渲染成可点击的跳转按钮;一次最多 3 个按钮、只引导知识库中真实存在的页面,知识库没有的功能则礼貌说明暂不支持。

5. 院校推荐前端(前端)

基于 uni-app 完成院校推荐表单页(采集本科层次、GPA、英语水平、专业排名、目标专业与院校层次等画像信息)与 AI 智能匹配结果页(展示匹配度、近三年招生情况、招生科目,以及可展开的 AI 推荐理由与院校简介),卡片化布局、交互流畅。

三、技术亮点与总结

架构决策体现工程思维:院校推荐从向量检索果断转向结构化数据评分,不盲目追逐技术热点,而选择最适合业务场景的方案。

多通道降级保证鲁棒性:MCP 数据抓取通过官网 → 研招网 → 缓存逐级兜底,保障数据获取的可靠性。

异步转同步:CompletableFuture + AIResultManager + 超时机制,兼顾系统响应性能与用户等待体验。

知识库化的 AI 小助手:RAG 检索 + 跳转标记,让助手回答聚焦于真实功能并能直接引导用户操作。

下周团队将进入联调测试与收尾阶段,向项目最终交付稳步迈进。

http://www.jsqmd.com/news/1070123/

相关文章:

  • PDFPatcher深度解析:三大架构创新如何重塑PDF处理体验
  • CBCX:把外汇投教内容建设做到位——要点解读与提示整理
  • MoneyPrinter终极指南:使用本地AI模型自动生成YouTube短视频的完整解决方案
  • Windows系统优化实战:WinUtil一键自动化管理深度解析
  • 多知识库路由:一个入口先选库再检索
  • 从零学会LangChain调用大模型!统一接口+代码实战
  • 2026年,APP依然是用户离不开的使用工具——而ASO,决定了它能否被看见
  • Redis安装指南:单机、主从、哨兵、集群模式详解
  • ABB 控制器 4LA41100102V1.3
  • HarmonyOS ArkUI 自定义跑道布局:CustomMultiChildLayout 模式深度实践
  • 如何用last30days-skill在30秒内完成全网信息调研:AI驱动的市场洞察工具完全指南
  • 如何用Powercalc的查找表策略实现精确到瓦特的智能家居能耗监控
  • Go 语言结构体详解:从定义到高级用法
  • E5071C矢量网络分析仪的工作原理
  • GEO避坑指南,蒲公英AI白帽合规运营
  • 3d云渲染多少钱?新手怎么用才更省钱?
  • 基于 Python 的手机品牌销售数据分析与可视化系统
  • 最新评估 AI 量化工具,先看概念、代码、回测、模拟
  • AI企业实际开发经验,我是如何把生产环境的意图识别准确率从 86% 优化到 97%
  • 内存池:从减少 malloc 开销到工程化内存管理
  • BOM的模块化与标准化——大规模定制的“乐高”基石
  • Home Assistant Powercalc查找表策略:终极能耗监测解决方案
  • 成都天府广场的光,藏着城市照明的升级密码
  • CSDN_Blog_Post
  • CLI 编程代理横向分析报告研究时间
  • 题解:洛谷 AT_abc463_d [ABC463D] Maximize the Gap
  • tvm cuda后端编译路径
  • iNeuOS_Doctor,一款基于人工智能在医疗领域的病情咨询及医学影像分析平台,例如CT\X光片\病理成像\诊断病历等 项目介绍
  • 从驱动到服务,DevCloud 上 ROCm 7.x 全链路部署复盘
  • 【OpenClaw】一台 Windows 主机部署双 Gateway:两个微信 + 一台主机 + 模型隔离完整踩坑实录