基于大模型接口的校园智能问答系统-毕业设计
介绍
面向高校学生事务咨询的知识库问答系统:校内制度文档切分入库,学生用自然语言提问,系统先检索最相关条款、再基于资料作答并给出引用来源;资料不足时明确说明并记录未命中问题。三层兜底(敏感词 / 检索阈值 / 接口异常降级)控制幻觉,未配置大模型密钥也能离线运行(检索模式)。
校园事务咨询具有高频重复、答案分散、口径必须准确三个特征,通用大模型虽然表达流畅,却不了解本校规定,直接使用容易编造时间、地点与金额。
针对这一问题,本项目设计并实现了一套基于大模型接口的校园智能问答系统,采用检索增强生成(RAG)路线:制度文档按段切分为检索片段(每段约 160 字符、相邻重叠 40 字符),高频问题整理为标准 FAQ(问题、答案、关键词),检索层以 jieba 分词与 TF-IDF(BM25-lite)打分实现,并对字段加权(文档标题 1.3、FAQ 问题 1.4、FAQ 关键词 1.0、字面关键词命中每词 +0.8),在 20 条相关问题与 14 条无关问题的自建测试集上,阈值取 5.5 时相关问题命中 20/20、无关问题误命中 0/14。
生成层通过 OpenAI 兼容接口调用大模型,提示词强制「只依据给定资料、不得编造、资料不足须明确说明」,回答正文附引用来源卡片并保留相关度,可逐条核对原文。
系统设计了三层兜底——敏感词固定话术、检索低于阈值时引导换问法并记录未命中问题、大模型接口异常时自动降级为检索模式;未配置密钥时系统直接以检索模式运行,离线可用且不产生幻觉。
未命中问题与学生的赞踩反馈共同构成知识库改进闭环,管理员可在页面上补充 FAQ 或文档。
系统按学生与管理员划分权限,提供会话历史、问答记录与统计(命中率、回答方式分布、FAQ 命中排行)。
技术栈
- 编程语言:Python 3.8 及以上
- Web 框架:Django 4.2
- 分词检索:jieba + 自研 TF-IDF(BM25-lite),纯 Python、可解释
- 生成(可选):OpenAI 兼容大模型接口(配置 LLM_API_KEY 启用;未配置时用检索模式)
- 数据库:MySQL 5.7 及以上(交付默认 SQLite,免安装)
- 可视化:ECharts 5(已内置本地文件,离线可用)
- 操作系统:Windows / macOS / Linux
- 启动方式:运行启动脚本,或 python manage.py runserver
功能特性
- 文档切分入库:每段约 160 字符、相邻重叠 40 字符,避免条款被切断;片段带分词缓存
- 可解释检索:jieba 分词 + TF-IDF(BM25-lite)+ 字段加权,给出相关度分数
- 阈值标定:20 条相关问题命中 20/20、14 条无关问题误命中 0/14(阈值 5.5)
- 两条回答通道:检索模式(离线可用,引用条款原文)与大模型模式(基于资料生成)
- 三层兜底:敏感词固定话术 → 检索低于阈值引导换问法 → 接口异常自动降级为检索
- 引用溯源:回答附来源卡片(文档标题 / 段落 / 相关度),可逐条核对原文
- 闭环改进:未命中问题自动累计、赞踩反馈进入同一清单,补充知识库后即可命中
- 问答统计:命中率、回答方式分布、FAQ 命中排行、负面反馈明细、问答记录
数据与实验结论
- 文档切分入库:每段约 160 字符、相邻重叠 40 字符,避免条款被切断;片段带分词缓存
- 可解释检索:jieba 分词 + TF-IDF(BM25-lite)+ 字段加权,给出相关度分数
- 阈值标定:20 条相关问题命中 20/20、14 条无关问题误命中 0/14(阈值 5.5)
视频
011 基于大模型接口的校园智能问答系统-设计展示
运行截图










文档预览



小结
整套实现把数据采集、口径校验、业务功能与结果可视化串成一条可复现的链路:所有统计结论都能追溯到原始数据,实验过程与取舍在文档中逐条说明。上方的演示视频按「首页 → 核心功能 → 数据结论」的顺序录了一遍,配合本文的技术栈与功能列表,可以较快判断这套方案是否适合自己的选题方向。
更多推荐
所有评论(0)