Skip to content

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 中,对 Documen⁠t 的处理通常遵循以下流程:

  1. 读取文档:使用 DocumentReader 组件从数据源(