Поделиться через


Создавайте изображения с помощью ИИ в .NET

Из этого краткого руководства вы узнаете, как создать консольное приложение .NET для создания изображений с помощью модели OpenAI или Azure OpenAI DALLe AI, которая специально предназначена для создания изображений на основе текстовых запросов.

Предпосылки

Предпосылки

Примечание.

Вы также можете использовать Семантическое ядро для выполнения задач, описанных в этой статье. Семантический ядро — это упрощенный пакет SDK с открытым исходным кодом, который позволяет создавать агенты ИИ и интегрировать последние модели ИИ в приложения .NET.

Создание приложения

Выполните следующие действия, чтобы создать консольное приложение .NET для подключения к модели ИИ.

  1. В пустом каталоге на компьютере используйте команду dotnet new для создания нового консольного приложения:

    dotnet new console -o ImagesAI
    
  2. Измените каталог в папку приложения:

    cd ImagesAI
    
  3. Установите необходимые пакеты:

    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
    
  4. Откройте приложение в Visual Studio Code или редакторе.

    code .
    

Создание службы ИИ

  1. Чтобы подготовить службу и модель Azure OpenAI, выполните действия, описанные в статье "Создание и развертывание ресурса Службы OpenAI Azure ".

  2. В терминале или командной строке перейдите в корневой каталог проекта.

  3. Выполните следующие команды, чтобы настроить конечную точку и имя модели Azure OpenAI для примера приложения:

    dotnet user-secrets init
    dotnet user-secrets set AZURE_OPENAI_ENDPOINT <your-Azure-OpenAI-endpoint>
    dotnet user-secrets set AZURE_OPENAI_GPT_NAME <your-Azure-OpenAI-model-name>
    

Настройка приложения

  1. Перейдите в корневой каталог проекта .NET из терминала или командной строки.

  2. Выполните следующие команды, чтобы настроить ключ API OpenAI в качестве секрета для примера приложения:

    dotnet user-secrets init
    dotnet user-secrets set OpenAIKey <your-OpenAI-key>
    dotnet user-secrets set ModelName <your-OpenAI-model-name>
    

Добавление кода приложения

  1. 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 с помощью.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}");
    

    Предыдущий код:

    • Считывает важные значения конфигурации из секретов пользователя проекта для подключения к модели ИИ.
    • Создает OpenAI.Images.ImageClient для подключения к модели ИИ.
    • Отправляет запрос в модель, описывающую требуемое изображение.
    • Выводит URL-адрес созданного изображения в выходные данные консоли.
  2. Запустите приложение:

    dotnet run
    

    Перейдите по URL-адресу изображения в выходных данных консоли, чтобы просмотреть созданный образ. Настройте текстовое содержимое запроса для создания новых изображений или изменения исходного.

Очистка ресурсов

Если они больше не нужны, удалите ресурс Azure OpenAI и развертывание модели GPT-4.

  1. На портале Azureперейдите к ресурсу Azure OpenAI.
  2. Выберите ресурс Azure OpenAI и выберите Удалить.

Дальнейшие действия