Spring AI文档切片

添加依赖:

bash 复制代码
   <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-tika-document-reader</artifactId>
        </dependency>

Java代码:

java 复制代码
package com.zkwm.springai.rag;

import org.springframework.ai.document.Document;
import org.springframework.ai.reader.tika.TikaDocumentReader;
import org.springframework.ai.transformer.splitter.TokenTextSplitter;
import org.springframework.ai.vectorstore.VectorStore;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.FileSystemResource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/docChunk")
public class DocumentChunkController {
    @Autowired
    private VectorStore vectorStore;

    @GetMapping("/processAndStore")
    public String processAndStore(String filePath) {

        TokenTextSplitter splitter = TokenTextSplitter.builder()
                .withChunkSize(500)    // 每块最大 Token 数
                .withMinChunkSizeChars(50)   // 最小字符数
                .withMaxNumChunks(10000)     // 最大分块数
                .withKeepSeparator(true)     // 保留分隔符
                .build();
        // 1. 读取文档(PDF/Word/TXT)
        TikaDocumentReader reader = new TikaDocumentReader(new FileSystemResource(filePath));
        List<Document> documents = reader.read();
        // 2. 文档切片(核心)
        List<Document> chunks = splitter.apply(documents);
        // 3. 向量化并存入向量库
        vectorStore.add(chunks);
        return "ok";
    }
}
相关推荐
智塑未来3 分钟前
中文短剧出海翻译工具横评:VMEG AI、鬼手、Vozo AI、ElevenLabs怎么选?
人工智能
niucloud-admin4 分钟前
JAVA V6 多商户商城 开发文档——插件目录结构
java·开发语言
东风破_4 分钟前
《LangGraph 条件路由与循环:如何让 Agent 自己决定下一步?》
人工智能
我爱吃土豆16 分钟前
AI 编程工具远程开发指南:Codex 桌面版与 WorkBuddy 通过 SSH 连接云服务器实践
服务器·人工智能·ssh
2601_962885726 分钟前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
滕州市燕猫虎计算机科技工作室个体工商户14 分钟前
Java锁
java·开发语言
袁俪24 分钟前
推理成本门槛
人工智能
2601_9623042534 分钟前
怎么用AI绘画零基础制作专属插画头像?
人工智能·ai作画
东风破_1 小时前
《LangGraph 状态管理:State、Node 和 Reducer 到底是什么?》
人工智能
东风破_1 小时前
《LangGraph 入门:为什么 Agent 需要 Graph 工作流?》
人工智能