--- Chroma 2026:Python 优先向量数据库评测 | APIRank

Chroma 2026:LangChain 与 LlamaIndex 默认的 Python 优先向量数据库

Chroma 是 2026 年 LLM 应用领域事实上的 Python 向量数据库。2026-07-28 验证:Chroma OSS(github.com/chroma-core/chroma,21k+ GitHub stars,Apache 2.0)是 LangChain 和 LlamaIndex 的默认向量库,通过 pip install chromadb 嵌入,零基础设施。Chroma Cloud Free 永久提供 5 万向量 + 5 千查询/月;Cloud Pro 起步 $10/月,按 $0.30/百万向量-月 + $0.01/百万查询计费。

本评测覆盖 Chroma 的 Python 优先设计哲学与三种部署模式(嵌入式、客户端-服务器、Cloud)、2026 年 OSS 与 Cloud 各档位实测定价、12+ 支持的嵌入模型(默认本地 Sentence-Transformers + BYO OpenAI/Cohere/Voyage),以及 Chroma 在 Pinecone、Qdrant、Weaviate 并存局面下对 RAG 应用的定位。

TL;DR

  • 开源:Apache 2.0、21k+ GitHub stars、LangChain/LlamaIndex 默认向量库
  • 三种部署模式:嵌入式(pip 进程内)、客户端-服务器(Docker)、Cloud(托管)
  • Cloud 免费层:5 万向量 + 5 千查询/月 + 0.5 GB 存储,永久
  • Cloud Pro:$10/月起,$0.30/百万向量-月 + $0.01/百万查询
  • Enterprise:合同制(通常 $500-5,000/月),HIPAA + SOC 2 Type II + 99.9% SLA
  • 默认嵌入:all-MiniLM-L6-v2(Sentence-Transformers,本地推理,零成本)
  • 12+ 嵌入模型:BGE、E5、mpnet、InstructorXL、BGE-M3 + BYO OpenAI/Cohere/Voyage
  • Python 优先 API:collection.add() / query() / get() 一行调用,Jupyter 原型友好
  • 丰富元数据过滤:$eq / $in / $gte / $and / $or,无需后端 SQL
  • 最适合:Python 数据科学团队;LangChain/LlamaIndex RAG;<500 万向量生产;教学与原型

为什么 Chroma 在 2026 年重要

2026 年的向量数据库已分化成两类:生产级托管服务(Pinecone、Qdrant Cloud、Weaviate Cloud)服务 1000 万+ 向量的企业工作负载;开发者友好的嵌入式存储(Chroma)服务绝大多数驻留在 Python 进程中的 LLM 应用。Chroma 决定性地占据了第二类。

第一,Python 优先的开发者体验。Pinecone 需要账号、API key、网络请求;Chroma 只需 pip install chromadb 加 4 行 Python。一个使用 Chroma 的 LangChain RAG 教程可以在 Jupyter notebook 中完全离线端到端运行,无需任何云端配置。对绝大多数 LLM 应用——聊天机器人、内部工具、原型、研究代码——这一摩擦差异是决定性因素。

第二,与 LangChain 和 LlamaIndex 默认集成。当 LangChain 文档展示向量库示例时,用的是 Chroma。当 LlamaIndex 的 RAG 教程展示持久化时,用的是 Chroma。这种默认位置效应意味着 Chroma 已嵌入无数生产级 LLM 应用,即使最终部署使用了不同的后端——Chroma 是大多数 Python AI 开发者的"向量数据库第一口"。

第三,三种部署模式共享同一套 API。在进程内(嵌入式模式)创建的 Chroma Collection 可以不加代码改动地升级到客户端-服务器(Docker 容器、多进程),再通过一行 client 切换升级到 Cloud。Python 代码完全一致:开发时的 client = chromadb.PersistentClient(path="./db") 在生产环境变成 client = chromadb.HttpClient(host="cloud.trychroma.com")。无 SQL、无模式迁移、无索引重建。

定价明细(2026-07-28 验证)

Chroma 有两个定价面:Chroma OSS(免费、自托管)和 Chroma Cloud(Free + Pro + Enterprise)。OSS 路径完全不收费;Cloud 按三个维度(存储向量 + 查询 + 存储容量)计费,无 per-embedding 费。

