一、 立项背景与目标
随着高校毕业生人数逐年增长,国家与地方政府密集出台了大量促进就业的政策文件。然而,这些信息分散在不同部门、格式多样、条文繁杂,导致学生难以快速、准确地找到与自身情况匹配的权威解答。传统的关键词搜索和信息聚合平台无法理解学生复杂的个性化问题,更难以对政策条款进行深度解读与关联分析。
本项目旨在解决这一痛点,立项目标是研发一个基于检索增强生成技术的大学生就业知识智能问答系统。系统通过构建一个精准、全面的就业知识库,并结合先进的大语言模型,为用户提供一个能够理解自然语言、提供精准、权威且具上下文关联的“一站式”智能问答服务,有效提升大学生获取就业信息的效率与体验。
二、 软件功能与核心模块介绍
本系统主要为学生用户提供智能问答服务,其核心功能模块包括:
1. 智能问答核心模块:这是系统的交互门户。用户可通过自然语言随时提出问题,系统会即时生成结构清晰、引用了权威来源的答案,并支持多轮对话追问。
2. 知识库管理模块:作为系统的大脑,该模块负责对来源广泛的就业政策、法规和指导文件进行自动化处理。其核心任务包括文档解析与提取、向量化嵌入与向量数据库管理,确保知识内容的准确性与时效性。
3. RAG检索生成引擎:这是系统的核心技术引擎。当用户提问时,它首先从知识库中精准检索出与问题最相关的若干文档片段,然后将这些片段作为增强上下文,一并提交给大语言模型,最终生成一个精准、可靠且避免了模型幻觉的答案。
一、 整体架构与技术栈
本项目采用分层架构设计,核心是RAG流水线,整体分为数据预处理、检索与生成、应用呈现三大层,旨在构建一个高效、可靠的智能问答系统。
· 前端交互层:
· 技术栈:Streamlit
· 设计思路:选用Streamlit快速构建以数据科学应用为核心的交互界面。它能够高效地将Python脚本转化为Web应用,简化了聊天界面、用户输入框和结果展示区的开发流程,使我们能专注于核心逻辑而非前端工程。
· 核心RAG引擎层:
· 技术栈:LangChain、OpenAI Embedding API & Chat Completion API、Chroma
· 设计思路:这是系统的大脑。我们利用LangChain作为编排框架,将整个流程管道化。首先使用OpenAI的text-embedding-3-small模型将文本转化为向量,再由Chroma向量数据库进行高效相似度检索。最后,将检索到的上下文与用户问题组合,通过OpenAI的gpt-3.5-turbo模型生成最终答案。
· 数据预处理层:
· 技术栈:Python (PyMuPDF, python-docx)、LangChain TextSplitter
· 设计思路:此模块负责将非结构化的原始文档(PDF, Word)转化为结构化、可检索的知识片段。我们开发了专用的文本提取和清洗工具,并采用递归文本分割器,确保在拆分文档时能智能地保留语句和段落的完整性。
整个数据流为用户提问 → 向量化 → 向量数据库检索 → 与大模型组合生成答案 → 前端展示。
二、 我的负责模块与量化结果
我独立负责了整个系统的数据预处理层与向量数据库的构建,并主导了检索模块的优化。
1. 知识库构建:
· 任务:将超过200份、总页数近5000页的分散政策PDF和Word文档,处理并存入向量数据库。
· 结果:成功构建了一个包含逾10万条高质量文本片段的向量知识库。经过抽样校验,关键政策条款(如补贴金额、申请条件)的提取准确率从初始的约70%提升至98%以上,确保了知识源的准确性。
2. 检索优化:
· 任务:解决原始检索结果相关性不高的问题。
· 结果:通过实验对比不同检索策略,将单一相似度检索优化为“MMR混合搜索”,在保证相关性的同时增加了结果的多样性。优化后,在由50个典型问题构成的测试集上,检索结果的Top-5相关率(即前5个结果中至少包含1个强相关片段的比例)从75%显著提升至94%。
3. 性能优化:
· 任务:解决系统首次加载时间过长的问题。
· 结果:通过系统性地应用@st.cache_resource缓存向量数据 库连接和关键模型,将系统冷启动 的加载时间从~45秒缩短至~3秒, 极大提升了用户体验。