当前位置: 首页 > news >正文

86_Spring AI 干货笔记之 Chroma 向量存储

一、Chroma

本节将引导您设置 Chroma VectorStore 来存储文档嵌入并执行相似性搜索。

Chroma 是一个开源的嵌入数据库。它为您提供了存储文档嵌入、内容和元数据的工具,以及搜索这些嵌入(包括元数据过滤)的功能。

二、先决条件

访问 ChromaDB:与 Chroma Cloud 兼容,或在附录中设置本地 ChromaDB(展示了如何使用 Docker 容器在本地设置数据库)。

  • 对于 Chroma Cloud:您需要从 Chroma Cloud 仪表板获取您的 API 密钥、租户名称和数据库名称。

  • 对于本地 ChromaDB:除了启动容器外,无需额外配置。

一个 EmbeddingModel 实例来计算文档嵌入。有几种选择:

  • (如果需要)一个用于 EmbeddingModel 的 API 密钥,以生成存储在 ChromaVectorStore 中的嵌入。

启动时,如果尚未配置,ChromaVectorStore 会创建所需的集合。

三、自动配置

Spring AI 自动配置、启动器模块的工件名称发生了重大变化。请参阅升级说明以获取更多信息。

Spring AI 为 Chroma 向量存储提供了 Spring Boot 自动配置。要启用它,请将以下依赖项添加到项目的 Maven pom.xml 文件中:

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

或添加到 Gradle build.gradle 构建文件中:

dependencies{implementation'org.springframework.ai:spring-ai-starter-vector-store-chroma'}

请参阅 依赖管理 部分,将 Spring AI BOM 添加到您的构建文件中。

请参阅 工件仓库 部分,将 Maven Central 和/或快照仓库添加到您的构建文件中。

向量存储实现可以为您初始化必要的模式,但您必须通过指定相应构造器中的 initializeSchema 布尔值,或在 application.properties 文件中设置 …​initialize-schema=true 来选择加入。

这是一个破坏性变更!在早期版本的 Spring AI 中,此模式初始化是默认发生的。

此外,您需要一个配置好的 EmbeddingModel bean。有关更多信息,请参阅 EmbeddingModel 部分。

以下是一个所需 bean 的示例:

@BeanpublicEmbeddingModelembeddingModel(){// 可以是任何其他 EmbeddingModel 实现。returnnewOpenAiEmbeddingModel(OpenAiApi.builder().apiKey(System.getenv("OPENAI_API_KEY")).build());}

要连接到 Chroma,您需要提供实例的访问详细信息。可以通过 Spring Boot 的 application.properties 提供简单的配置:

# Chroma 向量存储连接属性spring.ai.vectorstore.chroma.client.host=<您的 Chroma 实例主机># 对于 Chroma Cloud:api.trychroma.comspring.ai.vectorstore.chroma.client.port=<您的 Chroma 实例端口># 对于 Chroma Cloud:443spring.ai.vectorstore.chroma.client.key-token=<您的访问令牌(如果配置)># 对于 Chroma Cloud:使用 API 密钥spring.ai.vectorstore.chroma.client.username=<您的用户名(如果配置)>spring.ai.vectorstore.chroma.client.password=<您的密码(如果配置)># Chroma 向量存储租户和数据库属性(Chroma Cloud 必需)spring.ai.vectorstore.chroma.tenant-name=<您的租户名称>
http://www.jsqmd.com/news/343049/

相关文章:

  • 检测性能直登顶!Mamba+YOLO优势互补,碾压所有传统YOLO!
  • 26. Mipmap
  • 大数据毕设项目:基于python+Hadoop的国家气象降雨量大数据分析系统(源码+文档,讲解、调试运行,定制等)
  • 顾比均线、顾比倒数线与趋势线相结合,加上仓位管理,可构成一套完整的趋势型交易系统 - Leone
  • 【无人机协同】基于matlab动态环境下多无人机系统的协同路径规划与防撞附Matlab代码
  • 【计算机毕业设计案例】基于Hadoop的某篮球队各个球员数据分析系统的设计与实现(程序+文档+讲解+定制)
  • 为什么新手总觉得 Modbus 很难?
  • 咖啡豆烘焙机厂家哪家实用性强?2026年榜单这几家靠谱企业值得关注! - 海棠依旧大
  • 排查某个软件是否安装,某个端口是否占用
  • 花 Opus 的钱买到 Sonnet?一行 Python 代码揭穿 API 服务商的“降本增效”骗局
  • 大数据BI工具的增强分析能力测评
  • 85_Spring AI 干货笔记之 Apache Cassandra 向量存储
  • 2026年2月中国境外券商投行机构推荐:看这5家公司就对了 - Top品牌推荐
  • 深入解析:【MySQL】数据库备份与恢复
  • 苹果 iPhone 14 Pro Max 高质量深度解析|配色外观|核心参数|屏幕与影像|续航充电|官方维修手册|二手验机清单
  • 【毕业设计】基于python+Hadoop的国家气象降雨量大数据分析系统(源码+文档+远程调试,全bao定制等)
  • 苹果 iPhone 15 高质量介绍:参数解析|体验要点|验机清单|维修手册重点
  • ubuntu卸载包
  • 程序员如何从 0 到 1 自己开发一个 AI Agent?
  • 03. PyTorch的使用
  • day76(2.4)——leetcode面试经典150
  • 一个 SpringBoot 项目能处理多少请求?我终于悟了
  • 企业级 Agent 在 K8s 上的运行模型
  • 【计算机毕业设计案例】基于python+Hadoop的国家气象降雨量大数据分析系统基于hadoop的气象数据分析与可视化系统(程序+文档+讲解+定制)
  • SpringCloud从入门到上天:Nacos做微服务注册中心
  • 来自 Nimbus-7 SMMR 和 DMSP SSM/I-SSMIS 被动微波数据的海冰浓度 V002
  • 高校物业维修管理微信小程序的设计和实现
  • MySQL 5.7 转 Oracle 实习生核心注意事项(企业常见场景)
  • D.二分查找-二分答案-求最小——1870. 准时到达的列车最小时速
  • 从入门到精通:Boris Cherny 亲测的 Claude Code 十大高级技巧 + 插件实操(万字详解)