4 - RAG 知识库进阶 - AI 超级智能体项目教程
我们团队最近在疯狂的研究AI,期间调研学习了大量的资料,感谢大佬们的分享。
期间不仅做了几个还不错的项目,也踩坑不少,我们也发光发热,把我们总结的经验以专栏的方式分享出来,希望对大家有帮助。
这是专栏内容的第4篇,这是专栏链接,没看之前文章的朋友,建议先看之前的内容。
本节重点
以 Spring AI 框架为例,学习 RAG 知识库应用开发的核心特性和高级知识点,并且掌握 RAG 最佳实践和调优技巧。
具体内容包括:
- RAG 核心特性
- 文档收集和切割(ETL)
- 向量转换和存储(向量数据库)
- 文档过滤和检索(文档检索器)
- 查询增强和关联(上下文查询增强器)
- RAG 最佳实践和调优
- RAG 高级知识
- 检索策略
- 大模型幻觉
- 高级 RAG 架构
友情提示:由于 AI 的更新速度飞快,随着平台 / 工具 / 技术 / 软件的更新,教程的部分细节可能会失效,所以请大家重点学习思路和方法,不要因为实操和教程不一致就过于担心,而是要学会自己阅读官方文档并查阅资料,多锻炼自己解决问题的能力。
一、RAG 核心特性
这一小节我们更多的是了解 RAG 的核心特性,重理论轻实战,下一小节会更注重实战。
还记得上节教程中,我们讲到的 RAG 工作流程么?
上节教程中我们只是按照这个流程完成了入门级 RAG 应用的开发,实际上每个流程都有一些值得学习的特性,Spring AI 也为这些流程的技术实现提供了支持,下面让我们按照流程依次进行讲解。
- 文档收集和切割
- 向量转换和存储
- 文档过滤和检索
- 查询增强和关联
文档收集和切割 - ETL
文档收集和切割阶段,我们要对自己准备好的知识库文档进行处理,然后保存到向量数据库中。这个过程俗称 ETL(抽取、转换、加载),Spring AI 提供了对 ETL 的支持,参考 官方文档。
文档
什么是 Spring AI 中的文档呢?
文档不仅仅包含文本,还可以包含一系列元信息和多媒体附件:
ETL
在 Spring AI 中,对 Document 的处理通常遵循以下流程:
- 读取文档:使用 DocumentReader 组件从数据源(
