技术背景介绍
Azure AI Search(原 Azure Search 和 Azure Cognitive Search)是微软提供的一款云端搜索服务,具备支持关键字搜索、向量搜索和混合搜索的能力。它帮助开发者在大规模数据上实现高效的信息检索,包括语义搜索和增强的搜索相关性。通过集成向量化能力,Azure AI Search 成为实现 AI 搜索的得力工具。
本文将结合实际代码,为大家展示如何在 Azure AI Search 中实现向量存储、文本检索以及各种搜索类型。
核心原理解析
Azure AI Search 提供向量化检索功能,通过集成 OpenAI Embeddings 或 Azure OpenAI Embeddings,可以将自然语言查询映射到高维向量空间。这种方式在处理模糊查询、情感匹配等任务上表现更加优秀。系统可以通过以下几类搜索方式满足不同需求:
- 关键字搜索:基于文本字段的传统检索。
- 向量相似性搜索:通过查询向量与存储向量的相似性排名返回结果。
- 混合搜索:同时结合关键字和向量检索的结果。
在开发者设置和使用方面,主要分为以下步骤:
- 配置 Azure AI Search 服务账户及 OpenAI/Azure OpenAI API。
- 实现数据向量化并存储于 Azure AI Search。
- 执行不同类型的搜索(相似性搜索、混合搜索等)。
代码实现演示
以下代码将展示从配置到实现向量搜索的完整流程。
1. 安装必要的库
pip install --upgrade --quiet azure-search-documents azure-identity langchain-community langchain-openai
2. 初始化 Azure AI Search 和嵌入模型
import os
from langchain_community.vectorstores.azuresearch import AzureSearch
from langchain_openai import AzureOpenAIEmbeddings, OpenAIEmbeddings
# Azure OpenAI 配置(若使用 OpenAI,请替换为 openai_api_key 等)
azure_openai_api_key = "your-azure-openai-key"
azure_endpoint = "https://your-azure-openai-endpoint"
azure_openai_api_version = "2023-05-15"
azure_deployment = "text-embedding-ada-002"
# Azure AI Search 配置
vector_store_address =