ChromaDB 快速开始
这页的目标不是把 ChromaDB 所有能力讲完,而是先让你把第一条检索链路跑起来。只要能做到“写入两段文本,再查回一段相关内容”,就已经够进入下一步了。
1. 核心特点
- 极其简单:只需几行代码即可运行。
- 全内置:默认包含本地存储和 Embedding 模型(无需外接 OpenAI)。
- 可扩展:支持从内存运行到分布式生产环境。
2. 安装
pip install chromadb
3. 基础使用流程
import chromadb
# 1. 初始化客户端 (数据持久化在本地 ./my_db 目录)
client = chromadb.PersistentClient(path="./my_db")
# 2. 创建一个集合 (Collection) - 类似于 SQL 的 Table
collection = client.get_or_create_collection(name="my_documents")
# 3. 添加数据 (Chroma 会自动帮你生成向量)
collection.add(
documents=["这是关于苹果的介绍", "这是关于微软的介绍"],
metadatas=[{"source": "wiki"}, {"source": "wiki"}],
ids=["id1", "id2"]
)
# 4. 进行查询 (语义搜索)
results = collection.query(
query_texts=["什么是 Windows?"],
n_results=1
)
print(results)
新手阅读提示
- 先跑通上面这段最小代码,再考虑 Docker 或分布式部署
- 先用
documents + metadatas管理知识,再引入自定义 embedding - 先做 20 个真实问题回测,再谈“精度优化”
很多人刚装好就想接 OpenAI embedding、接 LangChain、接服务端模式。其实没必要。先确认本地最小链路能跑,再加外部依赖,后面排错会省很多时间。
4. 存储模式
| 模式 | 初始化代码 | 适用场景 |
|---|---|---|
| 内存模式 (Ephemeral) | chromadb.Client() | 单元测试、临时脚本 |
| 持久化模式 (Persistent) | chromadb.PersistentClient(path="./db") | 本地应用、小型生产环境 |
| 服务器模式 (Client/Server) | chromadb.HttpClient(host='localhost', port=8000) | 分布式应用、生产集群 |
5. Docker 启动 (服务器模式)
如果你希望在生产环境运行 Chroma:
docker pull chromadb/chroma
docker run -p 8000:8000 chromadb/chroma
一句轻松提醒:
向量库像仓库管理,不是“货越多越好”,而是“分类清楚、查找快、别拿错”。
如果你这一步已经能稳定查到结果,下一页就该去看集合设计,而不是继续往 quickstart 里堆功能。
下一步:学习如何管理你的数据仓库——Collections 集合管理。