APIM ❤️ OpenAI - 🧪 实验室用于 GenAI Gateway 功能 的 Azure API 管理
有什么新变化 ✨
➕ 内容过滤 和 提示盾牌 实验室。
➕ 基于 OpenAI 模型路由的 模型路由 实验室。
➕ 使用 Azure API 管理尝试 Azure AI Studio 提示流程 的 提示流程 实验室。
➕ 为 后端池负载均衡 实验室添加 priority
和 weight
参数。
➕ 用于测试 Azure API 管理 OpenAI 流媒体的 流媒体 工具。
➕ 使用 Azure API 管理跟踪功能 调试和排除 OpenAI API 故障的 跟踪 工具。
➕ 为 GPT-4o 推理 实验室添加图像处理。
➕ 带有 Azure Functions 示例 API 的 功能调用 实验室。
内容
人工智能的快速发展要求组织采用实验驱动的方法以保持在行业的前沿。随着 AI 稳步成为各个行业的游戏规则改变者,保持快速创新的轨迹对于希望充分利用其潜力的企业至关重要。
AI 服务主要通过API访问,这强调了强大高效的 API 管理策略的重要性。这一策略对于保持对AI 服务的使用和治理至关重要。
随着AI 服务的扩展及其与API的无缝集成,对全面的AI Gateway模式的需求显著增加,它扩展了 API 管理的核心原则。目的是加速高级用例的实验,并为在快速发展的领域中进一步创新铺平道路。AI Gateway 的精心设计原则为自信地将智能应用部署到生产环境提供了框架。
🧠 GenAI Gateway
该仓库通过一系列实验室探索了AI Gateway模式。Azure API 管理 的 GenAI Gateway 功能 在这些实验中起着至关重要的作用,处理 AI 服务 API,确保安全性、可靠性、性能、总体运营效率和成本控制。主要关注的是 Azure OpenAI,它为大语言模型(LLM)设定了标准参考。然而,相同的原则和设计模式也可以应用于任何 LLM。
🧪 实验室
认识到 Python 特别是在 AI 领域中的主导地位,以及 Jupyter 笔记本的强大实验能力,以下实验室围绕 Jupyter 笔记本进行结构化,提供逐步说明以及 Python 脚本、Bicep 文件和 Azure API 管理策略:
🧪 后端池负载均衡 (内置) | 🧪 高级负载均衡 (自定义) |
使用 Azure API 管理的后端池功能 进行内置负载均衡到一组 Azure OpenAI 端点或模拟服务器的游乐场。 | 使用基于自定义 Azure API 管理策略 进行高级负载均衡到一组 Azure OpenAI 端点或模拟服务器的游乐场。 |
🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 | 🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 |
🧪 访问控制 | 🧪 令牌速率限制 |
使用身份提供者尝试 OAuth 2.0 授权功能 的游乐场,以便特定用户或客户端更精细地访问 OpenAPI API。 | 尝试 令牌速率限制策略 到一个或多个 Azure OpenAI 端点的游乐场。当令牌使用超出时,调用者会收到 429。 |
🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 | 🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 |
🧪 令牌指标发射 | 🧪 语义缓存 |
尝试 令牌指标发射策略 的游乐场。该策略向应用程序洞察发送有关通过 Azure OpenAI 服务 API 使用大语言模型令牌的消耗指标。 | 尝试 语义缓存策略 的游乐场。使用提示的向量接近度与先前请求和指定的相似度阈值。 |
🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 | 🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 |
🧪 响应流 | 🧪 向量搜索 |
使用 Azure API 管理和 Azure OpenAI 端点进行响应流,以探索与 流 相关的优势和缺点的游乐场。 | 使用 Azure AI 搜索、Azure OpenAI 嵌入和 Azure OpenAI 完成进行 检索增强生成 (RAG) 模式 的游乐场。 |
🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 | 🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 |
🧪 内置日志 | 🧪 SLM 自托管 (phy-3) |
尝试 Azure API 管理的内置日志功能 的游乐场。将请求记录到应用程序洞察,以跟踪详细信息和令牌使用情况。 | 尝试通过 Azure API 管理自托管网关 兼容 OpenAI API 进行自托管 phy-3 小语言模型 (SLM) 的游乐场。 |
🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 | 🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 |
🧪 GPT-4o 推理 | 🧪 消息存储 |
尝试新的 GPT-4o 模型的游乐场。GPT-4o(“o”代表“全能”)设计用于处理文本、音频和视频输入的组合,并且可以生成文本、音频和图像格式的输出。 | 尝试通过 日志到事件中心 策略将消息详细信息存储到 Cosmos DB 中的游乐场。使用该策略,我们可以控制将哪些数据存储在数据库中(提示、完成、模型、地区、令牌等)。 |
🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 | 🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 |
🧪 开发者工具 (WIP) | 🧪 函数调用 |
尝试使用 Azure API 管理可用的开发工具来开发、调试、测试和发布 AI 服务 API 的试验场。 | 尝试使用 Azure API 管理的 Azure Functions API 的 OpenAI 函数调用 功能的试验场。 |
🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 | 🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 |
🧪 模型路由 | 🧪 提示流 |
尝试基于 Azure OpenAI 模型和版本路由到后端的试验场。 | 尝试使用 Azure API 管理的 Azure AI Studio 提示流 的试验场。 |
🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 | 🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 |
🧪 内容过滤 | 🧪 提示屏蔽 |
尝试将 Azure API 管理与 Azure AI 内容安全 集成过滤潜在的攻击性、风险或不良内容的试验场。 | 尝试来自 Azure AI 内容安全服务的提示屏蔽,它分析 LLM 输入并检测用户提示攻击和文档攻击,这两种是常见的对抗性输入类型。 |
🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 | 🦾 Bicep ➕ ⚙️ 策略 ➕ 🧾 笔记本 🟰 💬 |
实验积压
- 助手负载均衡
- 逻辑应用RAG
- 语义内核插件
- PII处理
- Llama推理
[!TIP] 请使用反馈讨论,以便我们能通过您的经验、建议、想法或实验室请求不断改进。
🚀 开始
先决条件
- 安装Python 3.8或更高版本
- 安装VS Code并启用Jupyter notebook扩展
- 安装Azure CLI
- 拥有具有贡献者权限的Azure订阅
- 授予Azure OpenAI的访问权限或者仅启用模拟服务
- 使用Azure CLI登录Azure
快速入门
- 克隆此仓库并配置您的本地机器,或创建一个GitHub Codespace在浏览器或VS Code中运行。
- 浏览可用的实验室并选择最符合您需求的实验室。对于初学者,我们推荐后端池负载均衡。
- 打开notebook并运行提供的步骤。
- 根据您的需求定制实验。如果您希望为我们的集体工作做贡献,我们将非常感激您的拉取请求提交。
[!NOTE] 🪲 如果发现需要修复或改进的地方,请随时打开一个新的问题。
🔨 工具
- AI-Gateway模拟服务器旨在模仿OpenAI API的行为和响应,从而创建一个适用于测试和开发目的的高效模拟环境,用于与Azure API管理和其他用例的集成。app.py可以定制以适应特定的用例。
- 跟踪 - 启用跟踪调用OpenAI API并返回跟踪信息。
- 流媒体 - 启用流调用OpenAI API并以数据块返回响应。
🏛️ 良好架构框架
Azure良好架构框架是一个设计框架,可以提高工作负载的质量。下表将实验室与良好架构框架支柱进行了映射,以通过架构实验为您取得成功。
[!TIP] 查阅关于Azure OpenAI服务的Azure良好架构框架视角以获取更多指导。
🎒 演示和展示
[!TIP] 安装VS Code Reveal扩展,打开AI-GATEWAY.md并点击底部的“slides”即可在不离开VS Code的情况下演示AI Gateway。 或者仅打开AI-GATEWAY.pptx以获取传统的PowerPoint体验。
🥇 其他资源
关于此主题有许多参考架构、最佳实践和入门工具包。如果您需要全面的解决方案或启动项目的落地区域,请参阅提供的资源。我们建议利用AI-Gateway实验室来发现可集成到参考架构中的其他功能。
- AI Hub Gateway落地区域
- GenAI Gateway指南
- Azure OpenAI + APIM示例
- AI+API更好在一起:使用API进行AI工作负载的益处和最佳实践
- 设计和实施Azure OpenAI资源网关解决方案
- 使用API管理管理Azure OpenAI - 使用特殊调料进行扩展
- 使用API管理管理Azure OpenAI
- 设置Azure OpenAI作为中心功能与Azure API管理
- 构建AI应用程序简介
我们认为可能存在我们目前不了解的有价值内容。我们非常感谢任何建议或推荐以增强此列表。
🌐 WW GBB倡议
免责声明
[!IMPORTANT] 本软件仅提供演示用途。它不应被依赖于任何目的。软件的创建者对软件的完整性、准确性、可靠性、适用性或可用性,或软件中包含的信息、产品、服务或相关图形的任何目的,不作任何形式的明示或暗示的陈述或保证。因此,您对这些信息的任何信赖均由您自己承担风险。