巨坑Spring ai 之spring-ai-starter-vector-store-elasticsearch

在使用spring ai 想构建一个rag demo被坑到想哭

软件版本

xml 复制代码
   <spring-ai-bom.version>1.0.2</spring-ai-bom.version>
    <dependency>
                <groupId>org.springframework.ai</groupId>
                <artifactId>spring-ai-bom</artifactId>
                <version>${spring-ai-bom.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
 <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-starter-vector-store-elasticsearch</artifactId>
        <exclusions>
java 复制代码
   /**
     * 1. ETL文档入库
     * 将pdf写入到向量库中
     *
     * @return
     */
    @GetMapping("/addDocumentToVectorDB")
    public List<Document> addDocumentToVectorDB() {
        TikaDocumentReader tikaDocumentReader = new TikaDocumentReader(resource);
        // 将文件中的文本分割为多组Document
        List<Document> fileDocuments = tikaDocumentReader.get();
        // 基于Token将多组Document进行更细化的分割
        List<Document> documents = tokenTransformer.apply(fileDocuments);
        // 存储到向量数据库中
        vectorStore.accept(documents);
        return documents;
    }

选择embedding模型

yml 复制代码
spring: 
  ai:
    openai:
      embedding:
        options:
#           向量模型
          model: doubao-embedding-large-text-250515

如果模型选择doubao-embedding-text-240715,它默认维度是2560和elasticsearch集成,elasticsearch最大就是2048,又集成不了,恶心

在addDocumentToVectorDB中vectorStore.accept(documents)调用的实现类为ElasticsearchVectorStore

具体代码为

java 复制代码
List<float[]> embeddings = this.embeddingModel.embed(documents, EmbeddingOptionsBuilder.builder().build(), this.batchingStrategy);

EmbeddingOptionsBuilder.builder().build()这部分代码没有使用到配置文件中的对模型维度的声明

进入这个方法中this.embeddingModel.embed(),就会发现都为空,然后就会使用模型默认的维度,太恶心了,所以只能使用维度为2048的模型,这里spring ai 设置完全没有用,完全在搞笑

相关推荐
陈天伟教授3 分钟前
基于学习的人工智能(5)机器学习基本框架
人工智能·学习·机器学习
m0_6501082421 分钟前
PaLM-E:具身智能的多模态语言模型新范式
论文阅读·人工智能·机器人·具身智能·多模态大语言模型·palm-e·大模型驱动
zandy101123 分钟前
2025年11月AI IDE权深度测榜:深度分析不同场景的落地选型攻略
ide·人工智能·ai编程·ai代码·腾讯云ai代码助手
欢喜躲在眉梢里23 分钟前
CANN 异构计算架构实操指南:从环境部署到 AI 任务加速全流程
运维·服务器·人工智能·ai·架构·计算
0***R51526 分钟前
人工智能在金融风控中的应用
人工智能
2501_9414037627 分钟前
人工智能赋能智慧金融互联网应用:智能风控、个性化理财与金融服务优化实践探索》
人工智能
youngerwang1 小时前
【字节跳动 AI 原生 IDE TRAE 】
ide·人工智能·trae
youngerwang1 小时前
AI 编程环境与主流 AI IDE 对比分析报告
ide·人工智能
猿小猴子1 小时前
主流 AI IDE 之一的 Google Antigravity IDE 介绍
ide·人工智能·google·antigravity
daidaidaiyu1 小时前
Spring IOC 源码学习一 基本姿势
java·spring