你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Functions 提供与 AI 和 Azure 服务集成的无服务器计算资源,以简化构建云托管的智能应用程序。 本文提供对可在函数应用中使用的 AI 相关方案、集成和其他 AI 资源的广度调查。
将 Azure Functions 用作 AI 集成任务的计算资源的一些固有优势包括:
- 快速的事件驱动扩展:资源在需要时始终可用。 对于某些计划,你的应用在不再需要时会缩减为零。 有关详细信息,请参阅 Azure Functions 中的事件驱动缩放。
- 模型上下文协议(MCP)服务器:函数使你能够轻松 创建和部署远程 MCP 服务器 ,使数据和函数可用于 AI 代理和大型语言模型(LLM)。
- 对 Azure OpenAI 的内置支持: OpenAI 绑定扩展 大大简化了与 Azure OpenAI 的交互,以便检索扩充生成(RAG)和代理工作流。
- 广泛的语言和库支持:Functions 允许你使用 所选的编程语言与 AI 交互,还可以使用各种 AI 框架和库。
- 业务流程功能:虽然函数执行本质上是无状态的,但 Durable Functions 扩展 允许你创建 AI 代理所需的复杂工作流。
本文是针对特定编程语言的,请确保在页面顶部选择您的编程语言。
内置绑定和对外部库的广泛支持相结合,提供了各种潜在方案,用于通过 AI 的强大功能增强应用和解决方案。
以下部分介绍 Functions 支持的一些关键 AI 集成方案。
检索增强生成
由于 Functions 可以同时处理来自各种数据源的多个事件,因此它是实时 AI 方案的有效解决方案,例如需要快速数据检索和处理的 RAG 系统。 快速事件驱动的缩放可降低客户体验的延迟,即使在高需求情况下也是如此。
下面是基于 RAG 的方案的一些参考示例:
对于 RAG,可以使用 SDK(包括 Azure Open AI 和 Azure SDK)来构建方案。 ::: zone-end
演示如何创建一个友好的聊天机器人,该机器人在状态会话中使用 OpenAI 绑定扩展发出简单的提示、接收文本完成和发送消息。
远程 MCP 服务器
模型上下文协议(MCP)为 AI 模型和代理提供了一种标准化的方式,用于与外部系统通信,以确定如何充分利用其功能。 MCP 服务器允许 AI 模型或代理(客户端)更有效地做出这些决定。 可以使用 MCP 服务器将特定资源公开为工具,然后代理调用这些资源来完成特定任务。
在 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 JavaScript Java |
| 其他要求 | None | 可以流式传输的 HTTP |
| 如何实现 | MCP 绑定扩展 | 自定义处理程序 |
*自承载 MCP 服务器的配置详细信息将在预览期间更改。
下面是一些选项,可帮助你开始在 Functions 中托管 MCP 服务器:
| 选项 | MCP 绑定扩展 | 自托管 MCP 服务器 |
|---|---|---|
| Documentation | MCP 绑定扩展 | n/a |
| Samples | 远程自定义 MCP 服务器 | 天气服务器 |
| Copilot 提示 (Visual Studio Code) |
n/a | 设置提示† |
| 模板 | HelloTool | n/a |
| 选项 | MCP 绑定扩展 | 自托管 MCP 服务器 |
|---|---|---|
| Documentation | MCP 绑定扩展 | n/a |
| Samples | 远程自定义 MCP 服务器 | 天气服务器 |
| Copilot 提示 (Visual Studio Code) |
n/a | 设置提示† |
| 选项 | MCP 绑定扩展 | 自托管 MCP 服务器 |
|---|---|---|
| Documentation | MCP 绑定扩展 | n/a |
| Samples | 远程自定义 MCP 服务器 | 天气服务器 |
| Copilot 提示 (Visual Studio Code) |
n/a | 设置提示† |
| 选项 | MCP 绑定扩展 | 自托管 MCP 服务器 |
|---|---|---|
| Documentation | MCP 绑定扩展 | n/a |
| Samples | 目前不可用 | 目前不可用 |
MCP 服务器托管选项当前不支持 PowerShell。
†目前,请将部署助手聊天提示视为实验性。
函数调用
函数调用使 AI 代理能够基于聊天或任务的上下文动态调用特定的 AI 工具或 API。 这些已启用 MCP 的行为允许代理与外部系统交互、检索数据和执行其他作。
函数非常适合在代理工作流中实现函数调用。 除了高效缩放以处理需求外, 绑定扩展 还简化了使用 Functions 将代理连接到远程 Azure 服务的过程。 如果数据源没有绑定,或者需要完全控制 SDK 行为,则可以在应用中管理自己的客户端 SDK 连接。
下面是函数调用方案的一些参考示例:
使用 Azure AI Foundry 代理服务 客户端调用使用 Azure Functions 实现的自定义远程 MCP 服务器。
对 Azure AI SDK 中的代理使用函数调用功能来实现自定义函数调用。
代理工作流
AI 驱动的流程通常能够自主确定如何与模型和其他 AI 资产进行交互。 但是,在许多情况下,你需要更高的可预测性或者步骤已经明确定义。 这些定向代理工作流由代理需要遵循的独立任务或交互的业务流程组成。
Durable Functions 扩展可帮助你利用函数的优势来创建具有内置容错能力的多步骤长时间运行操作。 这些工作流非常适用于您的自主定向工作流。 例如,行程规划解决方案可能首先收集用户的要求、搜索计划选项、获取用户批准,最后进行所需的预订。 在此方案中,可以为每个步骤创建一个代理,并使用 Durable Functions 将其协调成一个工作流。
有关更多工作流方案的想法,请参阅 Durable Functions 中的 应用程序模式 。
Azure Functions 的 AI 工具和框架
Functions 允许你以首选语言生成应用,并使用你喜欢的库。 由于这种灵活性,可以在支持 AI 的函数应用中使用各种 AI 库和框架。
下面是你应该注意的一些关键Microsoft AI 框架:
| 框架/库 | DESCRIPTION |
|---|---|
| Azure AI Foundry 代理服务 | 一种完全托管的服务,用于使用企业级安全性、内置工具以及与 Azure Functions 无缝集成来生成、部署和缩放 AI 代理。 |
| Azure AI 服务 SDK | 通过直接使用客户端 SDK,可以直接在函数代码中使用 Azure AI 服务功能的完整广度。 |
| OpenAI 绑定扩展 | 在函数中轻松集成 Azure OpenAI 的强大功能,让 Functions 管理服务集成。 |
| 语义内核 | 使你能够轻松生成 AI 代理和模型。 |
Functions 还允许你的应用引用第三方库和框架,这意味着你可以在支持 AI 的函数中使用你喜欢的所有 AI 工具和库。