

Chroma - 面向 AI 的开源搜索引擎。
构建能够搜索您数据的 Python 或 JavaScript LLM 应用的最快方式!
pip install chromadb # python 客户端
# 对于 JavaScript,运行 npm install chromadb!
# 对于客户端-服务器模式,运行 chroma run --path /chroma_db_path
我们的托管服务 Chroma Cloud 提供无服务器向量搜索、混合搜索和全文搜索。它极其快速、经济高效、可扩展且易于使用。创建数据库并使用 5 美元的免费额度在 30 秒内体验。
核心 API 仅包含 4 个函数(运行我们的 💡 Google Colab):
import chromadb
# 为方便原型设计,在内存中设置 Chroma。可以轻松添加持久化!
client = chromadb.Client()
# 创建集合。也支持 get_collection, get_or_create_collection, delete_collection!
collection = client.create_collection("all-my-documents")
# 向集合添加文档。也支持更新和删除。基于行的 API 即将推出!
collection.add(
documents=["这是文档1", "这是文档2"], # 我们自动处理分词、嵌入和索引。您也可以跳过此步骤,添加自己的嵌入向量
metadatas=[{"source": "notion"}, {"source": "google-docs"}], # 可基于此过滤!
ids=["doc1", "doc2"], # 每个文档的唯一标识符
)
# 查询/搜索最相似的 2 个结果。您也可以通过 id 进行 .get 操作
results = collection.query(
query_texts=["这是一个查询文档"],
n_results=2,
# where={"metadata_field": "is_equal_to_this"}, # 可选过滤器
# where_document={"$contains":"search_string"} # 可选过滤器
)
在我们的文档中了解所有功能。
🦜️🔗 LangChain(Python 和 JS)、🦙 LlamaIndex,更多集成即将推出例如,"与您的数据对话" 用例:
1. 将文档添加到您的数据库。您可以传入自己的嵌入向量、嵌入函数,或让 Chroma 为您嵌入。
2. 使用自然语言查询相关文档。
3. 将文档组合到像 GPT4 这样的 LLM 的上下文窗口中,进行额外的摘要或分析。
什么是嵌入?
[1.2, 2.1, ....]。这个过程使文档对机器学习模型变得“可理解”。Chroma 允许您存储这些向量或嵌入,并通过最近邻搜索而非传统数据库的子字符串匹配进行搜索。默认情况下,Chroma 使用 Sentence Transformers 为您嵌入,但您也可以使用 OpenAI 嵌入、Cohere(多语言)嵌入或您自己的嵌入。
Chroma 是一个快速发展的项目。我们欢迎 PR 贡献者以及对如何改进项目的想法。
- 加入 Discord 上的讨论 - #contributing 频道
- 查看 🛣️ 路线图并贡献您的想法
- 认领一个 Issue 并提交 PR - Good first issue 标签
- 阅读我们的贡献指南
发布节奏
我们目前每周一发布 pypi 和 npm 包的新标记版本。热修复会在周内随时发布。