文章目录
- Chroma:给 AI 应用做向量存储和检索
- 1、 核心功能
- 2、 设计思路
- 3、 安装使用
- 4、 适合哪些人用
Chroma:给 AI 应用做向量存储和检索
Chroma 在 GitHub 上已经拿到 28,198 Star。
这是一个开源的向量数据库,定位为 AI 应用的数据基础设施。支持 Python 和 JavaScript,提供内存模式用于快速原型,也支持持久化存储和服务端部署。
1、 核心功能
向量数据库的作用是把文本、图片这类数据转成高维向量,然后基于相似度做检索。语义搜索、RAG 这类场景都依赖这个能力。
Chroma 的核心 API 只有 4 个函数:创建集合、添加文档、查询相似结果、按 ID 获取。没有复杂的配置,安装后直接 import 就能用。
importchromadb client=chromadb.Client()collection=client.create_collection("all-my-documents")collection.add(documents=["This is document1","This is document2"],metadatas=[{"source":"notion"},{"source":"google-docs"}],ids=["doc1","doc2"],)results=collection.query(query_texts=["This is a query document"],n_results=2,)Embedding 生成、tokenization、索引构建,这些 Chroma 内部自动处理。你也可以传自己的向量,跳过内置的 embedding 流程。
2、 设计思路
Chroma 的目标是让向量检索的门槛足够低。内存模式适合本地开发和测试,加一行配置就能切到持久化模式。需要服务化部署时,用chroma run启动服务端,客户端通过网络访问。
Python 和 JavaScript 的 API 设计保持一致,团队里不同技术栈的人用起来不会有割裂感。
如果不需要自己维护基础设施,Chroma Cloud 提供托管服务,支持向量搜索、混合搜索和全文搜索。
3、 安装使用
Python 用户:
pipinstallchromadbJavaScript 用户:
npminstallchromadb启动服务端:
chroma run--path/chroma_db_path查询时支持 metadata 过滤和文档内容过滤,接口设计得很直接,没有复杂的查询语法要记。
4、 适合哪些人用
- 做 RAG 应用、需要给 LLM 检索上下文的开发者
- 做语义搜索、推荐系统的工程师
- 需要快速验证向量检索方案的产品团队
Chroma 采用 Apache 2.0 协议开源,社区在 Discord 上活跃,每周一发布新版本。
需要快速验证向量检索方案的产品团队
Chroma 采用 Apache 2.0 协议开源,社区在 Discord 上活跃,每周一发布新版本。