Skip to main content
Azure AI 搜索(以前称为 Azure 认知搜索)是一项 Microsoft 云搜索服务,它为开发人员提供基础设施、API 和工具,用于大规模地检索向量、关键词和混合查询的信息。 AzureAISearchRetriever 是一个集成模块,用于从非结构化查询中返回文档。它基于 BaseRetriever 类,并针对 Azure AI 搜索的 2023-11-01 稳定 REST API 版本,这意味着它支持向量索引和查询。 本指南将帮助您开始使用 Azure AI 搜索 检索器。有关所有 AzureAISearchRetriever 功能和配置的详细文档,请前往 API 参考 AzureAISearchRetriever 取代了 AzureCognitiveSearchRetriever,后者即将被弃用。我们建议切换到基于最新稳定版搜索 API 的新版本。

集成详情

设置

要使用此模块,您需要:
  • Azure AI 搜索服务。如果您注册 Azure 试用版,可以免费 创建一个。免费服务的配额较低,但足以运行此笔记本中的代码。
  • 具有向量字段的现有索引。有几种方法可以创建索引,包括使用 向量存储模块。或者,尝试 Azure AI 搜索 REST API
  • API 密钥或 Azure AD 令牌。
然后,我们可以将搜索服务名称、索引名称和 API 密钥设置为环境变量(或者,您可以将它们作为参数传递给 AzureAISearchRetriever)。搜索索引提供可搜索的内容。 使用 API 密钥
使用 Azure AD 令牌
如果您希望从单个查询中获得自动跟踪,您还可以通过取消注释以下内容来设置您的 LangSmith API 密钥:

安装

此检索器位于 langchain-community 包中。我们还需要一些额外的依赖项:

实例化

对于 AzureAISearchRetriever,请提供 index_namecontent_keytop_k,其中 top_k 设置为您想要检索的结果数量。将 top_k 设置为零(默认值)将返回所有结果。

用法

现在您可以使用它从 Azure AI 搜索检索文档。这是您要调用的方法。它将返回与查询相关的所有文档。

示例

本节演示如何使用内置样本数据使用检索器。如果您的搜索服务上已经有向量索引,可以跳过此步骤。 首先提供端点和密钥。由于我们在这一步中创建向量索引,因此请指定一个文本嵌入模型以获取文本的向量表示。此示例假设使用 Azure OpenAI 以及 text-embedding-ada-002 部署。因为此步骤会创建索引,请务必为您的搜索服务使用管理员 API 密钥。
我们将使用来自 Azure OpenAI 的嵌入模型将我们的文档转换为存储在 Azure AI 搜索向量存储中的嵌入。我们还将索引名称设置为 langchain-vector-demo。这将创建一个与该索引名称关联的新向量存储。
接下来,我们将数据加载到新创建的向量存储中。对于此示例,我们加载 state_of_the_union.txt 文件。我们将文本拆分为 400 个 token 的块,无重叠。最后,文档作为嵌入添加到我们的向量存储中。
接下来,我们将创建一个检索器。当前的 index_name 变量是上一步中的 langchain-vector-demo。如果您跳过了向量存储创建,请在参数中提供您的索引名称。在此查询中,将返回顶部结果。
现在我们可以从上传的文档中检索与我们的查询相关的数据。

在链中使用


API 参考

有关所有 AzureAISearchRetriever 功能和配置的详细文档,请前往 API 参考