Azure AI 搜索(以前称为“Azure 认知搜索”)是一种适用于企业的信息检索系统,可用于检索引入到搜索索引中的异构内容,并通过查询和应用向用户显示。 它配备了一整套先进的搜索技术,专为各种规模的高性能应用程序而打造。
Azure AI 搜索是推荐的检索系统,用于在 Azure 上构建代理到代理 (A2A) 和基于 RAG 的应用程序,它支持在 Azure AI Foundry 中的 Azure OpenAI 模型与 Azure 机器学习之间进行本机 LLM 集成,并提供集成第三方和开源模型与进程的机制。
Azure AI 搜索可用于传统搜索和生成搜索方案。 常见用例包括目录或文档搜索、信息发现(数据探索)以及用于对话式搜索的检索增强生成 (RAG)。
创建搜索服务时,你会使用以下功能:
- 用于 矢量搜索的搜索引擎 和 全文 和 混合搜索 搜索索引。
- 具备内容转换功能的丰富索引编制。 这包括用于 RAG 的集成数据分块和矢量化、针对文本的词法分析以及用于内容提取和扩充的可选应用 AI。
- 用于矢量查询、文本搜索、混合查询、模糊搜索、自动完成、异地搜索等功能的丰富查询语法。
- 使用语义分级、评分配置文件、矢量查询的量化以及用于控制运行时查询行为的参数进行相关性和查询性能优化。
- Azure 规模、安全性和覆盖范围。
- 数据层、机器学习层、Azure AI 服务和 Azure OpenAI 级别的 Azure 集成。
从体系结构方面来讲,搜索服务位于外部数据存储(包含未编入索引的数据)与客户端应用(向搜索索引发送查询请求并处理响应)之间。
在客户端应用中,搜索体验是使用 Azure AI 搜索中的 API 定义的,可能包括相关性调整、语义评分、自动完成、同义词匹配、模糊匹配、模式匹配、筛选和排序。
在整个 Azure 平台上,Azure AI 搜索可以以以下方式与其他 Azure 服务集成:以“索引器”(自动从 Azure 数据源引入/检索数据)和“技能组”(引入 Azure AI 服务(例如图像和自然语言处理)中的可消耗 AI)的形式,或者以引入你在 Azure 机器学习中创建的或在 Azure Functions 内包装的自定义 AI 的形式。
在搜索服务中
在搜索服务本身,两个主要工作负荷是索引编制和查询 。
编制索引是将内容加载到搜索服务中并使其可供搜索的引入过程。 在内部,入站文本处理为令牌并存储在倒排索引中,入站矢量存储在矢量索引中。 Azure AI 搜索可以编制索引的文档格式为 JSON。 可以上传已汇编的 JSON 文档,或使用索引器检索数据并将其序列化为 JSON。
应用 AI 通过技能组扩展图像和语言模型的索引。 如果源文档中有图像或大型非结构化文本,你可以附加执行 OCR、分析和描述图像、推理结构、翻译文本等操作的技能。 输出是可以序列化为 JSON 并引入搜索索引的文本。
技能组也可以在索引编制期间进行数据分块和矢量化。 可以使用附加到 Azure OpenAI 的技能、Azure AI Foundry 门户中的模型目录或附加到任何外部分块和嵌入模型的自定义技能在索引编制期间创建矢量数据。 输出是可以引入搜索索引的分块矢量内容。
当客户端应用将查询请求发送到搜索服务并处理响应时,索引中填充了可搜索的内容后,就会发生查询。 所有查询均在控制的搜索索引上执行。
语义排名是查询执行的扩展。 它添加了次要排名,使用语言理解重新评估结果集,将语义最相关的结果提升到顶部。
集成矢量化还是查询执行的扩展。 如果搜索索引中有矢量字段,则可以提交原始矢量查询或在查询时进行矢量化的文本。
为什么使用 Azure AI 搜索?
Azure AI 搜索非常适合以下应用方案:
将其用于传统的全文搜索和下一代矢量相似性搜索。 使用利用关键字和相似性搜索强度的信息检索来支持生成式 AI 应用。 使用这两种形式检索最相关的结果。
将异构内容整合到由矢量和文本组成的用户定义索引和填充的搜索索引中。 你可以保持所有权并控制可搜索的内容。
为生成式 AI 和 RAG 应用集成数据分块和矢量化。
在文档级别应用精细访问控制。
将索引编制和查询工作负荷分散到专用的搜索服务。
轻松实现搜索相关的功能:相关性优化、分面导航、筛选器(包括地理空间搜索)、同义词映射和自动完成。
将 Azure Blob 存储或 Azure Cosmos DB 中存储的大型无差别文本、图像文件或应用程序文件转换为可搜索的区块。 这是通过从 Azure AI 添加外部处理的 AI 技能在编制索引期间实现的。
添加语言或自定义文本分析。 如果使用非英语内容,Azure AI 搜索支持 Lucene 分析器和 Azure 的自然语言处理器。 还可以配置分析器以实现原始内容的专业处理,例如筛选出标注字符,或识别并保留字符串中的模式。
有关特定功能的详细信息,请参阅 Azure AI 搜索的功能
如何开始使用
在 Azure 门户中使用:功能通过简单的 REST API 或 Azure SDK(如 Azure SDK for .NET)公开。 Azure 门户支持通过用于原型制作以及查询索引和技能组的工具进行服务管理和内容管理。
使用 Azure 门户
可以通过以下四个步骤来实现核心搜索功能的端到端探索:
确定层和区域。 每个订阅只允许一个免费搜索服务。 所有快速入门都可以在免费层级完成。 如需更多容量和功能,则需要有计费层级。
在 Azure 门户中创建搜索服务。
从“导入数据”向导开始。 选择内置示例或受支持的数据源,以迅速创建、加载和查询索引。
使用搜索浏览器作为结束,使用门户客户端来查询刚创建的搜索索引。
使用 API
或者,也可以以原子步骤创建、加载和查询搜索索引:
使用 Azure 门户、REST API、.NET SDK 或其他 SDK创建搜索索引。 索引架构决定了可搜索内容的结构。
使用“推送”模型上传内容,以从任意源推送 JSON 文档,或者,如果源数据是受支持的类型,则使用“拉取”模型(索引器)。
使用加速器
或者,尝试解决方案加速器:
“与数据聊天”解决方案加速器可帮助你基于内容创建自定义 RAG 解决方案。
构建自己的 copilot 解决方案加速器,利用 Azure OpenAI、Azure AI 搜索和 Azure Fabric 创建自定义 copilot 解决方案。