📘 **TELUS Agriculture & Consumer Goods** 如何通过 **Haystack Agents** 转变促销交易

Haystack 新集成 DocumentStore:QdrantDocumentStore

了解 QdrantDocumentStore、其优势以及如何将其与 Haystack 结合使用。

我们很高兴地推出 QdrantDocumentStore,它是 Qdrant 的 Haystack DocumentStore 系列的最新成员。这是一个开源软件包,提供了强大的功能,例如高效搜索、高维向量检索和灵活的启动选项。

让我们来了解一下 DocumentStores 以及如何将 QdrantDocumentStore 用于您的管道!

Haystack DocumentStores

Haystack 是一个端到端的 NLP 框架,提供了一种模块化方法来构建最先进的生成式 AI、QA 和语义知识库搜索系统。大多数现代 NLP 系统的核心组件是一个能够高效存储和检索大量文本数据的数据库。向量数据库是实现这一目标的绝佳方式。这些数据库可以存储文本的向量表示,同时还能高效地快速检索它们。为此,Haystack 提供了一组原生 DocumentStores,允许您连接和查询可能存储在 Elasticsearch、Pinecone、Weaviate 或其他数据库中的数据。这样,您就可以在一个数据库中存储和维护您的数据,同时在 Haystack 管道和应用程序中使用它们。

image

Qdrant 新 DocumentStore

Haystack DocumentStore 系列的最新成员是 QdrantDocumentStore。这个新的 DocumentStore 是首创的,它是一个由 Qdrant 团队维护的外部软件包。Qdrant 是一个向量相似性搜索引擎,提供了一个生产级的服务,拥有方便的 API,用于存储、搜索和管理带有附加负载的向量。Qdrant 针对高维向量搜索进行了优化,并支持各种相似性度量,使其成为各种 NLP 应用的强大工具。

QdrantDocumentStore 的优势

使用 Qdrant 和 Haystack 的一些优势包括

  • 高效搜索和检索高维向量
  • mmap 支持 HNSW 图存储
  • 过滤功能直接集成到向量搜索阶段
  • 基于元数据属性的约束
  • 通过使用 标量量化 将内存占用减少高达 4 倍
  • 使用 少量 RAM 存储高达一百万个向量
  • 开源!😍

Qdrant 提供了多种启动实例的选项。本地内存/磁盘持久化模式非常适合测试场景以及在 Colab 或 Jupyter Notebook 中进行快速实验,您计划只存储少量向量。当您需要扩展时,可以使用 Docker 容器轻松切换到本地服务器部署。如果您根本不想管理基础设施,还有一个完全托管的 Qdrant Cloud 服务,提供免费永久 1GB 集群。使用 Haystack 都可以实现!💙

Haystack 是一个支持开发人员构建完整 NLP 管道的综合框架,而 Qdrant 是一个强大的向量相似性搜索引擎。为了确保这两个工具之间的无缝协作并创建健壮的 NLP 应用程序,QdrantDocumentStore 是 Qdrant 维护的一个单独的软件包,专门设计用于与 Haystack 集成。通过拥有自己的发布周期,QdrantDocumentStore 可以独立于 Haystack 进行更新,从而带来更简化、更高效的工作流程。

如何使用 QdrantDocumentStore

如果您想将 QdrantDocumentStore 与 Haystack 一起使用,可以在 GitHub 上的 qdrant-haystack 仓库中找到源代码。通过此集成,您可以利用 Qdrant 强大的搜索功能和 Haystack 的自然语言处理功能,创建强大的语义搜索和检索工具。

要将 QdrantDocumentStore 与 Haystack 一起使用,您可以安装 qdrant-haystack

pip install qdrant-haystack

然后,初始化 QdrantDocumentStore

from qdrant_haystack.document_stores import QdrantDocumentStore

document_store = QdrantDocumentStore(
    ":memory:",
    index="Document",
    embedding_dim=512,
    recreate_index=True,
    hnsw_config={"m": 16, "ef_construct": 64}  # Optional
)

如果您想为嵌入启用标量量化,可以像使用原始 QdrantClient 一样,通过传递正确的配置来实现。

from qdrant_haystack.document_stores import QdrantDocumentStore
from qdrant_client.http import models

document_store = QdrantDocumentStore(
    "https://:6333", 
    index="Document",
    embedding_dim=512,
    recreate_index=True,
    quantization_config=models.ScalarQuantization(
        scalar=models.ScalarQuantizationConfig(
            type=models.ScalarType.INT8,
            quantile=0.99,
            always_ram=True,
            ),
     ),
)

QdrantDocumentStore 支持 Qdrant Python 客户端中 所有可用的配置属性

初始化文档存储后,您可以使用 write_documents 方法编写您的文档。这将允许您将向量数据库与 Haystack 无缝集成,并使用其功能。

document_store.write_documents(docs)

就是这样!有关将 Qdrant 与 Haystack 结合使用的更多示例和文档,请参阅 qdrant-haystack GitHub 仓库,如果您有任何疑问,请加入 Haystack 社区 Discord