QdrantDocumentStore
将 Qdrant 向量数据库与 Haystack 配合使用。
Qdrant 是一个功能强大、高性能、大规模的向量数据库。该QdrantDocumentStore 可与任何 Qdrant 实例、内存中、本地持久化、托管以及官方 Qdrant Cloud 一起使用。
安装
您只需使用以下命令安装 Qdrant Haystack 集成:
pip install qdrant-haystack
初始化
使用QdrantDocumentStore 的最快方法是创建一个内存实例。
from haystack.dataclasses.document import Document
from haystack_integrations.document_stores.qdrant import QdrantDocumentStore
document_store = QdrantDocumentStore(
":memory:",
recreate_index=True,
return_embedding=True,
wait_result_from_api=True,
)
document_store.write_documents([
Document(content="This is first", embedding=[0.0]*5),
Document(content="This is second", embedding=[0.1, 0.2, 0.3, 0.4, 0.5])
])
print(document_store.count_documents())
在 Haystack 之外创建的集合
当您创建一个
QdrantDocumentStore实例时,Haystack 会负责设置集合。通常情况下,您不能将未在 Haystack 中创建的 Qdrant 集合与 Haystack 一起使用。如果您想迁移现有集合,请参阅位于 https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/qdrant/src/haystack_integrations/document_stores/qdrant/migrate_to_sparse.py 的示例脚本。
您也可以直接连接到 Qdrant Cloud。一旦您从 Qdrant 控制面板获取了 API 密钥和集群 URL,您就可以像这样连接:
from haystack.dataclasses.document import Document
from haystack_integrations.document_stores.qdrant import QdrantDocumentStore
from haystack.utils import Secret
document_store = QdrantDocumentStore(
url="https://XXXXXXXXX.us-east4-0.gcp.cloud.qdrant.io:6333",
index="your_index_name",
embedding_dim=1024, # based on the embedding model
recreate_index=True, # enable only to recreate the index and not connect to the existing one
api_key = Secret.from_token("YOUR_TOKEN")
)
document_store.write_documents([
Document(content="This is first", embedding=[0.0]*5),
Document(content="This is second", embedding=[0.1, 0.2, 0.3, 0.4, 0.5])
])
print(document_store.count_documents())
更多信息
您可以在我们的 集成页面 上找到更多初始化和使用 QdrantDocumentStore 的方法。
支持的 Retrievers
QdrantEmbeddingRetriever:根据文档的密集嵌入(向量)从QdrantDocumentStore中检索文档。QdrantSparseEmbeddingRetriever:根据文档的稀疏嵌入从QdrantDocumentStore中检索文档。QdrantHybridRetriever:根据密集和稀疏嵌入从QdrantDocumentStore中检索文档。
稀疏嵌入支持
要使用稀疏嵌入支持,您需要将
QdrantDocumentStore初始化为use_sparse_embeddings=True,该选项默认为
False。如果您想使用在此功能禁用时创建的文档存储或集合,则必须迁移现有数据。您可以通过利用migrate_to_sparse_embeddings_support实用函数来实现。
其他参考资料
更新于 8 个月前
