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

安装 Azure AI 搜索 SDK

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

导入所需库

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

配置 OpenAI 设置

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

配置向量存储设置

您需要一个 Azure 订阅Azure AI 搜索服务 才能使用此向量存储集成。对于小型和有限的工作负载,提供免费版本。 为您的 Azure AI 搜索 URL 和管理员 API 密钥设置变量。您可以从 Azure 门户 获取这些变量。

创建嵌入和向量存储实例

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

创建向量存储实例

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

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

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

执行向量相似性搜索

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

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

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

执行混合搜索

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

自定义架构和查询

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

使用自定义可筛选字段创建新索引

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

添加数据并执行包含筛选器的查询

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

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

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