一为什么选用云知识库在上一篇文章中我们文档读取、文档加载、向量数据库是在本地通过编程的方式实现的。其实还有另外一种模式直接使用别人提供的云知识库服务来简化 RAG 的开发。但缺点是额外的费用、以及数据隐私问题。很多 AI 大模型应用开发平台都提供了云知识库服务这里我们还是选择阿里云百炼因为 Spring AI Alibaba 可以和它轻松集成简化 RAG 开发。二准备云数据库首先我们可以利用云知识库完成文档读取、文档处理、文档加载、保存到向量数据库、知识库管理等操作。1准备数据打了标签的元信息之后可以基于标签检索知识。2测试自己的知识切分的怎么样面向AI知识库写文档一开始写的时候就需要考虑怎么着能让他切得更好。进行命中测试阿里云百联这个平台还是要多试一试你尝试的越多你对这个平台就越熟悉。拿着客户输入的问题比方说100个问题拿到知识库这里边进行尝试。所以我们的知识库开发就是要不断的优化的。如果对他大模型切片的内容不满意可以自己手动进行编辑。三RAG开发有了知识库后就可以用程序对接。开发过程简单可参考 Spring AI Alibaba 的官方文档学习。Spring AI Alibaba 利用 Spring AI 提供的文档检索特性DocumentRetriever自定义了一套文档检索方法使程序调用阿里灵积大模型 API 从云知识库中检索文档而非从内存检索。使用下列代码就可以创建一个文档检索器并发起查询// 调用大模型的 API var dashScopeApi new DashScopeApi(DASHSCOPE_API_KEY); // 创建文档检索器 DocumentRetriever retriever new DashScopeDocumentRetriever(dashScopeApi, DashScopeDocumentRetrieverOptions.builder() .withIndexName(你的知识库名称) .build()); // 测试从云知识库中查询 ListDocument documentList retriever.retrieve(new Query(谁是鱼皮));如何使用这个文档检索器让 AI 从云知识库查询文档呢这就需要使用 Spring AI 提供的另一个 RAG Advisor ——RetrievalAugmentationAdvisor检索增强顾问可以绑定文档检索器、查询转换器和查询增强器更灵活地构造查询。Advisor retrievalAugmentationAdvisor RetrievalAugmentationAdvisor.builder() .queryTransformers(RewriteQueryTransformer.builder() .chatClientBuilder(chatClientBuilder.build().mutate()) .build()) .documentRetriever(VectorStoreDocumentRetriever.builder() .similarityThreshold(0.50) .vectorStore(vectorStore) .build()) .build(); String answer chatClient.prompt() .advisors(retrievalAugmentationAdvisor) .user(question) .call() .content();1定义增强的RAG的AdvisorConfiguration Slf4j public class LoveAppRagCloudAdvisorConfig { Value(${spring.ai.dashscope.api-key}) private String dashScopeApiKey; Bean public Advisor loveAppRagCloudAdvisor() { DashScopeApi dashScopeApi DashScopeApi.builder() .apiKey(dashScopeApiKey) .build(); final String KNOWLEDGE_INDEX 恋爱大师; DocumentRetriever dashScopeDocumentRetriever new DashScopeDocumentRetriever(dashScopeApi, DashScopeDocumentRetrieverOptions.builder() .withIndexName(KNOWLEDGE_INDEX) .build()); return RetrievalAugmentationAdvisor.builder() .documentRetriever(dashScopeDocumentRetriever) .build(); } }2查看测试效果整体看来基于云平台的这种检索效果会更好。3基本用法总结ChatResponse RetrievalAugmentationAdvisor DashScopeDocumentRetriever DashScopeApi /api/v1/services/rerank/text-rerank/text-rerank .call() .chatResponse();