SpringAI框架中的RAG模块详解及应用示例
RAG(Retrieval-Augmented Generation)可以通过检索知识库,克服大模型训练完成后参数冻结的局限性,携带知识让大模型根据知识进行回答。SpringAI框架提供了模块化的API来支持RAG,主要包括QuestionAnswerAdvisor和RetrievalArgumentAdvisor。
QuestionAnswerAdvisor
QuestionAnswerAdvisor主要提供便捷简单的RAG流功能,只需指定一些简单的参数即可。例如,假设数据已加载到vectorStore中,可以通过以下方法进行RAG知识库检索:
QuestionAnswerAdvisor questionAnswerAdvisor = QuestionAnswerAdvisor.builder(vectorStore)
.searchRequest(SearchRequest.builder()
.similarityThreshold(0.5) // 只返回相似度高于0.5的结果
.topK(3) // 只返回前三个结果
.filterExpression(newFilterExpressionBuilder().eq("a", "b").build()) // 只检索 a==b 的文档
.build())
.build();
ChatClient chatClient = ChatClient.builder(openAiChatModel)
.defaultOptions(OpenAiChatOptions.builder().model("gpt-3.5-turbo").build())
.build();
ChatResponse response = chatClient.prompt().advisors(questionAnswerAdvisor)
.us

最低0.47元/天 解锁文章
645

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



