Spring AI实现rag流程简易版

作者:袖梨 2026-06-12

介绍:通过Spring AI技术实现录入数据向量化后检索

Spring AI实现rag流程(简易版)

步骤一:引入依赖

依赖管理

<dependencyManagement>
        <dependencies>
            <!-- Spring Boot -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- Spring AI Alibaba -->
            <dependency>
                <groupId>com.alibaba.cloud.ai</groupId>
                <artifactId>spring-ai-alibaba-bom</artifactId>
                <version>${SpringAIAlibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- Spring AI -->
            <dependency>
                <groupId>org.springframework.ai</groupId>
                <artifactId>spring-ai-bom</artifactId>
                <version>${spring-ai.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
</dependencyManagement>

核心依赖

		<dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-starter-vector-store-redis</artifactId>
        </dependency>        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-starter-model-zhipuai</artifactId>
        </dependency>         <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-rag</artifactId>
        </dependency>

步骤二:配置文件

application.yml

spring:
  ai:
    zhipuai:
      api-key: 个人key
      base-url: "https://open.bigmodel.cn/api/paas/"
      chat:
        options:
          model: "glm-4.5"
      embedding:
        options:
          model: embedding-3
          dimensions: 256    vectorstore:
      redis:
        # 启动时自动创建Redis向量索引结构(首次部署需要开启)
        initialize-schema: true 
        # Redis键名前缀,用于区分不同应用的向量数据
        prefix: rag_prefix
        # Redis向量索引名称
        index: rag_index

步骤三:核心代码

[1]TestController

@RestController
@RequestMapping("/rag")
public class TestController {
    private final VectorStore vectorStore;    public RagController(VectorStore vectorStore) {
        this.vectorStore = vectorStore;
    }    /**
     * 录入数据
     * 
     * @param data
     * @return
     */
    @PostMapping("importData")
    public String importData(@RequestParam("data") String data) {
        Document document = Document.builder()
            .text(data)
            .build();
        vectorStore.add(List.of(document));
        return "success";
    }    /**
     * 检索
     * 
     * @param query
     * @return
     */
    @PostMapping("search")
    public List<Document> search(@RequestParam("query") String query) {
        SearchRequest searchRequest = SearchRequest.builder()
            .topK(2)
            .query(query)
            .build();
        List<Document> documents = vectorStore.similaritySearch(searchRequest);
        return documents;
    }
}

至此,基于Spring AI实现rag流程的demo版已完成!

本人正在打造技术交流群,欢迎志同道合的朋友一起探讨,一起努力,通过自己的努力,在技术岗位这条道路上走得更远。QQ群号:952912771 备注:技术交流 即可通过!

加入技术群可以获取资料,含AI资料、Spring AI中文文档等,等你加入~

相关文章

精彩推荐