知识库RAG基础架构介绍(Spring AI + Elasticsearch + Ollama)
一、架构概述
本架构基于Spring AI、Elasticsearch 8.11.4、Ollama三大核心技术栈构建企业级RAG(检索增强生成)知识库基础体系,完整实现「多格式文件解析→文本智能分片→文本向量化→向量存储→多策略检索→结果融合」全链路能力,支持TXT、Word(.doc/.docx)、PDF三类主流文本文件的知识库构建,同时提供纯向量语义检索、BM25+向量混合检索双检索模式,兼顾检索效率与召回精度,为上层LLM应用提供高质量、高可靠性的知识库数据支撑。
架构核心目标:解决大模型「知识过时、事实性错误、专业领域能力不足」的痛点,通过检索精准召回知识库数据 + 大模型基于检索结果生成回答,实现生成内容的真实、准确、可溯源,打造企业级轻量化、私有化部署的RAG解决方案。
二、核心技术栈选型
✅ 核心框架与中间件
- 应用开发框架:SpringBoot 3.4.3 + Spring AI 1.0.0
- 依托Spring AI标准化AI开发接口,无缝对接嵌入模型、向量存储,屏蔽底层调用细节,大幅降低RAG开发成本;
- 兼容Spring生态,可快速集成企业现有业务系统,支持接口标准化、服务化输出。
- 向量数据库:Elasticsearch 8.11.4
- 兼具「关系型检索(BM25关键词)+ 向量检索(kNN语义)」能力,无需额外部署专用向量库,轻量化落地;
- 支持RRF(Reciprocal Rank Fusion)结果融合算法,完美适配混合检索场景,提升召回准确率;
- 支持批量写入、索引优化,满足海量知识库数据的存储与高性能检索诉求。
- 本地模型引擎:Ollama
- 私有化部署文本嵌入模型
lrs33/bce-embedding-base_v1,全程离线完成文本向量化,数据零泄露,满足企业数据安全合规要求; - 模型轻量化、部署便捷,支持Windows本地快速启动,无需依赖云端大模型服务,降低接入成本。
- 私有化部署文本嵌入模型
✅ 关键能力组件
- 多格式文件解析组件:Apache POI + Apache PDFBox + EasyExcel
- 覆盖全文本类文件:TXT原生解析、Word格式适配解析、PDF原生文本提取、Excel行级结构化解析;
- 所有解析器均做空值过滤、文本格式化、冗余字符清理,保证入库文本的纯净度。
- 文本处理组件:智能分片工具集(普通分片 + 流式分片)
- 基础分片:基于句子结束符(中英文适配)分割,保证文本语义完整性,支持分片重叠策略,避免跨分片语义断裂;
- 流式分片:针对超大文件(GB级)实现按需读取、逐批分片,全程不加载全量文本到内存,彻底解决内存溢出、方法卡死问题。
- 检索组件:纯向量检索 + 混合检索服务
- 轻量检索:基于Spring AI VectorStore实现一键式向量相似度检索,适配快速开发场景;
- 精准检索:自研BM25关键词检索 + kNN向量检索 + RRF融合的混合检索,兼顾「关键词精准匹配」与「语义相似召回」,大幅提升检索准确率。
三、整体架构流程(核心链路)
本RAG架构遵循数据层→存储层→检索层→应用层四层设计,链路清晰、解耦性强,各环节可独立扩展优化,完整流程如下:
✅ 第一层:数据接入与预处理(知识入库链路)
▸ 核心能力:多格式文件解析、文本清洗、智能分片,输出标准化文本块
- 文件上传与格式识别:接收TXT、Word、PDF文件,自动识别文件后缀,路由至对应解析器;
- 专属解析处理:
- TXT:原生流式读取,过滤冗余换行、空格,输出纯净文本;
- Word:基于Apache POI区分.doc/.docx格式,提取纯文本并格式化;
- PDF:基于PDFBox提取原生文本,合并断行、剔除页码,保证文本连贯性;
- 智能文本分片:根据文件大小自动适配「普通分片/流式分片」,按句子结束符分割文本,生成分片化文本块,同时保留文件元数据、分片位置、分片ID等溯源信息;
- 标准化输出:所有文本块统一封装格式,为后续向量化提供统一入参。
✅ 第二层:文本向量化与向量存储(知识存储链路)
▸ 核心能力:文本嵌入、向量生成、批量入库,构建检索知识库
- 文本向量化:调用Ollama本地部署的
lrs33/bce-embedding-base_v1嵌入模型,将标准化文本块转换为768维度浮点型向量,全程离线执行,无网络依赖; - 数据封装:将「文本块内容 + 溯源元数据 + 向量数据」封装为Spring AI标准Document对象,保证数据一致性;
- 批量入库:基于Elasticsearch批量写入能力,将封装后的文档批量存储至ES向量索引,自动完成「文本字段分词」「向量字段索引构建」,适配后续双模式检索。
✅ 第三层:多策略检索(知识召回链路)
▸ 核心能力:提供两种检索模式,按需输出高精准知识库结果,为生成层提供数据支撑 本层为RAG架构核心,支持轻量检索、精准检索两种模式,可根据业务场景灵活切换:
- 模式一:纯向量语义检索(快速开发首选)
- 基于用户检索词,调用嵌入模型生成检索向量;
- 通过Spring AI VectorStore调用ES的kNN近似最近邻检索,按余弦相似度排序,返回Top-N语义相似文本块;
- 优势:开箱即用、代码极简、检索速度快,适配纯语义匹配场景。
- 模式二:BM25+向量混合检索(生产环境首选)
- 关键词召回:基于ES BM25算法,对检索词做全文关键词匹配,召回Top-K相关文本;
- 语义召回:基于kNN算法,对检索词向量做相似度匹配,召回Top-K相关文本;
- 结果融合:采用RRF无参数融合算法,对两路召回结果重新排序,平衡关键词与语义权重,输出最终高精准Top-N结果;
- 优势:召回全面、准确率高,兼顾「专业术语精准匹配」与「模糊语义相似检索」。
✅ 第四层:RAG应用层(能力输出链路)
▸ 核心能力:检索结果聚合、LLM调用适配、标准化能力输出
- 结果聚合:对检索层返回的文本块进行内容整合、去重、排序,生成结构化知识库上下文;
- LLM适配:将「用户问题 + 知识库上下文」封装为标准化Prompt,无缝对接本地/云端LLM模型;
- 能力输出:提供统一的API接口,支持「文件入库、知识库检索、RAG问答」三类核心能力调用,可直接对接前端应用、企业内部系统。
四、核心能力亮点
✅ 1. 私有化轻量化部署,零外部依赖
- 核心模型(嵌入模型)基于Ollama本地部署,全程离线运行,无第三方API调用、无数据上云,满足金融、政务、企业内部等高安全合规要求;
- 技术栈无重量级中间件,Elasticsearch、Ollama均可本地部署,快速搭建开发/生产环境,降低部署与运维成本。
✅ 2. 多格式兼容,文本处理能力完善
- 全覆盖企业主流文本文件:TXT、Word(.doc/.docx)、PDF,适配各类业务知识库文档格式;
- 所有文件解析均做数据清洗、冗余过滤、格式标准化,解决原始文件「断行、空值、页码干扰」等问题,保证向量化与检索质量;
- 针对超大文件提供流式分片方案,彻底解决大文件处理的内存溢出问题,支持GB级文本文件入库。
✅ 3. 双检索模式,兼顾效率与精度
- 轻量模式:Spring AI原生向量检索,一行代码调用,适配快速原型开发、纯语义检索场景;
- 精准模式:自研混合检索,融合BM25与kNN优势,解决单一检索「漏检、误检」问题,召回准确率大幅提升,完全满足生产环境诉求;
- 支持检索结果溯源,可精准定位检索内容在原文件中的「文件名、位置、分片ID」,提升结果可信度。
✅ 4. 高扩展性,适配业务迭代升级
- 技术栈解耦性强:文件解析、文本分片、向量化、检索、存储各模块独立,可单独替换升级(如替换嵌入模型、切换向量库);
- 能力可扩展:预留OCR扩展接口(适配扫描件PDF)、Excel解析接口、多检索策略扩展接口,可快速适配业务新增诉求;
- 生态兼容:基于Spring生态开发,可无缝集成企业现有微服务、权限、日志体系,快速落地业务应用。
✅ 5. 高性能,适配海量知识库场景
- 文本处理:批量解析、批量分片,大幅提升文件入库效率;
- 向量存储:基于Elasticsearch批量写入能力,减少ES请求次数,降低集群压力;
- 检索优化:ES索引针对性配置(向量维度768、余弦相似度、批量刷新),结合RRF轻量融合算法,兼顾检索速度与召回质量。
五、架构应用场景
本RAG基础架构轻量化、易部署、能力完善,可广泛适配企业各类知识库场景,典型应用方向包括:
- 企业内部知识库:沉淀制度文件、操作手册、技术文档、培训资料,员工可通过自然语言检索相关内容,或基于知识库实现智能问答;
- 行业知识库:搭建金融、教育、医疗等垂直领域知识库,结合领域LLM实现专业问题解答、资料检索、内容生成;
- 文档问答机器人:对接企业客服系统,基于上传的产品手册、服务文档,实现客户问题的自动化、精准化解答;
- 研发知识库:沉淀技术文档、接口说明、故障排查手册,为研发人员提供高效的技术检索与问答能力。
六、技术优势总结
- 技术栈主流成熟:基于Spring AI、Elasticsearch、Ollama构建,社区活跃、文档完善,后续维护成本低;
- 部署门槛低:全程私有化部署,无云端依赖,支持本地/服务器快速搭建,轻量化落地;
- 能力闭环完整:从文件入库到RAG问答全链路覆盖,无需额外集成第三方组件,开箱即用;
- 检索效果优异:双检索模式适配不同场景,混合检索大幅提升召回准确率,解决单一检索局限性;
- 企业级适配:兼顾数据安全、性能优化、合规要求,可直接面向生产环境落地,支撑企业级知识库建设。