Skip to content

如何在 .NET 项目中集成 Azure OpenAI 服务

通过 Azure.AI.OpenAI 客户端库,开发者可以将 GPT-4o、DALL-E 3 和 Whisper 等 OpenAI 模型快速集成到 .NET 应用程序中,实现从简单聊天到复杂 RAG 架构的 AI 功能。

为什么需要这个技能

在企业级 .NET 开发中,直接调用 REST API 往往会导致大量重复的样板代码且缺乏类型安全。使用官方 SDK 可以通过强类型对象(如 ChatClientChatCompletion)管理会话,并能无缝集成 Azure 的企业级特性,如 Entra ID 身份验证和 AI Search 知识库。

本技能涵盖了从基础身份验证到高级功能(如结构化输出、函数调用和流式传输)的完整实现路径。

适用场景

  • 智能助手开发:构建支持多轮对话的 AI 聊天机器人。
  • 内容自动化生成:利用 DALL-E 3 生成图像或利用 GPT 模型批量生成文本。
  • 企业知识库 (RAG):将 Azure AI Search 与 OpenAI 结合,实现基于私有数据的问答。
  • 语音处理:利用 Whisper 模型实现音频转录或文本转语音。

核心工作流

1. 安装与环境配置

首先安装必要的 NuGet 包:

bash
dotnet add package Azure.AI.OpenAI
# 若需兼容原 OpenAI 接口
dotnet add package OpenAI

配置环境变量:AZURE_OPENAI_ENDPOINTAZURE_OPENAI_API_KEY 及部署名称 AZURE_OPENAI_DEPLOYMENT_NAME

2. 客户端初始化

推荐在生产环境中使用 DefaultAzureCredential 以增强安全性:

csharp
using Azure.Identity;
using Azure.AI.OpenAI;

AzureOpenAIClient client = new(
    new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")!),
    new DefaultAzureCredential());

3. 实现核心功能

  • 聊天补全:通过 GetChatClient 获取客户端,使用 CompleteChatAsync 发送消息。
  • 流式输出:使用 CompleteChatStreamingAsyncawait foreach 方式实时获取 Token 响应,提升用户体验。
  • 结构化输出:在 ChatCompletionOptions 中定义 JSON Schema,强制 AI 返回符合特定格式的 JSON 数据。
  • 函数调用 (Tools):通过 ChatTool.CreateFunctionTool 定义外部工具,让 AI 能够调用本地函数获取实时数据。

4. RAG 集成

通过在 ChatCompletionOptions 中添加 AzureSearchChatDataSource,可直接将 AI Search 索引作为数据源,实现增强检索生成。

下载和安装

下载 azure-ai-openai-dotnet 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