Go AI实战 | 《工业级RAG系统与Agent应用开发实践》
🌟 拒绝只停留在聊天 Demo,用完整项目练习企业知识库的工程链路。
线上体验入口当前暂停。不要向证书失效、未启用 HTTPS 或来源不明的站点提交模型密钥;请优先在本地或受控测试环境完成配置与验证。
来源与当前范围
- 原始来源:本页公开说明的基础是 GoFrame、Eino、MCP、Vue 3、MySQL、Elasticsearch 与 Qdrant 等公开技术栈。
- 教学与工程化改造:页面展示数据导入、切片、混合检索、权限过滤、引用、评估、部署与可观测性等工程实践方向。
- 个人贡献边界:学员只能将本人实际完成、验证并能够解释的代码、测试、文档和项目表达写入简历。
- 当前范围:线上体验入口当前暂停;页面描述的是项目实践与验收口径,不把未核验功能写成已交付事实。
❓ 为什么选择这个项目?
市面上的 RAG 教程大多停留在 LangChain 的简单 Demo,而企业级落地往往面临:大文件解析慢、检索不准确、幻觉严重、权限管理复杂 等痛点。
本项目基于 GoFrame + Eino + MCP 打造,目标是展示从文档导入到检索、生成、权限和运维的完整工程实践。是否满足特定组织的生产或商用要求,仍需按真实数据、容量、安全、合规和验收标准验证。
企业知识库与 Agent 工作台项目总览
项目不是把向量数据库接到聊天框,而是把离线索引、在线查询、管理后台和 Agent 工具接入拆成可独立观测与演进的边界:
文档源 -> 导入任务 -> 解析/清洗 -> 切片 -> Embedding
-> Qdrant 向量索引
-> Elasticsearch 关键词索引
用户/Agent -> 鉴权 -> 查询改写 -> 权限过滤下的混合召回
-> 融合/重排 -> 上下文与引用组装 -> LLM -> SSE/API
管理后台 -> 知识库/文档/权限/任务/评估/发布版本
观测系统 -> 请求、检索、模型、引用、成本与审计事件MySQL 保存知识库、文档、任务和权限等业务元数据;搜索与向量组件保存可重建的派生索引。源数据、业务元数据和索引的职责需要分开,不能把向量库当成唯一事实来源。
项目适合已掌握 RAG 完整工作原理,希望把后端经验迁移到 AI 工程的人。作品集规划与项目验收可以从 AI 项目作品集开始。
混合检索:并行召回、融合与降级
向量检索适合语义相近表达,BM25 适合产品名、错误码和精确术语。项目通过并行召回和 RRF 融合得到候选,再按业务需要去重或重排,但不预设“混合检索必然更准”:
- 查询服务携带可信租户、用户和角色上下文。
- 向量与关键词两路使用相同资源范围执行过滤。
- 结果按稳定文档/Chunk ID 融合,保留各路排名和版本。
- 重排只处理已授权候选,并保留超时与部分失败原因。
- 根据上下文预算组装证据;证据不足时返回无答案或降级结果。
候选数量、融合参数和是否启用重排都应由固定评估集、延迟与成本共同决定。实现原理和排障顺序见 RAG 检索不准怎么排查。
权限过滤:模型不能替服务端做授权
知识库、文档和 Chunk 都应关联租户与访问策略。JWT 只证明调用身份的一部分,服务端还要把身份映射为当前资源权限:
- 管理接口和查询接口使用同一授权事实来源,避免“后台看不到、聊天却能搜到”。
- 过滤条件同时进入 Elasticsearch、Qdrant、缓存和后续重排;不能只在生成 Prompt 中要求模型保密。
- 权限变化和文档删除要传播到全部派生索引,旧缓存与分享引用也应失效。
- 审计记录保留发起者、知识库、过滤策略版本、候选 ID 和最终引用,但默认不保存完整敏感正文。
- 回归集包含跨租户、已撤权、已删除和 Agent 工具调用等负向样例。
若某个检索后端无法可靠表达权限条件,应先缩小候选范围或更换架构,而不是接受“召回后让模型忽略”。权限正确性优先于召回数量。
引用链路:从 Chunk 回到授权原文
每个 Chunk 保留 document_id、文档版本、标题路径、页码或字符定位、来源 URI 和访问范围。生成阶段只允许引用本次请求的授权候选,并在返回前校验:
- 引用 ID 是否对应真实候选,而不是模型生成的字符串。
- 文档版本和定位是否仍然有效。
- 当前用户是否仍有访问来源的权限。
- 引用片段是否支持相邻陈述;不支持时删除陈述或返回证据不足。
前端点击引用时再次鉴权。这样“答案带引用”才成为可审计链路,而不是装饰性的文件名。
评估、观测与生产发布
项目证据应覆盖检索、生成、权限和系统表现。离线评估集记录问题、预期证据、访问上下文和业务审核状态;线上通过 request ID 关联检索版本、引用错误、无答案、负反馈、延迟和 Token 用量。
发布时把应用、Prompt、模型、切片、Embedding、索引和检索参数视为一个兼容组合,先离线回归,再内部验证和灰度。质量退化、错误权限规则或依赖故障时,可停止生成、降级为授权搜索或切回上一个完整组合。详细方法见 RAG 评估、部署与可观测性和 RAG 生产化检查清单。
📚 课程大纲:7大核心模块
我们把整个项目拆解为 7 大核心模块,覆盖从环境搭建到架构设计,再到线上运维的全链路。
模块一:全栈环境与快速启动
- 基础设施一键拉起:详解
docker-compose.yml编排,MySQL 8.0 + Elasticsearch 8.x + Qdrant 三大中间件的生产级配置。 - 配置文件工程化:深入解析
config.yaml分层配置体系(本地/开发/生产环境隔离)。 - 全链路闭环:从前端上传 PDF,到后端异步切片,再到向量入库,全流程体验 RAG 核心链路。
模块二:后端架构与设计模式
- MVC 分层架构:接口层 (
api/) 与业务层 (internal/) 的严格边界,核心领域模型的设计原则。 - 依赖注入与中间件:基于 GoFrame 的全局中间件设计(CORS、鉴权、日志链路追踪)。
- 数据库模型设计:ORM 高级用法,一对多关联(知识库 -> 文档 -> 切片),软删除与审计字段维护。
模块三:RAG 核心引擎深度开发 (🔥核心)
- 文档处理流水线 (Pipeline):
- 解析器扩展:支持
.md,.pdf,.xlsx多种格式。 - 切片策略:定长切片 vs 语义切片实现。
- 解析器扩展:支持
- 混合检索 (Hybrid Search):
- 向量检索:Qdrant 连接池与 Filter 过滤策略。
- 关键词检索:Elasticsearch BM25 倒排索引实战。
- RRF 结果融合:手写 Reciprocal Rank Fusion 算法,并用评估集比较融合前后的逐案例结果。
- 异步任务编排:利用 Eino Graph 实现 DAG(有向无环图)任务调度,解决大文件上传超时问题。
模块四:MCP 协议与 AI 生态集成
- MCP 协议原理:深入解析 Model Context Protocol,链接 Claude 和 Cursor。
- AI Agent 工具箱:编写
mcp.go,将“知识库检索”注册为 MCP Tool,让 Claude Desktop 直接读取你的本地私有知识库。
模块五:现代化前端开发实战
- Vue 3 + TypeScript 工程化:Vite 插件配置与 Pinia 状态管理。
- 极致交互体验:SSE 流式响应处理,Markdown 渲染(代码高亮、数学公式)。
- UI 组件库定制:基于 Element Plus 二次封装,打造暗黑模式管理后台。
模块六:运维监控与生产落地
- 可观测性体系:集成 Prometheus 监控请求量与延迟分布;RequestId 全链路追踪。
- 性能调优:MySQL 索引优化,Qdrant 分片策略,OOM 排查与连接池优化。
模块七:API 接口开放与生态扩展
- RESTful API 设计:
/v1/kb管理接口,/v1/chat/stream流式对话接口定义。 - JWT 认证:基于 Token 的无状态认证实现。
🛒 版本选择与权益
我们坚持丰俭由人,按需入手的原则。
🟢 基础版 (源码 + 文档)
适合人群:技术实力强的老司机,习惯收集优质源码的“松鼠党”。
- ✅ Go 后端源码 (GoFrame+Eino+MCP)
- ✅ Vue3 前端源码 (Element Plus)
- ✅ 环境搭建文档 (Docker Compose)
🟡 进阶版 (源码 + 视频 + 社群) 🔥 推荐首选
适合人群:想系统转型的 Gopher,需要视频带着一步步梳理逻辑。
- ✅ 包含基础版所有内容
- ✅ 核心干货精讲视频 (推导 RRF 算法,手画 Eino Graph)
- ✅ 专属技术交流群 (答疑/人脉)
- ✅ 生产环境踩坑复盘手册
🟣 私教版 (进阶版 + 1v1 服务)
适合人群:急需跳槽涨薪,需要专家指路和面试辅导的同学。
- ✅ 包含进阶版所有内容
- ✅ 1v1 简历深度优化 (将项目亮点植入简历)
- ✅ 1v1 模拟面试 & 复盘 (大厂视角压力面)
- ✅ 职业路径规划咨询
官方学习入口
免费学习请查看 AI / Go 学习路线图。项目实践可从 AI 项目作品集开始;页面不提供私人联系方式或二维码。
历史在线体验入口为 https://rag.wangzhongyang.com/,当前已暂停;请以本页公开说明和本地验证结果为准。