使用 Azure OpenAI 使用 C# 生成图像
Microsoft启用使用 Azure OpenAI 生成映像的选项。在这篇文章中,我将向您展示如何轻松地使用 REST API 通过人工智能生成图像,方法是用 C# 编写一个简单的控制台应用程序来连接到 Azure OpenAI 实例。
介绍
Microsoft引入了在 Azure OpenAI 服务中使用 DALL-E 生成映像的可能性。在这篇文章中,我将向您展示如何使用 REST API 通过编写一个简单的控制台应用程序来生成图像。
请求访问 Azure OpenAI
目前,你需要请求访问 Azure OpenAI 服务,并拥有有效的 Azure 订阅。如果是这种情况,您需要填写Microsoft申请表。您需要回答不同的问题,并给Microsoft一些时间来接受您的请求。
添加所需的 Azure 资源
如果你有权访问 Azure OpenAI 服务,则可以打开 Azure 门户并开始添加 OpenAI 资源。在市场中搜索Azure OpenAI。请确保选择有权访问 Azure OpenAI 服务的订阅。
目前 DALL-E 仅在“美国东部”区域提供,因此请务必选择“美国东部”。
在接下来的步骤中,您无需更改任何内容。因此,只需保留默认值。在最后一页上,按**“创建”**按钮。
在 Azure 门户中打开新创建的资源,然后在“概述”页上,只需按“转到 Azure OpenAI 工作室”链接或“浏览”按钮。
在 Azure AI Studio 中,你将在左侧找到菜单项 **DALL-E(预览版)。**只需单击它。
在这里,您可以在浏览器中轻松尝试图像生成过程。但是我们想创建一个自定义控制台应用程序,因此我们单击“查看代码”以访问 api 密钥和终结点。从端点我们需要资源名称,所以在我的例子中,图像生成演示,我们还需要密钥。请复制这两个值。
用 C 编写控制台应用程序#
现在我们设置了所有 Azure 资源,我们可以启动 Visual Studio 并在 C# 中实现一个简单的控制台应用程序,以便能够生成图像。
创建新的控制台应用程序。我会给它起名字,但你可以选择你喜欢的名字。AzureOpenAIImageConsole
将 NuGet 包添加到解决方案中。此程序包目前仅作为预览版提供,因此请确保选中“包括预发行版”复选框。System.CommandLine
添加*“模型”*文件夹。在此文件夹中,我们需要四个类。让我们从:AppConsole.cs
接下来,我们在 Models 文件夹中创建类。此类包含我们可以传递给命令的所有不同选项。AddOptions.cs
第三类是 this 类表示启动映像生成过程的 POST 请求的正文。AzureOpenAIImageRequestItem.cs
最后一个类被调用,并包含来自 REST API 的答案。AzureOpenAIImageResponseItem.cs
为了提高可读性,我们在主目录中创建了一个新文件。我们删除命名空间声明并将类标记为 和 。Program.Options.cs``static``partial
文件的这一部分声明了我们可以在命令中使用的不同参数。我们还定义并提供了一个方法,调用该方法以从参数中获取值。Program.cs``RootCommand``GetParsedAppOptions
我们现在将创建另一个名为 .此文件包含一些帮助程序方法。例如,我们使用一种方法来创建具有正确标头的标头,例如标头。我们还使用方法为不同的操作生成正确的端点,或者将参数映射到用于 API 的正确值。我们还包括从 中提取所需信息的方法。
Program.Helpers.cs``HttpClient``api-key``size``HttpResponseMessage
现在我们可以从“真实”文件的实现开始。首先,我们想添加一点验证来检查是否提供了所有需要的参数。Program.cs
对于每个调用,我们至少需要 和 .如果我们想删除图像,我们需要提供 or 参数。如果提供此功能,我们可以结束验证,否则我们会检查所有不同的值,并确保 和 的范围也设置正确。AzureOpenAIResource``AzureOpenAIKey``--delete``-d``size``amount
在下一步中,我们将使用该方法定义命令的逻辑。SetHandler
首先,我们得到解析的选项。接下来,我们创建并检查是否提供了该选项。如果是这种情况,我们使用 删除图像并完成执行。HttpClient``delete``HttpClient
如果未提供该选项,我们将创建 并将其发送到 API。我们得到一个id作为响应,它将打印在控制台上。然后我们需要定期检查图像是否生成。如果是这种情况,我们会将 URL 写入提供的 .delete``HttpRequestMessage``OutputFilePath
现在我们可以尝试我们的命令了。只需打开 Windows 终端,导航到包含该文件的文件夹,并使用我们提供的参数来启动映像生成过程。csproj``dotnet build
在提供的 中,你将找到指向包含生成的映像的 Microsoft blob 存储的链接。这是我提示的结果:output
要删除图像,只需提供选项和 id,它们也会写入文件。--delete``output
结论
在这篇博文中,我们在 C# 中创建一个简单的控制台应用程序,用于使用 Azure OpenAI 服务生成映像。
转载自:https://juejin.cn/post/7271075719367639074