文档API 参考📓 教程🧑‍🍳 食谱🤝 集成💜 Discord🎨 Studio
文档

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

📘

稀疏嵌入支持

要使用稀疏嵌入支持,您需要将QdrantDocumentStore 初始化为use_sparse_embeddings=True,该选项默认为

False。如果您想使用在此功能禁用时创建的文档存储或集合,则必须迁移现有数据。您可以通过利用migrate_to_sparse_embeddings_support 实用函数来实现。

其他参考资料

🧑‍🍳 食谱:使用 Qdrant 和 FastEmbed 进行稀疏嵌入检索