RAG 项目实战进阶:基于 FastAPI + Vue3 前后端架构全面重构 LangChain 0.3 集成 Milvus 2.5 构建大模型智能应用
摘要: 本文详细记录了 RAGEval-Chat 项目从 CLI 模式向现代化 Web 应用转型的 V2.0 架构升级过程。我们将深入探讨基于 FastAPI 和 Vue3 的前后端分离设计,以及 Docker 一键部署方案的实现,旨在为开发者提供一个企业级 RAG 智能问答系统的参考范例。
在之前的文章中,我们介绍了基于 LangChain 和 Milvus 构建 NFRA 智能问答系统的初期版本。随着项目需求的演进,为了提供更友好的交互体验和更强大的功能管理,我们对项目进行了大规模的重构与升级,推出了 V2.0 — Web 前后端架构版本。
本次更新不仅是界面的改变,更是底层架构的全面革新。同时,也是编程新范式(AI Coding )的尝试。AI Coding 正驱动编程从“人写代码”向“人指挥智能体”范式迁移。
开发者不再纠结“怎么写”,而是专注于描述“要什么”,用自然语言驱动AI完成编码、测试和调试。其核心演进已从辅助补全(Copilot)进入能自主规划、执行任务的Agent智能体时代。
这并非取代程序员,而是将开发者升级为“架构师+指挥官”,从语法细节中抽身,转向更高维度的系统设计与创新。未来编程将普遍呈现为“人机结对编程”的新形态。
以下是 V2.0 版本的核心架构与功能详解。
1. 整体架构设计
V2.0 版本彻底摒弃了原有的命令行交互方式,采用了目前主流的前后端分离架构,技术栈组合为 FastAPI (后端) + Vue 3 (前端) + Milvus (向量数据库)。
- 后端 (FastAPI): 负责业务逻辑处理、RAG 核心链路(检索、生成)、以及与 Milvus 和 LLM 的交互。
- 前端 (Vue 3): 提供直观的可视化界面,支持用户进行知识库管理、对话交互及评估报告查看。
- 基础设施: 依赖 Docker 进行环境隔离与部署,包含 Milvus、etcd 和 MinIO。
为了方便开发者和用户快速上手,提供了 Docker Compose 一键部署方案。通过一条命令即可启动包含 Milvus 向量数据库、后端 API 和前端页面的完整环境,极大地降低了环境配置的复杂度。
2. 核心功能模块详解
V2.0 版本围绕“知识库管理”、“智能对话”和“检索评估”三大核心场景进行了深度的功能打磨。
2.1 流式对话与 RAG 检索链路
这是系统的交互核心。我们实现了基于 SSE (Server-Sent Events) 的流式对话,用户可以像使用 ChatGPT 一样逐字查看 AI 的回复,体验丝滑。
- 核心流程: 用户提问 →→ Milvus 混合检索 (稠密+稀疏) →→ 召回 Top-K 文本块 →→ 拼接上下文 →→ LLM 生成回答。
- 引文溯源: 在对话过程中,系统不仅会给出答案,还会在右侧滑出抽屉展示检索到的原文片段,并附带相似度分数和来源文件名,让回答“有据可依”。
2.2 知识库 CRD (增删改查) 管理
为了让知识库的管理更加高效,我们设计了完整的可视化配置流程:
- 创建轻量化: 创建知识库仅需填写名称、描述并选择嵌入模型。
- 详情页向导: 采用四步向导模式(文档管理 →→ 切分设置 →→ 索引配置 →→ 提交处理)。
- 灵活的索引配置: 支持 IVF_FLAT、IVF_SQ8、HNSW 等多种密集索引类型,用户可以根据数据量大小和性能需求自定义参数(如 HNSW 的 M 和 efConstruction)。
- 异步处理: 支持上传 PDF、DOCX 等多种格式文档,后台自动进行异步处理与状态轮询,避免页面卡顿。
2.3 检索质量评估体系
为了保证 RAG 系统的效果,V2.0 版本内置了强大的评估模块:
- 数据集管理: 支持上传
.xlsx格式的测试集文件(包含问题、标准答案、来源)。 - 多维度评估: 选择知识库和测试集后,系统后台自动执行评估,计算 Recall@K (召回率) 和 MRR (平均倒数排名) 等关键指标。
- 报告可视化: 评估结果以表格形式展示,支持查看逐题详情(如是否召回、排名、匹配文本),并支持 CSV 导出,方便进行数据分析与对比。
3. 总结与展望:从“能用”到“好用”的质变
回顾 RAGEval-Chat V2.0 的架构升级,我们不仅完成了从 CLI 到 Web 的形态跨越,更重要的是,我们构建了一套可量化、可观测的 RAG 质量评估体系。
在以往的 RAG 开发中,开发者往往面临一个困境:模型的回答是好是坏,很难通过数据来证明。 而 V2.0 版本的核心亮点,就在于它不仅仅是一个功能堆积的系统,更是一个RAG 效果的“体检中心”。
为什么评估模块至关重要?
在 V2.0 中,我们不再盲目信任检索结果,而是引入了科学的评估指标:
- 数据驱动优化: 通过上传包含“标准问题”和“标准答案”的测试集(Excel 格式),系统能自动运行评估任务。这让我们能直观地看到,当调整切分策略(Splitter)或索引参数(Index Config)时,Recall@K(召回率) 和 MRR(平均倒数排名) 是如何变化的。
- 问题精准定位: 评估报告不仅提供冷冰冰的数字,更提供可视化的逐题详情。你可以清晰地看到哪些问题检索失败了,是召回的文本块不相关,还是相关块排名太靠后。这种透明度是优化提示词(Prompt)和检索器(Retriever)的基础。
- 工程化落地: 支持 CSV 导出和后台异步运行,意味着这套评估流程可以无缝集成到你的 CI/CD 流程中。每一次代码提交,都可以自动触发一次评估,确保模型效果不会随着迭代而“退化”。
4. 未来展望
展望未来,RAGEval-Chat 的演进方向将更加聚焦于“自动化”与“智能化”:
- 自动化参数调优: 基于当前的评估模块,未来计划引入自动化实验功能。系统将自动尝试不同的
chunk_size(块大小)和top_k(召回数量),并根据评估指标自动推荐最优参数组合,彻底解放开发者的手动调参工作。 - 多模态检索评估: 随着多模态模型的发展,未来的评估将不仅限于文本,还将扩展至图片、表格等混合内容的检索评估。
- A/B 测试能力: 我们计划在前端增加 A/B 测试面板,允许用户同时对比不同模型(如 DeepSeek 与 Qwen)或不同检索策略在同一问题集上的表现,让技术选型有据可依。
RAG 的优化是一场持久战,而 V2.0 提供的不仅仅是一套代码,更是一把衡量效果的“尺子”。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)