Azure Functions 提供与 AI 和 Azure 服务集成的无服务器计算资源,以简化构建云托管的智能应用程序的过程。 本文提供对可在函数应用中使用的 AI 相关方案、集成和其他 AI 资源的广度调查。
将 Azure Functions 用作 AI 集成任务的计算资源的一些固有优势包括:
- 快速的事件驱动扩展:在需要时计算资源可用。 借助某些计划,你的应用会在不需要时缩减到零。 有关详细信息,请参阅 Azure Functions 中的事件驱动缩放。
- 对 Azure OpenAI 的内置支持: OpenAI 绑定扩展 极大地简化了与 Azure OpenAI 交互的过程,以便处理代理、助手和检索扩充生成(RAG)工作流。
- 广泛的语言和库支持:Functions 允许你使用 所选的编程语言与 AI 交互,还可以使用各种 AI 框架和库。
- 业务流程功能:虽然函数执行本质上是无状态的,但 Durable Functions 扩展 允许你创建 AI 代理所需的复杂工作流类型。
本文是针对特定编程语言的,请确保在页面顶部选择您的编程语言。
核心 AI 集成方案
内置绑定和对外部库的广泛支持相结合,提供了各种潜在方案,用于通过 AI 的强大功能增强应用和解决方案。 以下是 Functions 支持的一些关键 AI 集成方案。
检索增强生成
由于 Functions 能够同时处理来自各种数据源的多个事件,因此它是实时 AI 方案的有效解决方案,例如需要快速数据检索和处理的 RAG 系统。 快速事件驱动的缩放可降低客户遇到的延迟,即使在高需求的情况下也是如此。
下面是基于 RAG 的方案的一些参考示例:
对于 RAG,可以使用 SDK,包括但不限于 Azure Open AI 和 Azure SDK 来构建方案。 本参考示例使用 OpenAI 绑定扩展 通过 Azure AI 搜索突出显示 OpenAI RAG。
演示如何创建一个友好的聊天机器人,该机器人在状态会话中使用 OpenAI 绑定扩展发出简单的提示、接收文本完成和发送消息。
助手函数调用
助手函数调用使 AI 助手或代理能够根据聊天或任务的上下文动态调用特定函数或 API。 这些行为使助手能够与外部系统交互、检索数据和执行其他作。
函数非常适合在代理工作流中实现助理函数调用。 除了高效缩放以处理需求外, 绑定扩展 还简化了使用 Functions 将助手与远程 Azure 服务连接的过程。 如果数据源没有绑定,或者需要完全控制 SDK 行为,则始终可以在应用中管理自己的客户端 SDK 连接。
下面是助手函数调用方案的一些参考示例:
使用 OpenAI 绑定扩展 通过助手技能触发器启用调用自定义函数。
使用 Azure AI SDK 中的函数调用功能在代理程序中实现自定义函数调用。
远程 MCP 服务器
模型上下文协议(MCP)为 AI 模型提供了一种标准化的方式,用于与外部系统通信,以确定其功能以及如何最好地由 AI 助手和代理使用。 MCP 服务器使 AI 模型(客户端)能够更有效地做出这些决定。
Functions 提供 MCP 绑定扩展,可简化在 Azure 中创建自定义 MCP 服务器的过程。
下面是此类自定义 MCP 服务器项目的示例:
提供 MCP 服务器模板以及多个函数工具终结点,这些终结点可以在本地运行,也可以部署到 Azure。
代理工作流
虽然 AI 驱动的流程通常能够自主确定如何与模型和其他 AI 资产交互,但在许多情况下,需要更高级别的可预测性或明确定义所需的步骤。 这些定向代理工作流由代理需要遵循的独立任务或交互的业务流程组成。
Durable Functions 扩展可帮助你利用函数的优势来创建具有内置容错能力的多步骤长时间运行操作。 这些工作流非常适合定向代理工作流。 例如,行程规划解决方案可能首先收集用户的要求、搜索计划选项、获取用户批准,最后进行所需的预订。 在此方案中,可以为每个步骤创建一个代理,并使用 Durable Functions 将其协调成一个工作流。
有关更多工作流方案的想法,请参阅 Durable Functions 中的 应用程序模式 。
AI 工具和框架
由于 Functions 允许你以首选语言生成应用并使用你喜欢的库,因此可以在支持 AI 的函数应用中使用哪些 AI 库和框架具有广泛的灵活性。
下面是你应该注意的一些关键Microsoft AI 框架:
框架/库 | DESCRIPTION |
---|---|
Azure AI 服务 SDK | 通过直接使用客户端 SDK,可以直接在函数代码中使用 Azure AI 服务功能的完整广度。 |
OpenAI 绑定扩展 | 在函数中轻松集成 Azure OpenAI 的强大功能,让 Functions 管理服务集成。 |
语义内核 | 使你能够轻松生成 AI 代理和模型。 |
Functions 还使应用能够引用第三方库和框架,这意味着还可以在支持 AI 的函数中使用所有喜欢的 AI 工具和库。