Skip to main content
本笔记本介绍如何开始使用 Chroma 向量存储。
Chroma 是一个专注于开发者生产力和幸福感的 AI 原生开源向量数据库。Chroma 采用 Apache 2.0 许可证。在 此页面 查看 Chroma 的完整文档,并在 此页面 查找 LangChain 集成的 API 参考。
Chroma CloudChroma Cloud 提供无服务器向量和全文搜索功能。它速度极快、具有成本效益、可扩展且省心。只需 30 秒即可创建数据库并使用 5 美元的免费额度试用。开始使用 Chroma Cloud

设置

要访问 Chroma 向量存储,您需要安装 langchain-chroma 集成包。

凭据

您可以无需任何凭据即可使用 Chroma 向量存储,只需安装上述包即可! 如果您是 Chroma Cloud 用户,请设置您的 CHROMA_TENANTCHROMA_DATABASECHROMA_API_KEY 环境变量。 安装 chromadb 包后,您还可以访问 Chroma CLI,它可以为您设置这些变量。首先,通过 CLI 登录,然后使用 connect 命令
如果您希望获得业界最佳的模型调用自动追踪,也可以通过取消注释以下内容来设置您的 LangSmith API 密钥:

初始化

基本初始化

以下是基本初始化,包括使用目录将数据保存到本地。

本地运行(内存中)

您可以通过实例化带有集合名称和嵌入提供程序的 Chroma 实例,使 Chroma 服务器在内存中运行:
如果您不需要数据持久性,这是在构建 LangChain AI 应用程序时进行实验的好选择。

本地运行(带数据持久性)

您可以提供 persist_directory 参数以在程序多次运行时保存您的数据:

连接到 Chroma 服务器

如果您有一个在本地运行的 Chroma 服务器,或者您自己 部署 了一个,您可以通过提供 host 参数连接到它。 例如,您可以使用 chroma run 启动本地运行的 Chroma 服务器,然后通过 host='localhost' 连接它:
对于其他部署,您可以使用 portsslheaders 参数自定义您的连接。

Chroma Cloud

Chroma Cloud 用户也可以使用 LangChain 构建。为您的 Chroma 实例提供 Chroma Cloud API 密钥、租户和数据库名称:

从客户端初始化

您也可以从 Chroma 客户端初始化,如果您想要更容易访问底层数据库,这特别有用。

本地运行(内存中)

本地运行(带数据持久性)

连接到 Chroma 服务器

例如,如果您在本地运行 Chroma 服务器(使用 chroma run):

Chroma Cloud

设置好 CHROMA_API_KEYCHROMA_TENANTCHROMA_DATABASE 后,您可以直接实例化:

访问您的 Chroma 数据库

创建 Chroma 向量存储

管理向量存储

创建向量存储后,我们可以通过添加和删除不同项目与其交互。

向向量存储添加项目

我们可以使用 add_documents 函数将项目添加到我们的向量存储中。

更新向量存储中的项目

既然我们已经将文档添加到向量存储中,我们可以使用 update_documents 函数更新现有文档。

从向量存储删除项目

我们也可以按以下方式从向量存储中删除项目:

查询向量存储

一旦创建了向量存储并添加了相关文档,您很可能希望在运行链或智能体期间查询它。

直接查询

相似度搜索

执行简单的相似度搜索可以如下所示:

带分数的相似度搜索

如果您想执行相似度搜索并接收相应的分数,可以运行:

按向量搜索

您也可以按向量搜索:

其他搜索方法

本笔记本未涵盖各种其他搜索方法,例如 MMR 搜索。有关 Chroma 可用的搜索能力的完整列表,请查看 API 参考

转换为检索器进行查询

您还可以将向量存储转换为检索器,以便在链中更轻松地使用。有关您可以传递的不同搜索类型和 kwargs 的更多信息,请访问 Chroma API 参考

用于检索增强生成的用法

关于如何使用此向量存储进行检索增强生成 (RAG) 的指南,请参阅以下部分:

API 参考

有关所有 Chroma 向量存储功能和配置的详细文档,请前往 API 参考