在过去几年里,大模型(LLM)崛起带火了一个概念:向量数据库。如果你想做 AI 应用,比如智能问答、知识检索、个性化推荐,向量数据库几乎是绕不开的。
但问题是:对大多数开发者来说,“向量”、“嵌入”、“相似度检索”这些词听起来太学术,学习门槛高。于是很多人就放弃了。
今天我要聊的 Chroma,就是一个让开发者“无痛上手”的向量数据库。它轻量、直观、Python 友好,甚至可以直接内嵌在你的项目里,不需要复杂的集群或运维。
如果你不懂 Chroma,这篇文章会让你想去尝试;如果你懂一点点,这篇文章会让你更爱它。
为什么选择 Chroma?
市面上有很多向量数据库,比如 Milvus、Pinecone、Weaviate。它们功能强大,但大多数有学习成本、部署成本。而 Chroma 的设计目标是:
- 上手快:pip 一下就能用,像 SQLite 一样简单。
- 与 Python 无缝结合:API 贴合 Python 开发者的习惯。
- 适合快速实验:做 Demo、做原型,分钟级就能跑起来。
- 支持持久化:数据不会随程序退出而丢失。
一句话:Chroma 是面向“想快速把想法变成应用”的开发者的。
5 行代码:体验 Chroma 的基本用法
来点干货,我们用 5 行代码完成一个“知识库检索”的最小示例。
import chromadb
# 1. 启动客户端
client = chromadb.PersistentClient(path="chroma_db")
# 2. 创建一个集合(相当于数据库里的表)
collection = client.get_or_create_collection("my_docs")
# 3. 插入数据
collection.add(
documents=["机器学习是人工智能的一个分支", "深度学习是机器学习的一个子领域"],
ids=["doc1", "doc2"]
)
# 4. 相似度查询
results = collection.query(query_texts=["什么是深度学习?"], n_results=2)
print(results)
运行后你会发现,Chroma 能直接帮你找到最相关的那句话。没有复杂的配置、没有冗长的 API,就像操作 Python 列表一样自然。
结合大模型:让知识“活”起来
光存储和检索还不够。真正的威力是 结合大语言模型。比如,你想做一个“私有知识库 ChatGPT”:
from openai import OpenAI
client_llm = OpenAI(api_key="your_api_key")
query = "请解释一下机器学习和深度学习的关系"
results = collection.query(query_texts=[query], n_results=2)
context = " ".join(results["documents"][0])
prompt = f"根据以下资料回答:\n{context}\n\n问题:{query}"
response = client_llm.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}]
)
print(response.choices[0].message.content)
这样,你的问题会结合知识库里的内容,大模型不再“胡编乱造”,而是基于你自己的数据回答。这就是 RAG(Retrieval-Augmented Generation,检索增强生成) 的核心。
实战技巧:如何玩出花来?
- 存代码片段:把常用的函数存进 Chroma,用自然语言搜索代码。
- 做文档问答:把 PDF 拆分成段落,存入 Chroma,让大模型变成你的“文档助理”。
- 个性化推荐:存用户行为 Embedding,用 Chroma 做相似度搜索,推荐类似内容。
- 本地持久化:Chroma 默认支持落盘,不用担心数据丢失,甚至能直接打包成桌面应用。
总结
Chroma 的价值在于:
- 降低门槛:不懂数据库也能用。
- 贴合开发者:Pythonic、简洁、易于集成。
- 快速试错:原型到上线,中间没有太大阻力。
如果你曾经因为“向量数据库太复杂”而止步,那么 Chroma 就是你最好的入门选择。它能帮你把**“想法 → Demo → 产品”**的路径缩短到极致。
建议你先用它做一个小实验,比如“给 PDF 加个问答功能”,体验一下“5 分钟跑通”的快乐。相信我,一旦玩起来,你会发现:
👉 Chroma 不只是数据库,而是 AI 开发的加速器。
本文由 dblens.com 知识分享,🚀 dblens for MySQL - AI大模型深度融合的一款免费的MySQL可视化GUI数据库连接管理软件。