Chroma OSS(免费,Apache 2.0)

  • Apache 2.0 协议,完全开源
  • 三种模式:嵌入式(进程内)、客户端-服务器(Docker)、PersistentClient(本地文件)
  • 无向量数上限、无查询限速、无 per-feature 费用
  • 仅受本地硬件(内存、磁盘)限制
  • 社区 Discord + GitHub Issues 支持
  • 默认嵌入(Sentence-Transformers)本地运行——零外部 API 成本
  • BYO 嵌入(OpenAI、Cohere、Voyage)由第三方 API 按你的成本计费

Chroma Cloud Free(永久)

  • 5 万存储向量
  • 5,000 查询/月(约 165/天,个人项目和演示够用)
  • 0.5 GB 存储
  • 每工作区 1 个 Collection
  • 社区 Discord 支持
  • 无 SLA、无合规认证

Chroma Cloud Pro($10/月起,按用量)

  • $0.30/百万向量-月(存储维度)
  • $0.01/百万查询(吞吐量维度)
  • $10/月最低承诺
  • 3 个 Cloud 区域(2026 H1:us-east-1、eu-west-1、ap-southeast-2)
  • 邮件工单支持(48 小时响应)
  • 多工作区,无限 Collection
  • 每日自动备份,14 天保留

Chroma Cloud Enterprise(合同制)

  • 自定义定价(通常 $500-5,000/月,取决于向量数)
  • 独立单租户节点,无嘈杂邻居
  • 提供 HIPAA BAA、SOC 2 Type II 认证
  • 99.9% SLA,7x24 优先支持
  • 私有部署到 AWS / GCP / Azure 客户 VPC
  • 客户自管加密密钥(CMK)
  • 审计日志 + SCIM 配置

嵌入模型定价

模型维度价格用途
all-MiniLM-L6-v2(默认)384$0(本地 SBERT)快速英文检索,CPU 友好
all-mpnet-base-v2768$0(本地 SBERT)更高质量英文通用
multi-qa-MiniLM-L6-cos-v1768$0(本地 SBERT)QA / 语义搜索优化
BGE-small-en-v1.5384$0(ONNX 本地)英文快速,BAAI 质量
BGE-base-en-v1.5768$0(ONNX 本地)英文通用 RAG
BGE-large-en-v1.51024$0(ONNX 本地)英文高质量 RAG
E5-base-v2 / E5-large-v2768/1024$0(本地 SBERT)跨语言检索
InstructorXL768$0(本地 SBERT)指令优化检索
BGE-M31024$0(本地 FlagEmbedding)多语言 EN/ZH/ES/FR dense+sparse
OpenAI text-embedding-3-small1536$0.02 / 1M tokensBYO OpenAI 高质量
OpenAI text-embedding-3-large3072$0.13 / 1M tokens顶级英文检索
Cohere embed-english-v3.01024$0.10 / 1M tokensCohere 质量英文
VoyageAI voyage-31024$0.06 / 1M tokens领域优化检索

三种部署模式

Chroma 的标志性架构特性是三模式 API。创建和查询 Collection 的 Python 代码在嵌入式、客户端-服务器、Cloud 三种模式下完全一致——只有 Client 初始化不同。

嵌入式模式(进程内)

pip install chromadb 时的默认模式。Chroma 作为库在 Python 进程内运行,将数据持久化到本地 SQLite + DuckDB + Parquet 目录,暴露与网络调用相同的 Collection API。无服务器、无端口、无配置。Python 解释器拥有数据库生命周期;关闭解释器即关闭 Chroma。

import chromadb

# 进程内,持久化到 ./chroma_db/
client = chromadb.PersistentClient(path="./chroma_db")
collection = client.create_collection("my_docs")
collection.add(documents=["文档一", "文档二"], ids=["1", "2"])
results = collection.query(query_texts=["搜索词"], n_results=2)
print(results)

90% 的 Jupyter notebook、教程和原型都用此模式。性能受 Python GIL 和单进程限制;在现代笔记本上 <100 万向量可轻松支撑 100+ QPS。

客户端-服务器模式(Docker)

对于 Python 应用与向量库必须分布在不同容器的多进程或多主机部署,Chroma 提供 Docker 镜像(chromadb/chroma)作为独立 HTTP 服务器运行。应用代码通过 chromadb.HttpClient(host="chroma-server", port=8000) 调用。这是生产自托管路径。

