spring ai alibaba -RAG检索增强生成

张开发
2026/5/8 15:29:14 15 分钟阅读

分享文章

spring ai alibaba -RAG检索增强生成
第一个:检索文件并保存为向量化后的数据最终是通过VectorStore来实现的我是用的milvus向量数据库第一步是配置:spring:ai:dashscope:api-key:sk-xxxxxxxxxxembedding:enabled:trueoptions:model:text-embedding-v2vectorstore:milvus:client:host:127.0.0.1port:19530database-name:defaultinitialize-schema:trueenabled:false第二步是实例化packagecom.spring.ai.alibaba.agent.springaialibabaagent.agetai.config;importio.milvus.client.MilvusServiceClient;importio.milvus.param.ConnectParam;importorg.springframework.ai.embedding.EmbeddingModel;importorg.springframework.ai.vectorstore.VectorStore;importorg.springframework.ai.vectorstore.milvus.MilvusVectorStore;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;ConfigurationpublicclassMilvusVectorStoreConfig{Value(${spring.milvus.host:localhost})privateStringhost;Value(${spring.milvus.port:19530})privateintport;BeanpublicMilvusServiceClientmilvusServiceClient(){returnnewMilvusServiceClient(ConnectParam.newBuilder().withHost(host).withPort(port).build());}BeanpublicVectorStorevectorStore(MilvusServiceClientmilvusServiceClient,EmbeddingModelembeddingModel){returnMilvusVectorStore.builder(milvusServiceClient,embeddingModel).build();}}第三步是测试/** * 保存数据 */TestpublicvoidsaveData(){// 1. 加载文档ResourceresourcenewFileSystemResource(src/main/resources/file/110.txt);TextReadertextReadernewTextReader(resource);ListDocumentdocumentstextReader.get();// 2. 分割文档为块TokenTextSplittersplitternewTokenTextSplitter();ListDocumentchunkssplitter.apply(documents);System.out.println(chunks.size());// 3. 将块添加到向量存储vectorStore.add(chunks);// 现在你可以使用向量存储进行检索ListDocumentresultsvectorStore.similaritySearch(查询文本);}依赖为!-- milvus --dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-milvus-store/artifactIdmilvus.version1.0.0/milvus.version/dependency使用 MessagesModelHook 实现 RAG 检索向量数据

更多文章