简介:本文系统定义企业级知识库问答中的RAG混合架构——以应用编排框架为业务主干、以深度文档解析引擎为知识底座、通过API松耦合集成的双层方案,并拆解其核心组成、运行原理、典型场景与部署注意事项,帮助读者理解两类主流开源框架的优势互补逻辑,完成从“二选一”到“组合使用”的选型升级。
一、概念定义:什么是RAG混合架构
RAG(Retrieval-Augmented Generation,检索增强生成)混合架构,是一种面向企业级知识库问答的集成方案:把“应用编排”与“深度文档解析检索”两类能力,分别交给各自擅长的系统承担,再通过标准化接口将两者组装成一个整体的双层架构。其中:
一句话概括:前者决定“业务流程怎么跑”,后者决定“知识从哪里来、怎么找”。两层独立部署、独立升级,仅通过接口契约连接——这就是“混合”的本质:不是功能的简单叠加,而是关注点的解耦。
此外,这一经典的双层组合并不封闭。企业可按业务场景继续叠加其他开源RAG框架(例如面向不同检索策略或轻量场景的检索框架),形成“一主多辅”的知识底座。
二、背景与价值:为什么会出现混合架构
企业在落地RAG知识库问答时,通常会同时遇到三类矛盾:
由此可提炼出一条通用的选型经验:
混合架构的核心价值正在于此:用编排框架的Agent与工作流能力承载复杂应用的构建;用解析引擎的深度文档处理能力保障知识召回的质量;以API集成为纽带保持系统的灵活性与可扩展性,避免被单一技术路线锁定。
三、核心组成:混合架构的三大模块
3.1 应用编排层
这一层的典型能力包括:
3.2 深度文档解析层
这一层的典型能力包括:
3.3 接口集成层
两层之间依靠接口集成层衔接,它是整个架构的“契约”,至少要约定:鉴权方式(如何安全调用知识库服务)、检索接口(输入问题、知识库标识、返回条数,输出召回片段、引用位置与相关度分数)、可靠性语义(超时、重试、限流与错误码)。
四、工作原理:混合架构如何运行
4.1 端到端调用链
一次典型的问答请求会经历如下步骤:
其调用逻辑可用伪代码示意:
# 伪代码:混合架构下的问答调用链def answer(question):intent = agent.analyze(question) # 编排层:意图识别与路由if intent.need_knowledge:chunks = rag_api.retrieve( # 接口调用:解析引擎检索dataset = intent.dataset, # 目标知识库query = question,top_k = 5,)prompt = build_prompt(question, chunks)else:prompt = build_prompt(question)return llm.generate(prompt) # 编排层:生成与流式返回
4.2 关键机制:检索路由
混合架构把“选择知识库”的决策放在编排层。这种设计让多个知识库、多种检索策略可以在同一个对话流程中被统一调度,而无需把路由逻辑硬编码在某个引擎内部,这正是跨知识库检索能力的价值所在。
4.3 部署形态与端口规划
两个框架通常都推荐以容器化方式部署。当它们被部署在同一台宿主机上时,端口冲突是最先要处理的问题。这里先厘清一个基础概念:
在容器端口映射的通用写法 A:B 中,A 代表宿主机端口,B 代表容器内部端口。因此,80:80 表示将宿主机的80端口映射到容器的80端口,443:443 同理。一般而言,容器内的80端口用于处理HTTP请求,443端口用于处理HTTPS请求。
据此,推荐的修改原则是:只改宿主机端口,不动容器端口。例如将 80:80 调整为 8080:80,即外部统一从宿主机的8080端口进入,再转发到容器内部依旧监听的80端口。原因有二:
同理,HTTPS端口也应遵循同一原则:宿主机侧改用其他高位端口,容器侧保持443不变。
五、典型场景:哪些情况适合混合架构
六、相关概念区别:容易混淆的几组概念
七、使用注意事项
八、总结
回到定义本身:RAG混合架构,是以应用编排框架为业务主干、以深度文档解析引擎为知识底座、通过API松耦合集成的双层企业级知识库问答方案。它的出现,源于“复杂文档”与“复杂流程”往往同时存在于企业真实场景,而单一框架难以两头兼顾。
它的适用边界同样清晰:场景简单时,单框架仍是更经济的选择;当解析深度与编排复杂度同时成为硬需求时,混合架构通过“各取所长、接口集成”的方式,把两类框架的优势组合成一个可扩展的整体——这正是企业级知识库问答从“能用”走向“好用”的一条务实路径。