Skip to main content
Azure AI 搜索(前身为 Azure Search 和 Azure 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 字段中的内容筛选结果。

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

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