Skip to main content
Azure AI 搜索(以前称为 Azure SearchAzure Cognitive Search)是一项云搜索服务,为开发人员提供基础设施、API 和工具,用于大规模检索向量、关键词和混合查询的信息。 您需要安装 langchain-community 并使用 pip install -qU langchain-community 来使用此集成

安装 Azure AI 搜索 SDK

使用 azure-search-documents 包版本 11.4.0 或更高版本。

导入所需的库

OpenAIEmbeddings 是假设使用的,但如果您使用的是 Azure OpenAI,请改用 AzureOpenAIEmbeddings

配置 OpenAI 设置

设置您的 OpenAI 提供商变量。您需要一个 OpenAI 账户 或一个 Azure OpenAI 账户 来生成嵌入。

配置向量存储设置

您需要一个 Azure 订阅 和一个 Azure AI Search 服务 才能使用此向量存储集成。小规模和工作负载有限的场景有免费版本可用。 设置您的 Azure AI Search URL 和管理员 API 密钥变量。您可以从 Azure 门户 获取这些变量。

创建嵌入和向量存储实例

创建 OpenAIEmbeddings 和 AzureSearch 类的实例。完成此步骤后,您应该在 Azure AI Search 资源上拥有一个空的搜索索引。集成模块提供默认架构。

创建向量存储实例

使用上面的嵌入创建 AzureSearch 类的实例

将文本和嵌入插入向量存储

此步骤加载、分块并向量化示例文档,然后将内容索引到 Azure AI Search 上的搜索索引中。

执行向量相似性搜索

使用 similarity_search() 方法执行纯向量相似性搜索:

执行带相关分数的向量相似性搜索

使用 similarity_search_with_relevance_scores() 方法执行纯向量相似性搜索。不符合阈值要求的查询将被排除。

执行混合搜索

使用 search_type 或 hybrid_search() 方法执行混合搜索。向量和非向量文本字段并行查询,结果合并,并返回统一结果集的顶部匹配项。

自定义架构和查询

本节向您展示如何使用自定义架构替换默认架构。

使用自定义可过滤字段创建新索引

此架构显示字段定义。它是默认架构加上几个新字段,这些字段被标记为可过滤。因为它使用默认向量配置,所以这里不会看到向量配置或向量配置文件覆盖。默认向量配置文件的名称是 “myHnswProfile”,它使用分层可导航小世界 (HNSW) 向量配置对 content_vector 字段进行索引和查询。 此步骤中没有该架构的数据。当您执行单元格时,您应该在 Azure AI Search 上获得一个空索引。

添加数据并执行包含过滤器的查询

此示例根据自定义架构将数据添加到向量存储。它将文本加载到 title 和 source 字段中。source 字段是可过滤的。本节中的示例查询根据 source 字段中的内容过滤结果。

使用评分配置文件创建新索引

这是另一个包含评分配置文件定义的自定义架构。评分配置文件用于非向量内容的相关性调整,这在混合搜索场景中很有用。