import chromadb

# 网络客户端(独立容器/进程)
client = chromadb.HttpClient(host="localhost", port=8000)
collection = client.get_or_create_collection("my_docs")
results = collection.query(query_texts=["搜索词"], n_results=5)

Cloud 模式(托管)

Chroma Cloud 是完全托管版本:相同 API、托管基础设施,默认多租户,Enterprise 档提供单租户节点。配置使用 API key + tenant + database 三元组。

import chromadb

# Cloud(托管)
client = chromadb.CloudClient(
    tenant="your-tenant-id",
    database="your-database",
    api_key="ck-..."
)
collection = client.get_collection("my_docs")

Chroma 从开发到生产的升级只需修改 Client 构造器一行——无模式迁移、无数据重载、Collection 方法无 API 差异。这比 Pinecone(在环境间必须 export/import)或 Qdrant(必须在新 endpoint 重建 collections)显著简化。

默认嵌入 vs BYO 嵌入

Chroma 自带默认嵌入函数——Sentence-Transformers 的 all-MiniLM-L6-v2——首次使用时自动下载模型并通过 ONNX Runtime 在本地推理。384 维嵌入对大多数 RAG 工作负载足够好,整个嵌入管线零外部 API 成本。

需要更高质量或多语言检索时,Chroma 支持 11 种备选内置模型(BGE small/base/large、E5 base/large、mpnet、multi-qa-MiniLM、InstructorXL、BGE-M3)加上 BYO 嵌入对接任何 OpenAI / Cohere / Voyage / Hugging Face 端点。BYO 嵌入通过 collection = client.create_collection(name="x", embedding_function=ef) 配置,其中 ef 是将文本映射为向量的任意可调用对象。

对比 Pinecone:仅 BYO 嵌入,无默认本地模型(必须 BYO OpenAI 或 Cohere)。对比 Qdrant:9 个 FastEmbed 内置但每个需要显式配置;Chroma 的"无需 embedding function 参数即可工作"开箱即用。对比 Weaviate:8 个内置嵌入服务但每个都有独立的 per-token 费用,即使自托管;Chroma 的本地 Sentence-Transformers 在所有部署模式包括 Cloud 上零成本。

元数据过滤:无需 SQL 的 Where 子句

Chroma 最被低估的特性之一是其丰富的元数据过滤。每个 add() 的文档都可以携带任意 JSON 元数据:{"category": "blog", "author": "alice", "year": 2025}。查询时用模仿 MongoDB 查询语言的 Where 子句过滤:

results = collection.query(
    query_texts=["向量数据库"],
    n_results=10,
    where={
        "$and": [
            {"category": {"$eq": "教程"}},
            {"year": {"$gte": 2025}},
            {"author": {"$in": ["alice", "bob"]}}
        ]
    }
)

支持的运算符包括 $eq$ne$gt$gte$lt$lte$in$nin,以及用 $and / $or 组合逻辑。对于"搜索这些文档但只在这个类别、这个日期范围内、这个作者"的 RAG 应用,Chroma 的元数据过滤覆盖了用例,无需叠加 SQL 过滤、Elasticsearch 或独立的属性存储。

Pinecone 和 Qdrant 都支持元数据过滤,但 Chroma 的 API 是四大向量数据库中最干净的——Pinecone 在免费层仅支持 $eq / $in,完整运算符需要 Pinecone Standard+;Qdrant 的过滤语言同样全面但更冗长;Weaviate 使用 GraphQL 风格过滤器,学习曲线不同。

性能:Chroma 何时足够快

Chroma 的 HNSW 索引实现(继承自 hnswlib)在中小型工作负载上有竞争力。来自 Chroma 团队和第三方复现的基准测试(近似值,2026-07-28):

工作负载数据集Chroma(单节点)Pinecone StarterQdrant Cloud Standard
10 万 384 维 top-10SIFT-100K4ms15ms8ms
100 万 1024 维 top-10SIFT-1M18ms42ms35ms
1000 万 768 维 top-10Glove-10M不建议80ms65ms
1 亿 384 维 top-100Deep-100M不支持未公开110ms

Chroma 在 10 万-100 万向量区间表现出色,这是单机性能成瓶颈且嵌入式部署很重要的场景。在 >1000 万向量时,Chroma 团队官方文档明确建议用户迁移到 Pinecone、Qdrant 或 Weaviate。

