SpringAI调用本地chromaDB 报错:
1 配置文件,正常:
spring:
application:
name: RuoyiAdmin
main:
allow-bean-definition-overriding: true
ai:
openai:
base-url: https://api.deepseek.com
api-key: sk-ddsfsdf07826f
chat:
options:
model: deepseek-reasoner
vectorstore:
chroma:
client:
host: http://localhost
port: 8000
collection-name: xiaofang_news
initialize-schema: false
tenant-name: default_tenant
database-name: default_database
embedding:
transformer:
cache:
directory: "E:/works2/bge_raw/cache"
onnx:
modelUri: "file:///E:/works2/bge_raw/model.onnx"
tokenizer: # 与 onnx 平级,缩进对齐
uri: "file:///E:/works2/bge_raw/tokenizer.json"
python环境检查正常:
# 验证集合是否是存在
import chromadb
client = chromadb.HttpClient(host='localhost', port=8000)
# Check the settings
print(f"Current Tenant: {client.tenant}")
print(f"Current Database: {client.database}")
try:
coll = client.get_collection("xiaofang_news")
print(f"✅ 集合存在,包含 {coll.count()} 条数据")
except Exception as e:
print(f"❌ 集合不存在或访问失败: {e}")
2 pom.xml 版本正常:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-vector-store-chroma</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-openai</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-chat-memory-repository-jdbc</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-transformers</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-advisors-vector-store</artifactId>
<version>1.1.3</version>
</dependency>
3 主要问题所在:
手动删除原先下载的版本:
E:\download\apache-maven-3.8.9\local\org\springframework\ai\spring-ai-advisors-vector-store
4 核心问题:
在父模块引入了其他版本,忘记注释,因为之前多个版本之间切换忘记:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>1.1.3</version>
<!-- <version>1.0.0-M6</version>-->
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencyManagement>
2026-03-19 14:52:42 [main] INFO o.d.common.json.config.JacksonConfig
- 初始化 jackson 配置
2026-03-19 14:52:42 [main] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext
- Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'ragController' defined in file [E:\codes2\crmeb_java_cad\RuoYi-Vue-Plus\ruoyi-admin\target\classes\org\dromara\cad\system\controller\RagController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'vectorStore' defined in class path resource [org/springframework/ai/vectorstore/chroma/autoconfigure/ChromaVectorStoreAutoConfiguration.class]: Unsatisfied dependency expressed through method 'vectorStore' parameter 1: Error creating bean with name 'chromaApi' defined in class path resource [org/springframework/ai/vectorstore/chroma/autoconfigure/ChromaVectorStoreAutoConfiguration.class]: Failed to instantiate [org.springframework.ai.chroma.vectorstore.ChromaApi]: Factory method 'chromaApi' threw exception with message: 'org.springframework.ai.chroma.vectorstore.ChromaApi$Builder org.springframework.ai.chroma.vectorstore.ChromaApi.builder()'
2026-03-19 14:52:42 [main] ERROR o.s.b.d.LoggingFailureAnalysisReporter
***************************
APPLICATION FAILED TO START
***************************
Description:
An attempt was made to call a method that does not exist. The attempt was made from the following location:
org.springframework.ai.vectorstore.chroma.autoconfigure.ChromaVectorStoreAutoConfiguration.chromaApi(ChromaVectorStoreAutoConfiguration.java:68)
The following method did not exist:
'org.springframework.ai.chroma.vectorstore.ChromaApi$Builder org.springframework.ai.chroma.vectorstore.ChromaApi.builder()'
The calling method's class, org.springframework.ai.vectorstore.chroma.autoconfigure.ChromaVectorStoreAutoConfiguration, was loaded from the following location:
jar:file:/E:/download/apache-maven-3.8.9/local/org/springframework/ai/spring-ai-autoconfigure-vector-store-chroma/1.1.3/spring-ai-autoconfigure-vector-store-chroma-1.1.3.jar!/org/springframework/ai/vectorstore/chroma/autoconfigure/ChromaVectorStoreAutoConfiguration.class
The called method's class, org.springframework.ai.chroma.vectorstore.ChromaApi, is available from the following locations:
jar:file:/E:/download/apache-maven-3.8.9/local/org/springframework/ai/spring-ai-chroma-store/1.0.0-M6/spring-ai-chroma-store-1.0.0-M6.jar!/org/springframework/ai/chroma/vectorstore/ChromaApi.class
The called method's class hierarchy was loaded from the following locations:
org.springframework.ai.chroma.vectorstore.ChromaApi: file:/E:/download/apache-maven-3.8.9/local/org/springframework/ai/spring-ai-chroma-store/1.0.0-M6/spring-ai-chroma-store-1.0.0-M6.jar
Action:
Correct the classpath of your application so that it contains compatible versions of the classes org.springframework.ai.vectorstore.chroma.autoconfigure.ChromaVectorStoreAutoConfiguration and org.springframework.ai.chroma.vectorstore.ChromaApi
2026-03-19 14:52:42 [main] WARN o.s.boot.SpringApplication
- Unable to close ApplicationContext
java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "this.closeables" is null