一句话定位:四行代码就能建库、写入、检索,原型阶段的默认向量库。
做 RAG 或语义搜索,最难的不是模型,是把向量存好、查快。Chroma 的定位很清楚:先用最少的代玛把东西跑起来,再谈扩展。核心 API 只有四个,pip install chromadb 之后不用起服务、不用建表,直接内存里开工;要持久化就 chroma run --path。Apache 2.0 允许商用,仓库里同时有 Python 主体和 Rust 组件,PyPI 与 npm 包每周一发版(官方自述)。它不是吞吐最强的向量库,但“十分钟内看到搜岛效果”这件事没人比它更快。
核心能力
一、四个函数跑完建库、写入、查询
建库是 client.create_collection("all-my-documents"),写入是 collection.add(documents=[...], metadatas=[...], ids=[...]),检索是 collection.query(query_texts=[...], n_results=2)。文档里连 tokenization、embedding、索引都默认帮你做了,不想用默认嵌入模型可以自己传向量。做一个小规模文档问答,代玛不到 20 行。
二、默认嵌入模型开箱即用,不要求你先选型
新人做 RAG 最容易卡在“用哪个 embedding 模型、维度多少、要不要归一化”上。Chroma 默认自动处理,你给文本它自己算向量;等到真的需要换模型时再显式传嵌入函数即可。这个设计对“先验证需求是否成立”的阶段非常合适,不至于为了一个可能不做的功能先做一周选型。
三、元数据过滤与文档内容过滤都有where={"metadata_field":"is_equal_to_this"} 按元数据过滤,where_document={"$contains":"搜索串"} 按原文包含过滤。实际场景:一个知识库要按部门隔离,就在 metadata 里打上 department 字段,查询时带上条件,而不是建十几个 collection。这两层过滤和向量检索可以在同一次调用里完成。
四、嵌入式与客户端/服务器两种形态自由切
原型阶段用 chromadb.Client() 跑在进程内,零运维;要多个服务共享就 chroma run --path /chroma_db_path 起服务器,客户端连上去。从本地 Demo 往多人使用演进时,不用换库、不用重写写入逻辑,只改连接方式。
五、托管版接上就行,不用自己搭集群
官方提供 Chroma Cloud,主打无服务器的向量、混合与全文检索,注册后可领取 $5 试用额度(以官网为准)。团队里没人愿意维护向量数据库时,这条路径比自建省事;但数据出内网这件事要自己权衡。
使用上手
- 装包:Python 用
pip install chromadb,JS 用npm install chromadb,不需要 Docker。 - 先跑内存版:
client = chromadb.Client(),建一个 collection,丢十几条文档进去,验证检索结果符合直觉。 - 转持久化:确认要长期存之后,用
chroma run --path ./chroma_db起服务,客户端改成连这个地址。 - 补元数据:写入时就带上 source、部门、时间等字段,后续过滤不用回头洗数据。
- 压力测试再决定是否换库:百万级以上向量、需要复杂分片或多租户时,再评估 Qdrant / Weaviate 这类专为大规模设计的方案。
优点与不足
优点:
- 上手成本极低,原型验证到看到效果以分钟计。
- 默认嵌入模型开箱即用,不强制选型。
- 嵌入与客户端/服务器两种形态同一套 API,迁移不重写。
- Apache 2.0,可商用,社区活跃。
不足:
- 官方自述仍在快速开发,版本迭代快,大版本升级前要看变更说明。
- 单机形态下的大规模性能与高可用不是它的主战场,亿级向量应看专用方案。
- 功能相对精简,多租户、RBAC、混合检索的深度不如 Weaviate / Qdrant。
- 星标数波动较大,以 GitHub 仓库页实时显示为准。
适合谁
- 刚开始做 RAG、想先验证效果再投入工程资源的开发者。
- 本地做文档问答、周报检索、代码片段搜索的小工具。
- 不适合:一开始就要求高并发、多租户隔离、强一致性的生产系统。
下载与访问
- 仓库:https://github.com/chroma-core/chroma
- 官网:https://www.trychroma.com
- 文档:https://docs.trychroma.com
- 安装:
pip install chromadb/npm install chromadb
许可证与部署
| 方案 | 方式 | 说明 |
|---|---|---|
| 本地嵌入式 | chromadb.Client() | 进程内运行,零运维,适合原型 |
| 自托管服务 | chroma run --path <目录> | 多服务共享,本地目录持久化 |
| Docker | 仓库自带 Dockerfile 与 compose 示例 | 容器化部署,适合服务器 |
| Chroma Cloud | 官方托管 | 无服务器,注册赠送试用额度,价格以官网为准 |
| 许可证 | Apache 2.0 | 可商用可修改 |
本文属于「项目」分类的 AI 资源专栏,更多评测见分类页。
评论 0
还没有评论,来说两句吧。