LangChain 与 LlamaIndex 集成

Chroma 与两个最流行的 LLM 框架的紧密集成是其开发者心智份额的主要来源。LangChain 的 Chroma 向量库类接受相同的 Where 子句,支持多模态文档(文本 + 图像),开箱即用地提供 async 友好的 aadd_documents / asimilarity_search 方法。LlamaIndex 的 ChromaVectorStore 作为可插入的 VectorStore 实现集成到任何 RAG 流水线中。

两个框架的文档都把 Chroma 作为向量库教程的规范示例——这意味着 2026 年学习 RAG 的开发者先接触 Chroma,立即上手,之后再评估替代品。这种默认位置效应是持久的:Chroma 在 LLM 应用生态中的装机量显著超过其独立 GitHub stars 所暗示的。

何时选 Chroma vs 替代品

选择 Chroma 当:

  • 你正在用 LangChain 或 LlamaIndex 构建 Python RAG 应用
  • 向量数 <500 万且希望零基础设施开销
  • 想要同一份代码库在 Jupyter(嵌入式)、Docker(客户端-服务器)、生产(Cloud)三处运行而无需代码改动
  • 工作量偏开发,或在构建内部工具 / 聊天机器人 / 研究代码
  • 想要零 per-token 成本的默认本地嵌入函数

选择 Pinecone 当:你需要 >1000 万向量的托管 SaaS 简单性、多区域复制、99.9% SLA 或大规模零运维。Pinecone Serverless 是无基础设施的生产级向量搜索的最简单路径。

选择 Qdrant 当:你需要原生混合检索(Sparse+Dense)、>500 万向量的 Rust 原生性能、GPU 加速索引,或 BYOC(自带云账户)控制成本。

选择 Weaviate 当:你需要在 Flex 档就有 HIPAA/SOC 2 合规、8 个内置嵌入服务,或 Query Agent 用于自然语言数据库操作。

总结

Chroma 是 2026 年 Python 优先向量存储的强烈推荐,尤其当 LangChain 或 LlamaIndex 在技术栈中时。Apache 2.0 OSS + 默认本地 Sentence-Transformers 嵌入 + 三种部署模式(嵌入式 / 客户端-服务器 / Cloud)共享同一 API + LangChain/LlamaIndex 默认集成 + 丰富的元数据过滤的组合,使其在开发者体验上领先 Pinecone,在生态覆盖上领先 Qdrant,并独特地定位为向量搜索最低摩擦的入口。

权衡是真实的:Cloud Pro $10/月最低 + per-vector 定价在 500 万+ 存储向量后扩展性差于 Pinecone Serverless;原生混合检索弱于 Qdrant;GPU 索引不可用(Pinecone/Qdrant 有);横向扩展能力在 1 亿+ 向量场景弱于 Pinecone。Cloud 也只有 3 个区域(us-east-1、eu-west-1、ap-southeast-2),中国大陆直连延迟较高——但 OSS 模式可以国内自托管而无此问题。

对零运维 SaaS 大规模简化,Pinecone Serverless 仍是更简单的路径。对原生混合检索 + Rust 性能,Qdrant Cloud Pro 是更好的选择。对 HIPAA 合规 + Flex 档内置嵌入,Weaviate 是合规完成度最高的选择。Chroma 处于中间——最佳开发者体验、最佳 LangChain/LlamaIndex 集成、最适合 Python 优先的小中型原型和生产,但大规模故事弱于三个托管竞品。

对 2026 年大多数构建第一个 RAG 应用的团队,Chroma 是正确的起点。零基础设施、零 per-token 嵌入成本、跨开发/生产同一 API 的组合意味着你可以在一个下午交付可工作的 RAG 系统,如果规模需要再迁移到 Pinecone/Qdrant/Weaviate。从 Chroma 迁移到托管向量 DB 的成本是数据导出加上模式重建——Chroma 的数据以可移植的 Parquet + SQLite 存储,非专有格式。

试试 Qdrant Cloud

需要原生混合检索 + Rust 性能 + GPU 加速索引的大规模场景,可考虑 Qdrant Cloud Standard,$25/月起,存储 $0.06/GB-月。

免费试用 Qdrant →