You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot连接Chroma向量数据库时遭遇404错误求助

Spring Boot连接Chroma向量数据库时遭遇404错误求助

兄弟,我看你这情况是Spring AI的Chroma客户端和本地Chroma服务的API路径没匹配上才触发的404,我给你一步步拆解排查:

先理清楚你当前的环境细节,避免踩版本兼容的坑:

  • Spring Boot 3.3.5 + Java 17 + Spring AI 1.0.0
  • Chroma 0.4.15,本地运行,浏览器能正常访问localhost:8000/api/v1/collections查看集合

问题根源分析

你之前试了两种base-url配置都不行,核心问题大概率是Spring AI的Chroma客户端默认会自动拼接API前缀,导致你配置的路径叠加后变成了无效地址。比如你如果把base-url设为http://localhost:8000/api/v1,客户端可能会再拼一次/api/v1,最终请求http://localhost:8000/api/v1/api/v1/xxx,这肯定会404。

具体解决步骤

1. 修正application.properties配置

直接按下面的配置来,明确拆分base地址和API前缀,让客户端生成正确的请求路径:

spring.ai.vectorstore.chroma.initialize-schema=true
spring.ai.vectorstore.chroma.base-url=http://localhost:8000
spring.ai.vectorstore.chroma.api-prefix=/api/v1
spring.ai.vectorstore.chroma.collection-name=demo

这里的关键是把base-url设为Chroma服务的根地址(不带/api/v1),然后通过api-prefix显式指定API的前缀路径,这样客户端就会正确拼接成http://localhost:8000/api/v1/xxx的有效请求。

2. 先手动验证Chroma接口可用性

在启动Spring Boot应用前,你可以用curl模拟客户端的初始化请求,确认Chroma的接口正常:

curl -X POST http://localhost:8000/api/v1/collections -H "Content-Type: application/json" -d '{"name": "demo"}'

如果这个请求能成功返回集合的JSON信息,说明Chroma的服务和接口路径都是没问题的,接下来启动Spring Boot应用应该就不会报404了。

3. 临时关闭初始化验证(可选排查用)

如果还是有问题,你可以先把spring.ai.vectorstore.chroma.initialize-schema设为false,启动应用后通过日志或者调试工具,看一下Spring AI客户端实际发送的请求URL是什么,这样就能精准定位路径拼接的问题。

额外注意点

你用的Spring AI 1.0.0和Chroma 0.4.15是兼容的,官方明确说过1.0.x版本支持Chroma 0.4.x系列,所以不用怀疑版本兼容的问题,重点还是配置的路径叠加问题。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 06:44:34