你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Functions 提供与 AI 和 Azure 服务集成的无服务器计算资源,以简化构建云托管的智能应用程序。 本文提供对可在函数应用中使用的 AI 相关方案、集成和其他 AI 资源的广度调查。
请考虑在支持 AI 的体验中使用 Azure Functions 来实现以下方案:
| Scenario | DESCRIPTION |
|---|---|
| 工具和 MCP 服务器 | Functions 允许你创建和托管远程模型内容协议 (MCP) 服务器并实现各种 AI 工具。 MCP 服务器是用于通过远程工具启用函数调用的行业标准。 |
| 代理工作流 | Durable Functions 可帮助你创建具有内置容错功能的多步骤、长时间运行的工作流。 |
| 检索增强生成 (RAG) | RAG 系统需要快速数据检索和处理。 函数可以同时与多个数据源交互,并提供 RAG 方案所需的快速缩放。 |
选择其中一种方案以在本文中了解详细信息。
本文是针对特定编程语言的,请确保在页面顶部选择您的编程语言。
工具和 MCP 服务器
AI 模型和代理使用 函数调用 来请求称为 工具的外部资源。 函数调用允许模型和代理根据聊天或任务的上下文动态调用特定功能。
Functions 特别适用于在代理工作流中实现函数调用,因为它可有效地缩放以处理需求,并提供 绑定扩展 来简化与远程 Azure 服务的连接代理。 在 Functions 中生成或托管 AI 工具时,还可以获取无服务器定价模型和平台安全功能。
模型上下文协议(MCP)是与远程服务器交互的行业标准。 它为 AI 模型和代理提供与外部系统通信的标准化方法。 MCP 服务器使这些 AI 客户端能够有效地确定外部系统的工具和功能。
Azure Functions 目前支持使用以下类型的工具公开函数代码:
| 工具类型 | DESCRIPTION |
|---|---|
| 远程 MCP 服务器 | 创建自定义 MCP 服务器或基于 SDK 的 MCP 服务器。 |
| 基于队列的 Azure Functions 工具 | Azure AI Foundry 提供了一个特定的 Azure Functions 工具,可使用消息队列启用异步函数调用。 |
远程 MCP 服务器
Functions 支持以下选项来创建和托管远程 MCP 服务器:
- 像使用任何其他函数应用一样,使用 MCP 绑定扩展 创建和托管自定义 MCP 服务器。
- 使用官方 MCP SDK 创建的自承载 MCP 服务器。 此托管选项目前为预览版。
下面是 Functions 提供的当前 MCP 服务器托管选项的比较:
| 功能 / 特点 | MCP 绑定扩展 | 自托管 MCP 服务器 |
|---|---|---|
| 当前支持级别 | GA | 预览* |
| 编程模型 | 函数触发器和绑定 | 标准 MCP SDK |
| 有状态执行 | 已支持 | 目前不支持 |
| 当前支持的语言 | C# (独立进程) Python TypeScript JavaScript Java |
C# (独立进程) Python TypeScript Java |
| 其他要求 | None | 可以流式传输的 HTTP |
| 如何实现 | MCP 绑定扩展 | 自定义处理程序 |
*预览期间,自承载 MCP 服务器的配置详细信息会发生变化。
下面是一些选项,可帮助你开始在 Functions 中托管 MCP 服务器:
| 选项 | MCP 绑定扩展 | 自托管 MCP 服务器 |
|---|---|---|
| Documentation | MCP 绑定扩展 | n/a |
| Samples | 远程自定义 MCP 服务器 | 天气服务器 |
| 模板 | HelloTool | n/a |
| 选项 | MCP 绑定扩展 | 自托管 MCP 服务器 |
|---|---|---|
| Documentation | MCP 绑定扩展 | n/a |
| Samples | 远程自定义 MCP 服务器 | 天气服务器 |
| 选项 | MCP 绑定扩展 | 自托管 MCP 服务器 |
|---|---|---|
| Documentation | MCP 绑定扩展 | n/a |
| Samples | 远程自定义 MCP 服务器 | 天气服务器 |
| 选项 | MCP 绑定扩展 | 自托管 MCP 服务器 |
|---|---|---|
| Documentation | MCP 绑定扩展 | n/a |
| Samples | 目前不可用 | n/a |
| 选项 | MCP 绑定扩展 | 自托管 MCP 服务器 |
|---|---|---|
| Documentation | MCP 绑定扩展 | n/a |
| Samples | 目前不可用 | 目前不可用 |
MCP 服务器托管选项当前不支持 PowerShell。
基于队列的 Azure Functions 工具
除了 MCP 服务器,还可以通过将 Azure Functions 与基于队列的通信配合使用来实现 AI 工具。 Azure AI Foundry 提供特定于 Azure Functions 的工具,用于使用消息队列启用异步函数调用。 借助这些工具,AI 代理使用消息传送模式与代码交互。
该工具方法非常适合 AI Foundry 场景中需要的情况:
- 可靠的消息传递和处理
- AI 代理与函数执行的解耦
- 内置重试和错误处理功能
- 与现有 Azure 消息传送基础结构集成
下面是函数调用方案的一些参考示例:
使用 Azure AI Foundry 代理服务 客户端调用使用 Azure Functions 实现的自定义远程 MCP 服务器。
对 Azure AI SDK 中的代理使用函数调用功能来实现自定义函数调用。
代理工作流
AI 驱动的流程通常确定如何与模型和其他 AI 资产进行交互。 但是,某些方案需要更高级别的可预测性或定义完善的步骤。 这些定向智能体工作流协调智能体必须遵循的单独任务或交互。
Durable Functions 扩展可帮助你利用 Functions 的优势,创建内置容错的多步骤长时间运行操作。 这些工作流非常适用于您的自主定向工作流。 例如,行程规划解决方案可能首先收集用户的要求、搜索计划选项、获取用户批准,最后进行所需的预订。 在此方案中,可以为每个步骤创建一个代理,并使用 Durable Functions 将其协调成一个工作流。
有关更多工作流方案的想法,请参阅 Durable Functions 中的 应用程序模式 。
检索增强生成
由于 Functions 可以同时处理来自各种数据源的多个事件,因此它是实时 AI 方案的有效解决方案,例如需要快速数据检索和处理的 RAG 系统。 快速事件驱动的缩放可降低客户体验的延迟,即使在高需求情况下也是如此。
下面是基于 RAG 的方案的一些参考示例:
对于 RAG,可以使用 SDK(包括 Azure Open AI 和 Azure SDK)来构建方案。 ::: zone-end
演示如何创建一个友好的聊天机器人,该机器人在状态会话中使用 OpenAI 绑定扩展发出简单的提示、接收文本完成和发送消息。
Azure Functions 的 AI 工具和框架
Functions 允许你以首选语言生成应用,并使用你喜欢的库。 由于这种灵活性,可以在支持 AI 的函数应用中使用各种 AI 库和框架。
以下是应注意的一些关键Microsoft AI 框架:
| 框架/库 | DESCRIPTION |
|---|---|
| 代理框架 | 轻松生成 AI 代理和代理工作流。 |
| Azure AI Foundry 代理服务 | 一种完全托管的服务,用于使用企业级安全性、内置工具以及与 Azure Functions 无缝集成来生成、部署和缩放 AI 代理。 |
| Azure AI 服务 SDK | 通过直接使用客户端 SDK,可以直接在函数代码中使用 Azure AI 服务功能的完整广度。 |
Functions 还允许你的应用引用第三方库和框架,因此你可以在支持 AI 的函数中使用你喜欢的所有 AI 工具和库。