ChromaDB 快速开始
ChromaDB 是一个开源的向量数据库(Vector Database),旨在让 AI 应用的 Embedding 管理变得异常简单。它非常适合中小型项目、本地原型开发以及学术研究。
把它想成“语义版文件柜”:
你不再按文件名找资料,而是按“意思接近”找答案。
这页帮你先把文件柜搭起来,再学会怎么分层归档。
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 个真实问题回测,再谈“精度优化”
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
一句轻松提醒:
向量库像仓库管理,不是“货越多越好”,而是“分类清楚、查找快、别拿错”。
下一步:学习如何管理你的数据仓库——Collections 集合管理。