OpenRAG 是 IBM 开发的一个框架,用于构建检索增强生成 (RAG) 系统,这类系统可以把大语言模型 (LLM) 连接到文档、数据库或知识库等外部数据源。
它是一个基于 Langflow、Docling 和 OpenSearch 构建的一体化单包 RAG 平台。它提供数据处理、信息检索,以及基于检索到的信息生成答案的工具。
从根本上说,OpenRAG 是一个开源工具包,用于构建先进且具备上下文感知能力的 AI 系统,让系统能够用自己的数据来回答问题。
大语言模型仅依赖训练数据,本身无法访问私有信息或最新信息。RAG 应用通过语义搜索检索相关文档,并将其作为上下文提供给模型,从而打造信息更充分、行为更可预测的 AI 智能体。OpenRAG 提供了一整套技术栈来实现这条流水线。
典型的流水线会接收用户查询,激活检索器,由检索器执行向量搜索或混合搜索,找出相关文档。这些文档随后经过重排序,再由 LLM 依据最相关文档中的信息生成答案。
OpenRAG 可以与 IBM® watsonx.data 等企业人工智能平台集成,也可以部署在其他平台上,并支持一系列 LLM 与模型托管选项。组织可以将该框架连接到不同提供商的模型,包括托管在 IBM watsonx.ai 上的模型,也可以连接其他外部模型托管服务。
OpenRAG 框架开放且可组合,企业可以根据基础架构与治理要求,自由搭配不同的嵌入模型、搜索引擎、编排层和 LLM。
OpenRAG 面向企业生成式 AI 助手与知识系统的构建。常见的应用包括搜索文档与支持工单的客户支持助手,以及利用公司文档回答员工问题的内部知识助理。这些应用还可以包含分析工具,让用户用自然语言查询大量报告或政策。
通过将检索、索引和生成式 AI 组合成一个协同系统,OpenRAG 帮助组织部署基于自身数据的智能体应用,而不只是依赖通用模型的知识。
一种配置是全自托管架构,所有组件都运行在组织自身的基础架构内。在这种部署方式下,文档摄取工具会先解析文件并生成嵌入,检索系统托管在内部的 Kubernetes 集群上,编排工作流也在同一环境中运行。
例如,企业可以在内部服务器上运行 OpenSearch,用于索引和混合检索。也可以在本地使用 Langflow 等编排工具或其他流水线框架,并通过 vLLM、Hugging Face Text Generation Inference 等推理服务器托管开放权重语言模型。这种架构常见于对数据驻留或安全有严格要求的组织,因为所有文档、嵌入和模型推理都留在组织网络内部。
对于希望使用模型提供商托管模型的组织,OpenRAG 把检索基础架构与模型推理分离开来。在这种方式下,企业数据与向量索引仍由自己托管,而语言模型运行在托管云服务中。
例如,可以用 OpenSearch 在内部处理文档并建立索引,但把查询发送到 OpenAI API 等外部模型提供商,以调用生成式预训练转换器 (GPT) 模型,或调用 Anthropic 的 Claude 完成生成。在把请求发送给模型之前,检索结果会被拼接到提示中。这种配置让组织既能把专有数据留在自己的基础架构内,又能受益于规模庞大且持续更新的托管模型。
已经在使用 IBM AI 技术栈的组织,可以借助 IBM 的托管数据与模型平台部署 OpenRAG。在这种配置中,企业数据存储在 IBM watsonx.data 中并建立索引,而模型则通过 IBM watsonx.ai 提供,使用的是 IBM Granite 模型。
检索流水线、文档处理和智能体工作流都可以在 IBM 环境中运行,同时仍依赖 OpenSearch 等开放工具执行搜索。这种架构简化了与 IBM 治理、安全和数据管理服务的集成,对受监管行业尤为重要。
还有一种配置,是把不同组件分布在多个云环境中。例如,摄取与索引可能运行在一家云提供商上,而模型推理运行在另一个针对 GPU 工作负载优化的平台上。
检索索引可以运行在 Kubernetes 集群中,而 LLM 推理交给托管的 GPU 服务处理。在这种架构中,编排层负责协调各服务之间的调用:从搜索索引检索文档、把文档传给模型,再把响应返回给应用。
OpenRAG 也支持检索系统在推理过程中与多个服务交互的架构。在这类配置中,编排层充当智能体控制器,决定何时检索文档、查询结构化数据源或调用外部 API。
工作流引擎可能会使用 Langflow 来管理多步推理循环。在一次查询过程中,系统可能会先从 OpenSearch 检索文档、查询结构化数据系统,再多次调用语言模型,最后生成答案。这种架构支持调研分析、分析工作流或多步企业问答等复杂任务。
更轻量的配置则可用于试验或部门级部署。在这种部署方式下,开发者可以在单台机器或小型集群上运行精简的 OpenRAG 技术栈。文档摄取、嵌入生成和索引全部在本地完成,而模型由轻量级推理服务器提供,或通过 localhost 访问。这种架构适合在扩展到更大规模分布式环境之前做概念验证或开发者试验。
OpenRAG 的灵活性来自其关注点分离:文档摄取、检索基础架构、编排逻辑和模型推理都可以独立部署。这种模块化设计让组织能够构建满足自身数据治理、可扩展性、成本与性能要求的架构,同时沿用统一的 RAG 框架。
OpenRAG 拥有许多极具价值的实际用例,既能快速部署,也能大规模落地。
一个主要用例是构建企业知识助手,让员工用自然语言提问来查询内部文档。这类系统通常依赖技术文档、工程手册、内部 Wiki 和项目报告等内部数据。借助 OpenRAG,Docling 会对文档进行处理、解析和索引,纳入可搜索的知识库。
当用户提出问题时,系统会从知识库中检索最相关的段落,并将其作为上下文提供给语言模型。然后,模型会引用检索到的材料,生成有据可依的答案。员工可以询问如何配置某个系统、某项具体政策写在哪里,或者哪些流程适用于特定场景。该系统实际上相当于覆盖在内部知识之上的智能搜索与解释层。
假设一家公司运行的是某款常用数据分析应用的修改版,而且版本略旧。如果用户向通用聊天机器人询问如何用这款应用生成报告,得到的会是错误信息。
原因很简单:互联网上的说明很可能只适用于该软件最新且未修改的版本。而 OpenRAG 系统会检索专属于内部版本的说明,为用户提供准确的指示和指导。
客户支持自动化和技术服务台,是检索增强型智能体的另一个重要用武之地。组织通常维护着庞大的知识库,其中包括故障排查指南、支持工单、产品文档、固件说明和客户问题历史记录。这些材料经过处理并建立索引,因此当客户或客服人员提出问题时,OpenRAG 能检索到相关信息,并把这些具体信息写进答案。
还可以用历史支持对话和产品术语对 LLM 进行训练,以提升回答的准确性。用 Docling 检索到的文档能提供事实依据,帮助语言模型把信息综合成清晰的解释或分步说明。
用户可以通过网页聊天、支持门户或应用内嵌的 AI 助手与系统交互。系统可以引导客户完成故障排查步骤、归纳已知问题,也能在实时支持通话中帮客服人员快速定位相关文档。
OpenRAG 可用于构建合规助手,用于分析监管文档与内部政策框架。受监管行业的组织经常需要解读来自政府机构、内部治理团队和行业标准机构的多套复杂规则。这些文档可能包括法规、合规手册、风险评估、审计报告和法律指引。
系统把这些文档处理成知识库并建立索引,以供检索。领域自适应语言模型可以基于法律或监管文本进行微调,从而更好地理解政策的结构与术语。
用户通过提问与系统交互,例如某项拟议行动是否符合内部规则、某条具体法规如何适用于某个业务流程,或者特定情形下有哪些报告要求。该助手会从监管语料库中检索相关段落,并生成引用原始出处的解释。
另一个用例是需要检索大量文档的研究场景。这类文档可能包括科学论文、财务报告、专利或内部分析研究。可以用这些文档构建知识库并建立索引,让研究人员以对话方式查询。
基于领域文献训练的微调语言模型,可以帮助解读技术内容,并生成摘要或跨文档对比。用户可以通过分析界面与系统交互,提出复杂的研究问题、索要相关论文摘要,或跨多份文档比较研究结果。系统会检索报告中的相关部分,并基于这些来源生成综合洞察。
OpenRAG 还支持把结构化数据与文档检索结合起来的交互方式。例如,组织可能维护着描述业务表现的数据集、报告、仪表盘和分析备注。检索系统为数据集的说明性文档和元数据建立索引,而语言模型则帮助解读结果。
在这样的系统中,用户可能会提出关于趋势、指标或历史表现的分析性问题。该助手会用 SQL 检索原始数据,或调取与相关数据关联的已生成报告,再用这些内容生成贴合上下文的说明。这种交互方式让非技术用户只需用自然语言提问,就能探索复杂的数据环境,而不必编写 SQL 查询、使用电子表格或在多个系统之间来回切换。
OpenRAG 可以支撑协作知识界面,让团队在项目推进过程中与共享知识库交互。设计规范、架构图、规划说明和研究摘要等文档,都可以在讨论过程中建立索引并被检索出来。该助手可以提供摘要、提炼关键洞察,或帮助团队比较不同的设计方案。
基于领域术语微调的模型,能提升对专业技术内容的获取与理解效率。用户可以在开发环境中通过聊天系统、会议助手或内嵌工具与该助手交互。这些系统帮助团队在协作过程中快速检索相关知识,并从大量文档中综合出信息。
在上述所有用例中,OpenRAG 都遵循一致的模式:把文档和数据源处理成可搜索的知识库,由检索系统定位相关上下文,再由 LLM 基于检索到的信息生成有据可依的回答。具体采用哪种架构、模型和交互模式,会因组织的数据源、安全要求和应用目标而差异很大。
OpenRAG 是托管在 GitHub 上的开源项目,附带通过 Python 包管理实用工具 uvx 初始化项目的脚本,以及用于安装和管理 Docling 与 OpenSearch 的 Docker 容器。您可以先在笔记本电脑或台式机上通过 localhost 运行全部组件,也可以在 watsonx 等平台上配置 OpenRAG。