Создание изображений с помощью ИИ с помощью .NET
Из этого краткого руководства вы узнаете, как создать консольное приложение .NET для создания изображений с помощью модели OpenAI или Azure OpenAI DALLe AI, которая специально предназначена для создания изображений на основе текстовых запросов.
Необходимые компоненты
- Пакет SDK для .NET 8.0 или более поздней версии— установите пакет SDK для .NET 8.0.
- Ключ API из OpenAI, чтобы можно было запустить этот пример.
Необходимые компоненты
- Пакет SDK для .NET 8.0 или выше. Установите пакет SDK для .NET 8.
- Подписка Azure — создайте бесплатную учетную запись.
- Доступ к службе Azure OpenAI.
- Интерфейс командной строки разработчика Azure (опционально) — установить или обновить интерфейс командной строки разработчика Azure.
Заметка
Вы также можете использовать Семантическое ядро для выполнения задач, описанных в этой статье. Семантический ядро — это упрощенный пакет SDK с открытым исходным кодом, который позволяет создавать агенты ИИ и интегрировать последние модели ИИ в приложения .NET.
Клонирование примера репозитория
Вы можете создать собственное приложение, выполнив действия, описанные в разделах, или клонировать репозиторий GitHub, содержащий готовые примеры приложений для всех кратких руководств. Если вы планируете использовать Azure OpenAI, пример репозитория также структурирован как шаблон интерфейса командной строки разработчика Azure, который может подготовить ресурс Azure OpenAI для вас.
git clone https://github.com/dotnet/ai-samples.git
Создание приложения
Выполните следующие действия, чтобы создать консольное приложение .NET для подключения к модели ИИ.
В пустом каталоге на компьютере используйте команду
dotnet new
для создания нового консольного приложения:dotnet new console -o ImagesAI
Измените каталог в папку приложения:
cd ImagesAI
Установите необходимые пакеты:
dotnet add package Azure.AI.OpenAI dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecrets
dotnet add package OpenAI dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecrets
Откройте приложение в Visual Studio Code или редакторе.
code .
Создание службы ИИ
Пример репозитория GitHub структурирован как шаблон интерфейса командной строки разработчика Azure (azd
), который azd
можно использовать для подготовки службы и модели Azure OpenAI.
В терминале или командной строке перейдите в
src\quickstarts\azure-openai
каталог примера репозитория.azd up
Выполните команду, чтобы подготовить ресурсы Azure OpenAI. Для создания службы Azure OpenAI и развертывания модели может потребоваться несколько минут.azd up
azd
также настраивает необходимые секреты пользователей для примера приложения, например конечную точку Azure OpenAI и имя модели.
Настройка приложения
Перейдите в корневой каталог проекта .NET из терминала или командной строки.
Выполните следующие команды, чтобы настроить ключ API OpenAI в качестве секрета для примера приложения:
dotnet user-secrets init dotnet user-secrets set OpenAIKey <your-openai-key> dotnet user-secrets set ModelName <your-openai-model-name>
Добавление кода приложения
В файле Program.cs добавьте следующий код для подключения и аутентификации к модели ИИ.
using Microsoft.Extensions.Configuration; using OpenAI.Images; using System.ClientModel; using Azure.AI.OpenAI; using Azure.Identity; // Retrieve the local secrets saved during the Azure deployment. If you skipped the deployment // because you already have an Azure OpenAI available, edit the following lines to use your information, // e.g. string openAIEndpoint = "https://cog-demo123.openai.azure.com/"; var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build(); string endpoint = config["AZURE_OPENAI_ENDPOINT"]; string deployment = config["AZURE_OPENAI_DALLE_NAME"]; // Create the Azure OpenAI ImageClient ImageClient client = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()) .GetImageClient(deployment); // Generate the image GeneratedImage generatedImage = await client.GenerateImageAsync(""" A postal card with an happy hiker waving and a beautiful mountain in the background. There is a trail visible in the foreground. The postal card has text in red saying: 'You are invited for a hike!' """, new ImageGenerationOptions { Size = GeneratedImageSize.W1024xH1024 }); Console.WriteLine($"The generated image is ready at:\n{generatedImage.ImageUri}");
Заметка
DefaultAzureCredential выполняет поиск учетных данных проверки подлинности из ваших локальных инструментов. Если вы не используете шаблон
azd
для подготовки ресурса Azure OpenAI, необходимо назначить рольAzure AI Developer
учетной записи, которую вы использовали для входа в Visual Studio или Azure CLI. Дополнительные сведения см. в статье Аутентификация в службах Azure AI с использованием.NET.// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using Microsoft.Extensions.Configuration; using OpenAI.Images; // Retrieve the local secrets that were set from the command line, using: // dotnet user-secrets init // dotnet user-secrets set OpenAIKey <your-openai-key> var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build(); string key = config["OpenAIKey"]; string modelName = config["ModelName"]; // Create the OpenAI ImageClient ImageClient client = new(modelName, key); // Generate the image GeneratedImage generatedImage = await client.GenerateImageAsync(""" A postal card with a happy hiker waving and a beautiful mountain in the background. There is a trail visible in the foreground. The postal card has text in red saying: 'You are invited for a hike!' """, new ImageGenerationOptions { Size = GeneratedImageSize.W1024xH1024 }); Console.WriteLine($"The generated image is ready at:\n{generatedImage.ImageUri}");
Предыдущий код:
- Считывает важные значения конфигурации из секретов пользователя проекта для подключения к модели искусственного интеллекта
- Создает
ImageClient
для подключения к модели искусственного интеллекта - Отправляет запрос в модель, описывающую требуемое изображение.
- Выводит URL-адрес созданного изображения в выходные данные консоли
dotnet run
Используйте команду для запуска приложения:dotnet run
Перейдите по URL-адресу изображения в выходных данных консоли, чтобы просмотреть созданный образ. Настройте текстовое содержимое запроса для создания новых изображений или изменения исходного.
Очистка ресурсов
Если вам больше не нужен пример приложения или ресурсов, удалите соответствующее развертывание и все ресурсы.
azd down