目录
检索增强生成(RAG)是一种克服大型语言模型(LLM)在长文本生成 、事实准确性 和上下文感知 方面局限性的技术。
Spring AI 通过模块化架构支持 RAG,允许用户:
- 构建自定义 RAG 流程;
- 通过 Advisor API 使用开箱即用的 RAG 流程。
更多 RAG 概念详见Spring AI之AI概念一文。
顾问(Advisors)
Spring AI 通过 Advisor API 提供常见 RAG 流程的原生支持。
QuestionAnswerAdvisor
向量数据库存储了 AI 模型未直接学习的数据。当用户提问时,QuestionAnswerAdvisor 会从向量数据库检索与问题相关的文档,并将结果附加到用户输入中,为 AI 生成回复提供上下文。
使用示例 :
// 假设已将数据加载到 VectorStore
ChatResponse response = ChatClient.builder(chatModel)
.build().prompt()
.advisors(new QuestionAnswerAdvisor(vectorStore)) // 注入 RAG 顾问
.user(userText)
.call()
.chatResponse();
参数配置 :
- 过滤表达式 :通过 SQL 风格的字符串限制检索范围(如 type == ‘Spring’),支持动态配置。
- 相似度阈值与 Top K :
// 配置相似度阈值为 0.8,返回前 6 个结果
var qaAdvisor = new QuestionAnswerAdvisor(
this.vectorStore,
SearchRequest.builder()
.similarityThreshold(0.8d)
.topK(6)
.build()
);
动态过滤示例 :
// 运行时动态设置过滤条件
String content = chatClient.prompt()
.user("请回答问题 XYZ")
.advisors(a -> a.param(QuestionAnswerAdvisor.FILTER_EXPRESSION, "type == 'Spring'"))
.call()
.content();
RetrievalAugmentationAdvisor(实验性)
Spring AI 提供了基于模块化架构的 RetrievalAugmentationAdvisor ,支持开箱即用的常见 RAG 流程。
注意 :此功能为实验性,未来版本可能变更。
顺序 RAG 流程
基础 RAG:
Advisor retrievalAugmentationAdvisor = RetrievalAugmentationAdvisor.builder()
.documentRetriever(VectorStoreDocumentRetriever.builder()
.similarityThreshold(

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



