Azure OpenAI .NET 开发技能
为 .NET 编码代理提供 Azure OpenAI 集成范式。
技能明确展示了 API Key、Entra ID、Azure AI Search 密钥及外部 Azure/OpenAI 数据流,但未说明敏感数据最小化、日志脱敏、用户确认、权限范围、成本控制或回滚;生产环境建议 Entra ID,但仍保留直接密钥示例,因此扣分。
文档结构和主要 API 路径基本一致,并包含限流错误处理;但示例依赖未定义变量、未固定包版本、缺少关键路径测试和输入/服务能力边界,静态评估不超过 10 分,因此扣分。
受众、SDK 语言、触发词和聊天/嵌入/图像/音频等场景较清楚;但未明确不适用场景、模型部署差异、版本兼容范围或中文使用指导,并依赖 Azure/OpenAI 外部服务,未提供中国大陆网络可达性说明,因此扣分。
具备 front matter、MIT 许可证、作者、版本、安装说明、分节示例、最佳实践、错误处理和参考链接,信息架构清晰;但缺少变更日志、维护责任与更新流程、FAQ、故障排查和依赖版本策略,因此未满分。
覆盖常见 .NET 调用模式,部分片段可直接改造使用;但多个示例缺少上下文变量或项目配置,未展示真实输出、验证结果或完整可运行项目,仍需人工校正,静态上限为 7 分,因此扣分。
技能提供 NuGet、API、迁移、快速入门和源码参考链接,仓库还提供通用 CI 与测试材料;但没有该技能专属的提交测试套件、执行结果或多源核验,且本次未执行代码,因此扣分。
- 示例中的 endpoint、messages、searchEndpoint 等变量未定义,复制运行前需要补齐上下文。
- 应避免在日志或源代码中暴露 API Key,并明确 Azure/OpenAI 请求可能传输和处理用户内容。
- 参考链接和“Current Version: 2.1.0”未在本次静态材料中得到版本一致性验证;使用前应核对 SDK API 与部署模型能力。
- 未说明中国大陆网络访问、区域可用性、数据驻留或服务合规限制。
它能做什么 & 适用场景
该技能面向使用 Azure.AI.OpenAI 的 .NET 开发者,覆盖 Azure OpenAI 与 OpenAI 服务的常见客户端用法。它提供聊天补全、流式响应、多轮对话、结构化 JSON 输出、推理模型、嵌入、图像生成、音频转写、文本转语音和函数调用示例。内容还包括 Azure AI Search 检索增强生成、API 密钥与 Microsoft Entra 身份认证,以及错误处理和客户端复用建议。若项目已经使用 Azure OpenAI 和 .NET,它适合作为编码代理的实现参考;若需要完整部署、计费或服务配额指导,现有内容不足。
指导代理运行 dotnet add package 安装 Azure.AI.OpenAI 和 OpenAI 包,配置 Azure OpenAI endpoint、API key、deployment name 及令牌凭据环境变量,并生成使用 AzureOpenAIClient、ChatClient、EmbeddingClient、ImageClient、AudioClient 和 AssistantClient 的 C# 代码。代码可以提交聊天消息、流式读取响应、解析 JSON Schema 输出、生成文本嵌入和 DALL-E 图像、转写音频、生成语音、声明和处理函数工具调用,并将生成的音频写入文件。它还展示如何配置 Azure AI Search 数据源并读取意图与引用。
- 使用 Azure OpenAI 的 .NET 后端开发者,需要快速实现 GPT-4 或 GPT-4o 聊天补全。
- 需要批量生成文本嵌入并将结果用于向量检索的应用团队。
- 需要用 Azure AI Search 为聊天应用接入检索增强生成和引用信息的开发者。
- 需要在 .NET 应用中加入 DALL-E 图像生成、Whisper 转写或文本转语音的团队。
- 需要让模型调用天气等应用函数,并在执行前验证工具参数的开发者。
优缺点一览
- 覆盖从客户端初始化到聊天、嵌入、图像、音频和工具调用的主要代码路径。
- 同时提供 API 密钥和 Microsoft Entra 身份认证示例,并明确建议生产环境使用 Entra ID。
- 包含结构化输出、流式响应、多轮对话、AI Search RAG 和错误处理示例。
- 提供客户端层级、关键类型、相关 SDK 和参考链接,便于继续开发。
- 示例依赖 Azure endpoint、模型部署和相应凭据,不能脱离服务配置直接运行。
- SKILL.md 未提供完整应用、部署、计费或容量规划指导。
- 虽然列出 assistants,但未提供对应的完整使用示例。
- 内容未展示该单项技能的独立测试结果或测试套件。
如何安装
将该技能目录放入所用编码代理的技能目录中:.github/plugins/azure-sdk-dotnet/skills/azure-ai-openai-dotnet/。集合可通过 npx skills add microsoft/skills 安装并在向导中选择技能;也可以克隆仓库后复制所需目录。项目依赖可运行:dotnet add package Azure.AI.OpenAI;如需 OpenAI 非 Azure 兼容性,再运行 dotnet add package OpenAI。
如何使用
在 .NET 项目中配置 AZURE_OPENAI_ENDPOINT 和 AZURE_OPENAI_DEPLOYMENT_NAME;使用 AzureKeyCredential 时配置 AZURE_OPENAI_API_KEY,生产环境使用 DefaultAzureCredential 时按需配置 AZURE_TOKEN_CREDENTIALS。然后向编码代理提出类似“使用 Azure.AI.OpenAI 在 .NET 中创建 gpt-4o-mini 的流式聊天客户端,并采用 DefaultAzureCredential”的请求。SKILL.md 未规定具体代理的触发命令,也未提供完整项目模板。
对比同类
该技能区分 Azure.AI.OpenAI 与 OpenAI 包:前者是 Azure OpenAI 客户端,后者用于 OpenAI 兼容性场景。它还将 Azure.Identity 用于认证,将 Azure.Search.Documents列为 AI Search 集成的相关 SDK。