企业级 RAG 问答系统开发上线流程分析

该项目从企业级应用的角度,可以划分为 四个主要阶段 :数据与知识库准备(ETL) 、核心功能开发与优化 、系统工程化与部署 ,以及测试与持续优化。


1. 📚 数据与知识库准备(ETL 流程)

此阶段重点是将企业的非结构化知识(如汽车手册)转化为可供 RAG 系统高效检索的格式。

步骤 对应项目内容 关键技术点
文档处理与解析 "先用 PyMuPdf 识别出文档块,然后利用 滑动窗口和父子文档 结合的方法,同时考虑语义感知切分对用户手册进行解析" 保证文本内容的 完整性 和 跨页连续性。这是 RAG 系统的基石。
数据存储 "并用 mongoDB 存储文本块和元数据" 非结构化数据(文本块)与结构化信息(元数据)的分离存储,利于管理和更新。
数据清洗与增强 对应项目亮点中的"对 pdf 解析后的数据用 DeepSeek 进行清洗优化" 清除杂乱、解析错误和不通顺的候选文本,保证知识源的质量。
向量化与入库 隐含步骤。将处理好的文本块转化为向量。 对应后续检索使用的 Qwen3-Embedding 或 BGE-M3 等 Embedding 模型。

2. 🧠 核心功能开发与优化(RAG 架构实现)

此阶段是实现问答系统的核心逻辑,确保能准确检索和高质量生成答案。

步骤 对应项目内容 关键技术点
混合检索策略实现 "采用 多路召回策略 ,使用 Dense 召回(Qwen3-Embedding),Sparse 召回(BGE-M3)" 结合语义匹配(Dense)和关键词匹配(Sparse),提高检索的召回率。
召回结果融合 "Milvus 实现向量检索,同时用 RRF 做粗排" RRF(Reciprocal Rank Fusion) 融合不同召回结果的排名,得到更优的初步候选集。
重排(Re-rank) "BGE-Reranker 做精排" 对粗排后的候选集进行更细致的排序,选出最相关的几条文档,交给 LLM。
LLM 答案生成 "结合 LLM 、大型模型微调和提示工程,优化知识库结构和检索生成流程" LLM 结合重排后的文档片段和用户提问,生成自然、准确、快速的回答。
附加能力实现 "问答系统支持输出答案、引用页码和关联链接 的能力" 提高答案的可追溯性 和可靠性。

3. ⚙️ 系统工程化与部署(Engineering & MLOps)

此阶段侧重于系统的性能、稳定性和可部署性,是从"Demo"走向"产品"的关键。

步骤 对应项目内容 关键技术点
模型量化加速 "对 Qwen3-8B 做 AWQ INT4 量化加速" 在不显著损失性能的前提下,减小模型大小、降低内存占用,提高推理速度。
推理服务部署 "项目工程代码做 docker 容器化 部署,并利用 vLLM 框架 对大模型进行推理" Docker 保证环境一致性,vLLM 优化 LLM 的高并发、低延迟推理。
分布式部署 "实现 8卡 A100 分布式部署,极大提升了推理效率" 满足企业级应用对**高并发(3K+ token/s)和低延迟(尾延迟降低 55%)**的要求。
API 接口封装 隐含步骤。将问答服务封装为 API 接口,供前端或其他业务系统调用。 保证系统易于集成和使用。

4. ✅ 测试、评估与持续优化(Evaluation & Iteration)

此阶段通过科学的评估确保系统质量,并规划后续迭代。

步骤 对应项目内容 关键技术点
构建评测集 "人工构造 2000 条测试集" 为系统提供一个基准的、可重复的评估标准。
制定评估指标 "采用 RAGAs 、相似度和实体键值加权评分 为评测指标" RAGAs 专注于 RAG 特有的指标(如忠实度、上下文相关性),结合业务特定指标(实体键值),进行全面评估。
基线对比 "相比用 GPT-4o+OpenAI Embeddings 外挂知识库提升 18%" 证明自研 RAG 策略相比于通用/商业方案的显著优势和价值。
数据飞轮优化 对应项目亮点中的"在输入侧做 query 的纠错、改写和扩展" 利用用户的实际 Query 数据进行数据增强,形成一个持续迭代优化的飞轮机制。

总结: 这个项目流程是一个非常典型的 企业级 RAG 研发到上线 的完整体现,它不仅关注 算法效果(RAG 策略) ,更注重 工程化(量化、vLLM、分布式部署) 和 项目价值(高并发、低延迟、高准确率),是高质量 LLM 应用的范例。

相关推荐
锋行天下11 分钟前
DeepSeek写Langgraph就是个大傻逼,一本正经胡说八道
前端·人工智能·后端
Patrick在香港20 分钟前
一个斜杠,把毫秒变成十几秒
android·数据库·python·性能优化·正则表达式·回溯·redos
2601_9679801128 分钟前
Python 初学者必备的常用内置函数
python·编程语言·内置函数·初学者·常用函数
OnlineProxy34 分钟前
移动应用数据爬取:通过模拟器与流量嗅探对 API 进行逆向工程
爬虫·python·httpx
染指11101 小时前
162.Agent-LangGraph-检查点的作用
人工智能·python·langchain·agents
ynchyong1 小时前
OpenAI 技术全景解析
openai·rag·function·guardrails
我命由我123451 小时前
访客系统形式(有用户概念、无用户概念)
java·开发语言·前端·javascript·python·产品运营·产品经理
xixingzhe21 小时前
图表中同比与环比的区别:看趋势还是看变化?
开发语言·python
forest_092 小时前
当 AI 搜索开始「自我进化」,谁来进化它的核实?——「已核实」结论复核器:3 条结论挖出 2 个洞(附可运行代码)
人工智能·python·机器学习·prompt·agi
小小张说故事2 小时前
Python 的 str 为什么设计成不可变?拆开字符串驻留、字符串池,以及 += 拼接到底慢在哪
后端·python