category
随着人工智能(AI)的兴起,许多行业和用户正在研究如何利用这项技术来实现自己的开发目的和用例。随着越来越多的公司投资于人工智能研发,该领域预计将在未来几年继续增长。
微软的Azure OpenAI服务提供REST API访问OpenAI强大的语言模型GPT-4、GPT-35-Turbo和嵌入式模型系列。通过Azure OpenAI,客户可以在运行与OpenAI相同的模型的同时获得Microsoft Azure的安全功能。Azure OpenAI提供专用网络、区域可用性和负责任的AI内容过滤。然而,新技术的集成和采用可能会带来一系列困难和担忧,其中最重要的是与安全和治理有关的问题。这就是Azure API管理的用武之地,它提供了一个强大的解决方案来解决节流和监控等障碍。它有助于Azure OpenAI端点的安全暴露,确保其安全性、快速性和可观察性。此外,它还为内部和外部用户探索、集成和利用这些API提供了全面的支持。
特别是,因为大多数用户目前都在寻找一种快速安全的方式来开始使用Azure OpenAI。我们得到的最受欢迎的问题是,“我如何使用我们公司特定的数据安全可靠地创建自己的ChatGPT?”。一旦MVP启动并运行,下一个问题是“我如何将其扩展到生产中”?对于我们今天的使用案例,我们希望利用Azure API管理的力量来满足生产需求,并提供安全可靠的解决方案。
开始使用Azure API管理和Azure OpenAI:
- Azure OpenAI为您提供REST API引用,这些引用可以轻松导入Azure API管理或包含在您的CI/CD管道中。
- 对于我们的用例,我们使用completions端点并下载Swagger规范【Swagger specification.】。
- 使用Azure API管理构建企业级Azure OpenAI解决方案
- 在我们的OpenAPI规范中,我们将修改一些参数,使其与我们之前创建的Azure OpenAI资源一起工作(请参阅文档)。确保在OpenAPI规范中修改以下参数:
使用Azure API管理构建企业级Azure OpenAI解决方案
- 接下来,登录Azure门户并打开Azure API管理资源(请参阅有关如何创建API管理实例的快速启动)。在API下,+添加API,搜索OpenAPI。上传我们在步骤2和3中下载和编辑的OpenAPI规范。
使用Azure API管理构建企业级Azure OpenAI解决方案
- 现在,您可以看到基于OpenAPI规范为您创建的操作。这些端点将调用您的Azure OpenAI资源。
使用Azure API管理构建企业级Azure OpenAI解决方案
- Azure OpenAI使用API密钥的概念进行保护。API密钥是作为安全标识符的唯一访问代码。我们将使用Azure API管理策略将API密钥附加到我们的操作中。选择所有操作,然后打开入站策略编辑器,按如下方式编辑策略:
使用Azure API管理构建企业级Azure OpenAI解决方案
<policies>
<inbound>
<base />
<set-header name="api-key" exists-action="override">
<value>{{APPSVC_KEY}}</value>
</set-header>
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
- 出于安全原因,我们希望在Azure API管理中使用命名值,并且不要将API密钥直接粘贴到我们的策略中。对于这个打开的,命名的值和+添加一个新的值,您的API键作为值。API密钥可以在你的Azure OpenAI资源中的密钥和终结点下找到。
使用Azure API管理构建企业级Azure OpenAI解决方案
注意:这演示了一个简化的实现,理想情况下,您希望使用第三种类型密钥库从外部获取密钥。
- 最后,您可以在Azure API管理中测试您的API调用。为此,打开“测试”选项卡并选择要调用的操作。确保提供所需的参数(例如部署id、api版本),然后点击发送按钮。
使用Azure API管理构建企业级Azure OpenAI解决方案
- 你现在应该得到一个200,并在身体中看到反应。
常见的生产就绪挑战:
任何人工智能项目都可以精心设计。然而,关于Azure OpenAI的新功能,在构建AI项目之前,我们需要考虑一些微妙的细节:
1.使用Azure API管理进行高级请求节流:
API节流,也称为速率限制,是一种用于控制客户端向API发出请求的速率的机制。它的实施是为了防止滥用,确保公平使用,保护服务器资源,并保持整体系统的稳定性和性能。Throttling限制客户端在指定时间段内可以发出的API请求数。
Azure API管理帮助实现灵活的节流。灵活的节流允许您根据各种条件(如客户端标识、订阅级别或API产品)为不同类型的客户端或请求设置不同的节流限制。
以下是Azure API管理中的API管理策略示例,该策略为成本控制目的实施费率限制。此策略将限制客户端在指定时间段内可以向API发出的请求数:
<inbound>
<base />
<rate-limit-by-key calls="1000" renewal-period="3600" />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
Policy说明:
- <rate limit by key>:此策略元素用于根据客户端的密钥设置速率限制。客户端的密钥可以表示各种属性,如订阅级别、客户端身份或您要用于速率限制的任何其他标准。
- calls:此属性指定具有特定密钥的客户端在定义的续订期内可以进行的API调用(请求)的最大数目。
- 续订期:此属性定义重置速率限制计数器的时间段(以秒为单位)。在这个例子中,更新周期设置为3600秒,相当于1小时。
如需更高级的示例,请查看我们的开放式人工智能成本网关模式,您可以在其中跟踪每个请求的产品支出,并根据支出限制按产品进行费率限制。
2.将应用程序网关和Azure API管理一起用于API监控:
日志记录和监控是管理和维护API的关键方面,确保其可用性、性能和安全性。当通过Azure API管理和API网关将Azure OpenAI模型集成到您的解决方案中时,您需要建立强大的日志记录和监控实践,以深入了解API的使用情况,检测和解决问题,并优化性能。实施示例:
- Azure监视器集成:
- 利用Azure Monitor从API管理实例收集遥测数据。
- 配置Application Insights以跟踪API请求、响应时间和错误率。
- 设置警报,以通知异常模式或高错误率。
- 自定义日志记录:
- 使用API管理中的策略在API中实现自定义日志记录。
- 捕获相关数据,如请求标头、有效载荷和响应详细信息。
- 将自定义日志发送到Azure Monitor或其他日志服务。
- 使用分析:
- 利用API管理的内置使用分析来监控API消耗和流量模式。
- 识别流行端点、峰值使用时间和用户行为。
- 警报和通知:
- 配置关键事件的警报和通知,如API停机或高错误率。
- 使用Azure Logic Apps根据特定条件触发工作流。
- 有关更多详细信息,请参阅教程:监视已发布的API。
使用应用网关进行负载平衡:
在Azure OpenAI项目中,负载平衡对于在多个资源中高效地分发传入的API请求至关重要,以确保最佳性能和资源利用率。挑战在于管理高峰时段不均匀的流量分布,实现可扩展性,同时避免服务器利用不足或过载,确保容错能力,并根据波动的工作负载动态分配资源。适当的负载分布策略和会话持久性在保持高可用性和无缝用户体验方面发挥着至关重要的作用。
您可以使用它将流量路由到不同的端点。有关更多详细信息,请查看此文档。
为此,我们可以使用Azure应用程序网关。应用程序网关位于客户端和服务之间。它充当反向代理,将请求从客户端路由到服务。API管理不执行任何负载平衡,因此应将其与负载平衡器(如Azure Application Gateway)结合使用。您可以使用它将流量路由到不同的端点。有关更多详细信息,请查看此文档。
Azure OpenAI解决方案:
如果您正在寻找创建第一个Azure OpenAI解决方案的方法,您可能会被许多选项和可能性所淹没。然而,一个好的策略是从针对内部受众的低风险、高价值的用例开始。例如,采用的常见解决方案之一是以下架构,该架构可通过我们的Microsoft加速器之一获得。此架构使您能够构建一个MVP解决方案,该解决方案利用Azure GPT为您的web应用程序创建由Azure ChatGPT和Azure GPT-4支持的私有搜索引擎和聊天体验,或通过我们的Azure Bot Framework集成到各种不同的渠道,如Microsoft Teams。这种架构的优点是,它允许您在自己的Azure租户中安全地使用自己的数据,并访问来自各种来源和类型的数据。如绿色突出显示框中所示,该模型基于Azure认知搜索、Azure SQL数据库、特定表格文件的数据,甚至通过我们的Azure Bing API通过互联网。
有关加速器详细信息的更多信息,请在此处找到我们的Github Repo,在此处找到介绍面板。
使用Azure API管理构建企业级Azure OpenAI解决方案
如上所述,上述加速器架构是构建MVP解决方案的绝佳起点。使其成为一个适合企业的解决方案,并解决我们上面提到的一些挑战,如API管理和负载平衡。在MVP之后,我们强烈建议开始采用下面的微软参考架构。此体系结构突出了关键组件,以确保我们能够通过Azure API管理正确管理API,利用应用程序网关帮助实现负载平衡,并通过Azure监控监控我们的整个API。总体而言,该解决方案启用了用于跟踪API使用情况和性能的高级日志记录功能,以及强大的安全措施,以帮助保护敏感数据并帮助防止恶意活动。
使用Azure API管理构建企业级Azure OpenAI解决方案
注:参考架构 /Note: Reference to Architecture
欢迎随时联系我们,提出有关这些解决方案的任何问题,甚至在未来的博客文章中提出建议!
非常感谢我们在这些主题领域的专家,请务必关注他们的任何更新或直接联系他们:
- Senior Data & AI Cloud Solution Architect, Julia Heseltine
- Senior Cloud Solution Architect, Simon Kurtz
- Azure Architect GBB, David Barkol
- Senior Technical Specialist, Preston Hale
- 登录 发表评论
- 5 次浏览
Tags
最新内容
- 1 week 5 days ago
- 2 weeks 6 days ago
- 3 weeks 2 days ago
- 3 weeks 2 days ago
- 3 weeks 5 days ago
- 3 weeks 6 days ago
- 4 weeks ago
- 4 weeks 1 day ago
- 4 weeks 1 day ago
- 4 weeks 1 day ago