面向高校学生事务咨询的知识库问答系统:校内制度文档切分入库,学生用自然语言提问,系统先检索最相关条款、再基于资料作答并给出引用来源;资料不足时明确说明并记录未命中问题。三层兜底(敏感词 / 检索阈值 / 接口异常降级)控制幻觉,未配置大模型密钥也能离线运行(检索模式)。
视频也可在 B 站视频页 观看
| 编程语言 | 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 |
下面是交付包里的真实目录,共 88 个文件。只展示文件名,不含文件内容; 点击文件夹可逐层展开,看到每个模块是怎么拆分的。
点击任意一张可放大,支持左右切换(也可用键盘 ← → 键)










交付的任务书、开题报告与论文均为 Word 文档,下面是真实页面预览;点击可放大并左右切换:



能。交付包里已带数据库(演示知识库 + 问答记录),安装依赖后双击一键脚本即可,不需要任何外部服务。
能。系统默认使用检索模式:直接引用知识库条款作答并标注来源,离线可用。配置 LLM_API_KEY 后自动切到大模型模式(基于检索资料生成,同样标注来源)。
提示词强制「只依据给定资料、不得编造、资料不足必须说明」,并有三层兜底:敏感词固定话术、检索低于阈值引导换问法、接口异常自动降级。抽查 30 条回答未出现无依据信息。
命中的 FAQ 条目或文档片段(含文档标题、段落序号与相关度分数),学生可据此核对原文。
用自建测试集标定:20 条相关问题与 14 条无关问题。阈值 5.5 时相关问题 20/20 命中、无关问题 0/14 误命中,故取为默认值。
系统会把低于阈值的问题记入「未命中问题」并按次数累计,学生点踩的留言也进入该清单;管理员补充 FAQ 或文档后,再问原问题即可命中。
演示知识库为整理的校园制度 FAQ 与文档节选(录入数据,通用口径),管理员可在页面自由增删改;论文与使用说明中已如实说明。
能。设置 DB_ENGINE=mysql 与连接参数后 migrate 即可;交付默认 SQLite 是为了免安装。