返回

如何从磁盘加载 Chroma 向量存储?

python

Chroma 向量存储:从磁盘加载

简介

Chroma 是一个强大的向量存储库,用于存储和管理高维数据,例如文本嵌入。本文将逐步指导你如何从磁盘加载 Chroma 向量存储,解决加载后发现存储为空的问题。

加载步骤

1. 创建向量存储

首先,确保你使用与创建向量存储时相同的 Chroma 版本和配置。

2. 持久化向量存储

使用 persist() 方法将向量存储持久化到磁盘。

3. 加载向量存储

使用 Chroma.from_collection_metadata() 方法从持久化目录中加载向量存储:

vectorstore = Chroma.from_collection_metadata(collection_name, persist_directory, embedding_function, collection_metadata)

其中:

  • collection_name:要加载的集合名称。
  • persist_directory:持久化目录的路径。
  • embedding_function:用于嵌入的函数。
  • collection_metadata:存储在集合中的元数据字典。

验证向量存储

加载后,通过 print(vectorstore._collection.count()) 验证集合中包含的文档数。

可能导致存储为空的错误

  • 使用了错误的 persist_directory
  • collection_name 错误。
  • embedding_function 不匹配创建时的函数。
  • collection_metadata 不匹配存储的元数据。

解决方法

按照上述步骤和示例代码,你可以成功从磁盘加载 Chroma 向量存储。

结论

遵循本指南,你可以轻松加载和使用 Chroma 向量存储来管理你的高维数据。如果你在加载过程中遇到任何问题,请参考下面的常见问题解答。

常见问题解答

1. 为什么我加载的向量存储为空?

这可能是由于错误的配置或不匹配的元数据造成的。检查你提供的 collection_namepersist_directoryembedding_functioncollection_metadata 是否正确。

2. 我可以从多个持久化目录加载向量存储吗?

否,Chroma 向量存储只能从一个持久化目录加载。

3. 如何删除持久化向量存储?

使用 vectorstore.delete() 方法从磁盘中删除向量存储。

4. 如何调整持久化目录?

使用 vectorstore.set_persist_directory() 方法更新持久化目录。

5. 加载向量存储后如何添加新文档?

使用 vectorstore.add() 方法将新文档添加到向量存储。