如何从磁盘加载 Chroma 向量存储?
2024-03-05 16:34:58
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_name
、persist_directory
、embedding_function
和 collection_metadata
是否正确。
2. 我可以从多个持久化目录加载向量存储吗?
否,Chroma 向量存储只能从一个持久化目录加载。
3. 如何删除持久化向量存储?
使用 vectorstore.delete()
方法从磁盘中删除向量存储。
4. 如何调整持久化目录?
使用 vectorstore.set_persist_directory()
方法更新持久化目录。
5. 加载向量存储后如何添加新文档?
使用 vectorstore.add()
方法将新文档添加到向量存储。