一个完整的 AI 应用,通常包含两条核心流水线:
- 构建知识库(文档摄入):把各种格式的文档拆开、切块、打标、向量化、入库,构建知识库
- 构建问答系统(AI问答系统):用户提问后,意图路由到 RAG / 工具调用 / 联网搜索,结果汇合到 Prompt 组装层,再交给 Ollama 生成答案
1. 文档摄入架构
写路径是最直接的一条流水线:文件进来,按格式拆开,切块、打标、向量化、入库。
2. AI问答系统架构
一次提问可以同时走三条信息源:
- 知识库(RAG)
- 工具调用(Tool Calling)
- 互联网(Web Search)
三条结果汇合到 Prompt 组装层,再统一交给 Ollama 生成答案。
读路径的关键:RAG 不再是唯一信息源,而是和工具调用、联网搜索并列的一条。生产环境很少只靠一个知识库回答所有问题,业务数据要查数据库、新闻类问题要联网。Spring AI 的 Advisor + Tool 体系让这三种信息源在同一个 ChatClient 调用里组合,最终汇合到同一个 Prompt 模板。
3. AI 应用能力与专栏功能对照
| 模块 | 状态 | 备注 |
|---|---|---|
| 文档摄入 | 完整实现 | 多格式 Reader、TokenTextSplitter、Qdrant 入库 |
| 意图路由 | 简化处理 | 固定走 RAG 分支,未引入 Router |
| Query Rewriter | 完整实现 | RewriteQueryTransformer |
| Multi-Query Expander | 独立验证 | MultiQueryExpandTest 跑通用法,未接入主管道 |
| Qdrant 检索 + namespace 过滤 | 完整实现 | FilterExpressionBuilder |
| 结果合并 / 重排序 | 默认实现 | RetrievalAugmentationAdvisor 默认行为,未自定义 reranker |
| Prompt 组装 | 完整实现 | ContextualQueryAugmenter |
| Ollama 流式调用 | 完整实现 | chatStream + SSE |
| 来源追踪 | 完整实现 | 从 DOCUMENT_CONTEXT 提取的 extractSources |
| 工具调用 | 本专栏未实现 | Spring AI 实战 - 工具调用与联网 |
| 联网搜索 | 本专栏未实现 | Spring AI 实战 - 工具调用与联网 |
| 评估框架 | 完整实现 | Hit Rate / MRR / LLM-as-Judge |
现有的代码覆盖了 RAG 的核心能力:多格式摄入、模块化检索管道、Qdrant 持久化、按 namespace 隔离的多知识库、流式问答、来源追踪、评估框架。每一段代码都对应实际工程里能直接用的能力,拿来即用。
4. 进阶方向
按"投入产出比"从高到低排:
- Reranker:检索后用 Cross-Encoder 模型重排序。Bi-Encoder 检索快但粗,Cross-Encoder 慢但精,组合使用 MRR 通常能涨 10 ~ 20 个点
- Hybrid Search:BM25 + 向量检索混合。关键词精确匹配和语义匹配互补,对术语密集的技术文档效果尤其明显,Qdrant 1.10+ 原生支持
- 接入工具调用:用 Spring AI 的
@Tool注解声明业务函数,让 LLM 自主决定何时调用。订单查询、库存检查这类结构化场景立刻就能用 - 接入联网搜索:接 Tavily 或 Brave Search API,作为 RAG 的补充信息源。适合实时性强的场景(新闻、行情、最新文档)
- 意图路由:引入一个轻量分类器决定每次提问该走哪条路径,避免每次都跑全量 RAG,省一半延迟和算力
- 版本化知识库:把 namespace 设计成
kb-v1/kb-v2,新版本完整摄入后再切换路由,零停机更新 - Conversation Memory:用
VectorStoreChatMemoryAdvisor把对话历史也存进向量库,模型既能查文档又能回顾上下文 - Multi-Modal RAG:图文混合检索,处理含图表和图片的文档,用多模态 Embedding 模型
- Graph RAG:结合知识图谱做多跳推理,适合实体关系密集的场景
5. 推荐资源
- Spring AI 官方文档:API 参考和最新组件说明
- Ollama 官方文档:模型管理、API、性能调优
- Modular RAG 论文:理解 Spring AI RAG 架构设计的来源
- RAGAS:成熟的 Python RAG 评估框架,可借鉴指标设计
- Qdrant 文档:collection、过滤、Hybrid Search 完整参考
- Tavily Search API:专为 LLM 设计的搜索 API,配联网搜索分支用