使用 .NET 中的 Azure OpenAI 构建图像生成应用程序
阅读:141
点赞:0
一、介绍
在本文中,我们将探讨如何在 .NET 中使用 Azure OpenAI DALL-E 服务,根据用户提示生成图像。通过利用 Azure OpenAI 强大的 DALL·E 模型,我们可以动态创建独特的图像内容。我们将通过示例介绍如何连接到 Azure 的 OpenAI API、提交提示以及在 .NET 应用程序中检索生成的图像。
二、先决条件
在开始之前,请确保准备好以下内容:
-
Azure 订阅:您将需要访问 Azure OpenAI 服务。 -
OpenAI 资源:在您的 Azure 帐户中设置 OpenAI 资源。 -
API 密钥和端点:检索 Azure OpenAI 资源的密钥和端点。 -
Visual Studio 或 .NET SDK:确保您有一个可运行的 .NET 环境。
三、步骤 1:在 Azure 门户中设置 Azure OpenAI
1. 创建 OpenAI 资源
-
导航到 Azure 门户,搜索“Azure OpenAI”并单击“创建”。 -
提供资源组、区域和定价层等基本详细信息。 -
资源部署后,您可以在密钥和端点部分找到 API 端点和密钥。
2. 部署 DALL-E
在我们的 OpenAI 资源下,转到模型部署部分并部署“dall-e-3”模型。我们稍后将在应用程序中的 API 调用中使用它。
四、步骤 2:创建 .NET C# 项目
创建一个新的控制台应用程序:打开 Visual Studio 并使用 .NET 6.0+ 创建一个新的控制台应用程序。
五、步骤 3:将代码写入 DALL-E 应用程序
功能目标
通过 Azure OpenAI API 生成图像,具体实现步骤如下:
-
初始化 OpenAI 客户端:使用 API 密钥和端点创建客户端。 -
配置图像生成选项:设置生成图像的提示和参数。 -
发送请求并获取响应:将用户的提示发送到 API,并返回生成的图像 URL。
代码实现
using Azure.AI.OpenAI; // 引入 Azure OpenAI 库
using Azure; // 引入 Azure 库
namespace GenerativeAI // 命名空间定义
{
public class AzureOpenAIGPT // 定义 AzureOpenAIGPT 类
{
// 替换为您的密钥和端点
const string key = "***********************************"; // API 密钥
const string endpoint = "https://*************.openai.azure.com/"; // API 端点
const string deploymentOrModelName = "imagedemo"; // 模型名称
public async Task<string> GetContent(string prompt) // 获取内容的方法
{
var client = new OpenAIClient(new Uri(endpoint), new AzureKeyCredential(key)); // 初始化 OpenAI 客户端
var imageGenerationOptions = new ImageGenerationOptions // 设置图像生成选项
{
Prompt = prompt, // 用户提示
DeploymentName = deploymentOrModelName, // 指定模型名称
Size = new ImageSize("1024x1024"), // 图像大小
ImageCount = 1 // 生成图像的数量
};
var response = await client.GetImageGenerationsAsync(imageGenerationOptions); // 发送请求并获取响应
return response.Value.Data[0].Url.AbsoluteUri; // 返回生成图像的 URL
}
}
class Program // 主程序类
{
static async Task Main(string[] args) // 主方法
{
var dalle = new AzureOpenAIGPT(); // 实例化 AzureOpenAIGPT 类
var dallePrompt = "Cat eating cake on the sky"; // 定义提示
Console.WriteLine($"{await dalle.GetContent(dallePrompt)}"); // 打印生成的图像 URL
Console.ReadLine(); // 等待用户输入
}
}
}
关键组件
-
API 密钥和端点:这些值特定于您的 Azure 订阅和 OpenAI 资源,至关重要。
const string key = "your-azure-key"; // 替换为您的 Azure 密钥
const string endpoint = "your-endpoint"; // 替换为您的端点 -
OpenAIClient 初始化:与 Azure OpenAI 服务交互的主要客户端。
var client = new OpenAIClient(new Uri(endpoint), new AzureKeyCredential(key)); // 初始化客户端
-
图像生成选项:配置生成图像的提示和参数。
var imageGenerationOptions = new ImageGenerationOptions
{
Prompt = prompt, // 用户提示
DeploymentName = deploymentOrModelName, // 模型名称
Size = new ImageSize("1024x1024"), // 图像大小
ImageCount = 1 // 生成图像数量
}; -
检索和显示图像 URL:生成的图像以 URL 形式返回,可以直接打开或嵌入到网页中。
var response = await client.GetImageGenerationsAsync(imageGenerationOptions); // 获取生成图像
return response.Value.Data[0].Url.AbsoluteUri; // 返回图像 URL -
控制台输出:将图像 URL 输出到控制台。
Console.WriteLine($"{await dalle.GetContent(dallePrompt)}"); // 打印 URL
六、输出
七、结论
这个简单的应用程序介绍了如何使用 Azure OpenAI 的 DALL·E 模型在 .NET 环境中生成图像。通过将 Azure OpenAI 集成到我们的 .NET 项目中,我们可以解锁强大的生成 AI 功能,从而增强用户体验、自动化内容创建并构建创新应用程序。