Spring ai vectorstore 使用本地模型导致只能匹配可行度为1.0的内容的解决方法笔记

📅 2026/7/8 4:24:28 👁️ 阅读次数 📝 编程学习
Spring ai vectorstore 使用本地模型导致只能匹配可行度为1.0的内容的解决方法笔记

PS:哎,兄弟,弄之前,记得先用别的地方验证一下你的onnx模型是否正确

我的情况是

使用

<dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-starter-vector-store-chroma</artifactId> <version>1.1.7</version> </dependency>

<dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-starter-model-transformers</artifactId> <version>1.1.2</version> </dependency>

然后当我设置了

spring.ai.model.embedding=transformers

之后(无论我是否指定别的嵌入模型还是使用默认的),我的

VectorStore.similaritySearch 只能匹配可信度为1.0的内容(比如当前我的知识库里有一条"王于兴师,修我戈矛",那么我就只能用王于兴师,修我戈矛去匹配,少一点多一点都匹配不到这条。)

解决办法也很匪夷所思

我们只需要让我们要访问的集合不是先行创建好的,而是由你的项目来创建的即可

比如

直接手动配置

@Configuration @RequiredArgsConstructor public class VectorStoreConfig { @Bean("testChroma") public VectorStore longTermChromaVectorStore(EmbeddingModel embeddingModel, ChromaApi chromaApi) { return ChromaVectorStore.builder(chromaApi, embeddingModel) .tenantName("your_tenant") .databaseName("your_database") .collectionName("testChroma") .initializeSchema(true) .build(); } }

然后使用这个自行配置的VectorStore进行操作即可