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


Краткое руководство: Создание изображений с помощью Azure OpenAI в Azure AI Foundry Models

Замечание

API создания изображений создает изображение из текстового запроса. Он не редактирует или не создает варианты из существующих образов.

Используйте это руководство, чтобы приступить к созданию образов с помощью Azure OpenAI в браузере с помощью Azure AI Foundry.

Предпосылки

Перейдите в Azure AI Foundry

Перейдите к Azure AI Foundry и войдите с учетными данными, связанными с ресурсом Azure OpenAI. Во время или после рабочего процесса входа выберите соответствующий каталог, подписку Azure и ресурс Azure OpenAI.

На целевой странице Azure AI Foundry создайте или выберите новый проект. Перейдите на страницу "Модели + конечные точки" на левой панели навигации . Выберите " Развернуть модель " и выберите одну из моделей DALL-E из списка. Завершите процесс развертывания.

На странице модели выберите "Открыть на детской площадке".

Попробуйте создание образа

Начните изучать возможности Azure OpenAI с использованием подхода без кода на игровой площадке "Образы". Введите запрос изображения в текстовое поле и нажмите кнопку "Создать". Когда изображение, созданное СИ, будет готово, оно отображается на странице.

Замечание

API-интерфейсы изображений содержат фильтр модерации содержимого. Если Azure OpenAI распознает запрос как вредное содержимое, он не возвращает созданный образ. Дополнительные сведения см. в разделе "Фильтрация содержимого".

На игровой площадке "Изображения" можно также просматривать примеры кода Python и cURL, которые предварительно заполнены в соответствии с параметрами. Выберите "Просмотреть код " в верхней части страницы. Этот код можно использовать для записи приложения, которое завершает ту же задачу.

Очистите ресурсы

Если вы хотите очистить и удалить ресурс Azure OpenAI, можно удалить ресурс или группу ресурсов. Удаление группы ресурсов также удаляет все другие ресурсы, связанные с ней.

Дальнейшие шаги

Используйте это руководство, чтобы приступить к вызову Azure OpenAI в Azure AI Foundry Models image generation REST API с помощью Python.

Предпосылки

Настройка

Получение ключа и конечной точки

Чтобы успешно вызвать API Azure OpenAI, вам потребуется следующая информация о ресурсе Azure OpenAI:

Переменная Имя Ценность
Конечная точка api_base Значение конечной точки находится под Ключи и Конечная точка для вашего ресурса в портале Azure. Вы также можете найти конечную точку на странице "Развертывания" на портале Azure AI Foundry. Пример конечной точки: https://docs-test-001.openai.azure.com/.
Ключ api_key Значение ключа также находится в разделе Ключи и Конечная точка для ресурса в портале Azure. Azure создает два ключа для ресурса. Можно использовать любое значение.

Перейдите к своему ресурсу на портале Azure. На панели навигации выберите "Ключи" и "Конечная точка " в разделе "Управление ресурсами". Скопируйте значение конечной точки и значение ключа доступа. Вы можете использовать либо значение KEY 1, либо KEY 2. Наличие двух ключей позволяет безопасно менять и повторно создавать ключи без прерывания работы службы.

На снимке экрана показана страница "Ключи и конечная точка" для ресурса Azure OpenAI в портале Azure.

Переменные среды

Создайте и назначьте переменные постоянной среды для ключа и конечной точки.

Это важно

Мы рекомендуем использовать идентификацию Microsoft Entra ID с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных в приложениях, работающих в облаке.

Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничьте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.

Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Создайте новое приложение на Python

Создайте файл Python с именем quickstart.py. Откройте новый файл в предпочтительном редакторе или интегрированной среде разработки.

  1. Замените содержимое quickstart.py следующим кодом. Измените значение предпочтительного prompt текста. Также установите deployment как имя развертывания, выбранное при развертывании модели GPT-image-1.

    import os
    import requests
    import base64
    from PIL import Image
    from io import BytesIO
    
    # set environment variables
    endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    subscription_key = os.getenv("AZURE_OPENAI_API_KEY")
    
    deployment = "gpt-image-1" # the name of your GPT-image-1 deployment
    api_version = "2025-04-01-preview" # or later version
    
    def decode_and_save_image(b64_data, output_filename):
      image = Image.open(BytesIO(base64.b64decode(b64_data)))
      image.show()
      image.save(output_filename)
    
    def save_all_images_from_response(response_data, filename_prefix):
      for idx, item in enumerate(response_data['data']):
        b64_img = item['b64_json']
        filename = f"{filename_prefix}_{idx+1}.png"
        decode_and_save_image(b64_img, filename)
        print(f"Image saved to: '{filename}'")
    
    base_path = f'openai/deployments/{deployment}/images'
    params = f'?api-version={api_version}'
    
    generation_url = f"{endpoint}{base_path}/generations{params}"
    generation_body = {
      "prompt": "girl falling asleep",
      "n": 1,
      "size": "1024x1024",
      "quality": "medium",
      "output_format": "png"
    }
    generation_response = requests.post(
      generation_url,
      headers={
        'Api-Key': subscription_key,
        'Content-Type': 'application/json',
      },
      json=generation_body
    ).json()
    save_all_images_from_response(generation_response, "generated_image")
    
    # In addition to generating images, you can edit them.
    edit_url = f"{endpoint}{base_path}/edits{params}"
    edit_body = {
      "prompt": "girl falling asleep",
      "n": 1,
      "size": "1024x1024",
      "quality": "medium"
    }
    files = {
      "image": ("generated_image_1.png", open("generated_image_1.png", "rb"), "image/png"),
      # You can use a mask to specify which parts of the image you want to edit.
      # The mask must be the same size as the input image.
      # "mask": ("mask.png", open("mask.png", "rb"), "image/png"),
    }
    edit_response = requests.post(
      edit_url,
      headers={'Api-Key': subscription_key},
      data=edit_body,
      files=files
    ).json()
    save_all_images_from_response(edit_response, "edited_image")
    

    Скрипт выполняет синхронный вызов API создания образов.

    Это важно

    Не забудьте удалить ключ из кода, когда вы закончите, и никогда не публикуйте ключ. Для продакшена используйте безопасный способ хранения и доступа к учетным данным. Дополнительные сведения см. в Azure Key Vault.

  2. Запустите приложение, выполнив команду python:

    python quickstart.py
    

    Подождите несколько минут, чтобы получить ответ.

Выходные данные

Выходные данные из успешного вызова API создания изображений выглядят следующим образом. Поле url содержит URL-адрес, в котором можно скачать созданный образ. URL-адрес остается активным в течение 24 часов.

{ 
    "created": 1698116662, 
    "data": [ 
        { 
            "url": "<URL_to_generated_image>",
            "revised_prompt": "<prompt_that_was_used>" 
        }
    ]
} 

API-интерфейсы изображений содержат фильтр модерации содержимого. Если служба распознает запрос как вредное содержимое, он не создает образ. Дополнительные сведения см. в разделе "Фильтрация содержимого". Примеры ответов на ошибки см. в руководстве по создании образов.

Система возвращает состояние Failed операции и error.code задается contentFilterзначение в сообщении. Ниже приведен пример:

{
    "created": 1698435368,
    "error":
    {
        "code": "contentFilter",
        "message": "Your task failed as a result of our safety system."
    }
}

Кроме того, возможно, что созданный образ фильтруется. В этом случае для сообщения об ошибке задано Generated image was filtered as a result of our safety system.значение . Ниже приведен пример:

{
    "created": 1698435368,
    "error":
    {
        "code": "contentFilter",
        "message": "Generated image was filtered as a result of our safety system."
    }
}

Очистите ресурсы

Если вы хотите очистить и удалить ресурс Azure OpenAI, можно удалить ресурс или группу ресурсов. Удаление группы ресурсов также удаляет все другие ресурсы, связанные с ней.

Дальнейшие шаги

В этом руководстве описано, как приступить к созданию образов с помощью пакета SDK OpenAI для Azure для Python.

Исходный код библиотеки | Пакет | Примеры

Предпосылки

Настройка

Получение ключа и конечной точки

Чтобы успешно вызвать API Azure OpenAI, вам потребуется следующая информация о ресурсе Azure OpenAI:

Переменная Имя Ценность
Конечная точка api_base Значение конечной точки находится под Ключи и Конечная точка для вашего ресурса в портале Azure. Вы также можете найти конечную точку на странице "Развертывания" на портале Azure AI Foundry. Пример конечной точки: https://docs-test-001.openai.azure.com/.
Ключ api_key Значение ключа также находится в разделе Ключи и Конечная точка для ресурса в портале Azure. Azure создает два ключа для ресурса. Можно использовать любое значение.

Перейдите к своему ресурсу на портале Azure. На панели навигации выберите "Ключи" и "Конечная точка " в разделе "Управление ресурсами". Скопируйте значение конечной точки и значение ключа доступа. Вы можете использовать либо значение KEY 1, либо KEY 2. Наличие двух ключей позволяет безопасно менять и повторно создавать ключи без прерывания работы службы.

На снимке экрана показана страница "Ключи и конечная точка" для ресурса Azure OpenAI в портале Azure.

Переменные среды

Создайте и назначьте переменные постоянной среды для ключа и конечной точки.

Это важно

Мы рекомендуем использовать идентификацию Microsoft Entra ID с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных в приложениях, работающих в облаке.

Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничьте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.

Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Установка пакета SDK для Python

Откройте командную строку и перейдите к папке проекта. Установите пакет SDK Для Python OpenAI с помощью следующей команды:

pip install openai

Установите следующие библиотеки, а также:

pip install requests
pip install pillow 

Создание образов с помощью DALL-E

Создайте файл Python quickstart.py. Откройте его в предпочитаемом редакторе или интегрированной среде разработки.

Замените содержимое quickstart.py следующим кодом.

from openai import AzureOpenAI
import os
import requests
from PIL import Image
import json

client = AzureOpenAI(
    api_version="2024-02-01",  
    api_key=os.environ["AZURE_OPENAI_API_KEY"],  
    azure_endpoint=os.environ['AZURE_OPENAI_ENDPOINT']
)

result = client.images.generate(
    model="dalle3", # the name of your DALL-E 3 deployment
    prompt="a close-up of a bear walking throughthe forest",
    n=1
)

json_response = json.loads(result.model_dump_json())

# Set the directory for the stored image
image_dir = os.path.join(os.curdir, 'images')

# If the directory doesn't exist, create it
if not os.path.isdir(image_dir):
    os.mkdir(image_dir)

# Initialize the image path (note the filetype should be png)
image_path = os.path.join(image_dir, 'generated_image.png')

# Retrieve the generated image
image_url = json_response["data"][0]["url"]  # extract image URL from response
generated_image = requests.get(image_url).content  # download the image
with open(image_path, "wb") as image_file:
    image_file.write(generated_image)

# Display the image in the default image viewer
image = Image.open(image_path)
image.show()
  1. Введите URL-адрес конечной точки и ключ в соответствующих полях.
  2. Измените значение предпочтительного prompt текста.
  3. Измените значение model на имя развернутой модели DALL-E 3.

Это важно

Не забудьте удалить ключ из кода, когда вы закончите, и никогда не публикуйте ключ. Для продакшена используйте безопасный способ хранения и доступа к учетным данным. Дополнительные сведения см. в Azure Key Vault.

Запустите приложение, выполнив команду python:

python quickstart.py

Подождите несколько минут, чтобы получить ответ.

Выходные данные

Azure OpenAI сохраняет выходной образ в файле generated_image.png в указанном каталоге. Сценарий также отображает изображение в средстве просмотра изображений по умолчанию.

API-интерфейсы изображений содержат фильтр модерации содержимого. Если служба распознает запрос как вредное содержимое, он не создает образ. Дополнительные сведения см. в разделе "Фильтрация содержимого".

Очистите ресурсы

Если вы хотите очистить и удалить ресурс Azure OpenAI, можно удалить ресурс или группу ресурсов. Удаление группы ресурсов также удаляет все другие ресурсы, связанные с ней.

Дальнейшие шаги

В этом руководстве описано, как приступить к созданию образов с помощью пакета SDK Для Azure OpenAI для C#.

Примеры пакета исходного кода | библиотеки (NuGet) |

Предпосылки

Предварительные требования для идентификатора Microsoft Entra

Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra необходимо:

  • Установите Azure CLI, используемый для проверки подлинности без ключа с помощью идентификатора Microsoft Entra.
  • Назначьте роль Cognitive Services User своему аккаунту пользователя. Роли можно назначить в портале Azure в разделе Контроль доступа (IAM)>Добавить назначение ролей.

Настройка

  1. Создайте новую папку vision-quickstart и перейдите в папку быстрого запуска, используя следующую команду:

    mkdir vision-quickstart && cd vision-quickstart
    
  2. Создайте консольное приложение со следующей командой:

    dotnet new console
    
  3. Установите клиентскую библиотеку OpenAI .NET с помощью команды dotnet add package:

    dotnet add package Azure.AI.OpenAI --version 1.0.0-beta.6
    
  4. Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra установите пакет Azure.Identity с помощью:

    dotnet add package Azure.Identity
    
  5. Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra войдите в Azure с помощью следующей команды:

    az login
    

Получение сведений о ресурсе

Чтобы проверить подлинность приложения с помощью ресурса Azure OpenAI, необходимо получить следующие сведения:

Имя переменной Ценность
AZURE_OPENAI_ENDPOINT Это значение можно найти в разделе "Ключи и конечная точка доступа" при просмотре ресурса на портале Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Это значение будет соответствовать пользовательскому имени, которое вы выбрали при развертывании модели. Это значение можно найти в разделе Управление ресурсами>Развертывание моделей на портале Azure.
OPENAI_API_VERSION Дополнительные сведения о версиях API.

Вы можете изменить версию в коде или использовать переменную среды.

Дополнительные сведения о бессерверной проверке подлинности и настройке переменных среды.

Выполните быстрый старт

Пример кода в этом кратком руководстве использует идентификатор Microsoft Entra для рекомендуемой проверки подлинности без ключей. Если вы предпочитаете использовать ключ API, можно заменить DefaultAzureCredential объект AzureKeyCredential объектом.

AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); 

Чтобы запустить быстрый старт, выполните следующие действия.

  1. Замените содержимое Program.cs следующим кодом и обновите заполнительные значения на собственные.

    using Azure;
    using Azure.AI.OpenAI;
    using OpenAI.Images;
    using static System.Environment;
    
    string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? "https://<your-resource-name>.openai.azure.com/";
    string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY") ?? "<your-key>";
    
    // Use the recommended keyless credential instead of the AzureKeyCredential credential.
    AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); 
    //AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(key));
    
    // This must match the custom deployment name you chose for your model
    ImageClient chatClient = openAIClient.GetImageClient("dalle-3");
    
    var imageGeneration = await chatClient.GenerateImageAsync(
            "a happy monkey sitting in a tree, in watercolor",
            new ImageGenerationOptions()
            {
                Size = GeneratedImageSize.W1024xH1024
            }
        );
    
    Console.WriteLine(imageGeneration.Value.ImageUri);
    
  2. Запустите приложение с помощью dotnet run команды или кнопки запуска в верхней части Visual Studio:

    dotnet run
    

Выходные данные

URL-адрес созданного изображения выводится в консоль.

<SAS URL>

Замечание

API-интерфейсы изображений содержат фильтр модерации содержимого. Если служба распознает запрос как вредное содержимое, он не вернет созданный образ. Для получения дополнительной информации см. статью о фильтре содержимого.

Очистите ресурсы

Если вы хотите очистить и удалить ресурс Azure OpenAI, его можно удалить. Перед удалением ресурса необходимо сначала удалить все развернутые модели.

Дальнейшие шаги

В этом руководстве описано, как приступить к созданию образов с помощью пакета SDK OpenAI для Azure для Java.

Примеры артефакта исходного кода | библиотеки (Maven) |

Предпосылки

Предварительные требования для идентификатора Microsoft Entra

Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra необходимо:

  • Установите Azure CLI, используемый для проверки подлинности без ключа с помощью идентификатора Microsoft Entra.
  • Назначьте роль Cognitive Services User своему аккаунту пользователя. Роли можно назначить в портале Azure в разделе Контроль доступа (IAM)>Добавить назначение ролей.

Настройка

  1. Создайте новую папку vision-quickstart и перейдите в папку быстрого запуска, используя следующую команду:

    mkdir vision-quickstart && cd vision-quickstart
    
  2. Установите Apache Maven. Затем выполните команду mvn -v , чтобы подтвердить успешную установку.

  3. Создайте файл pom.xml в корне проекта и скопируйте в него следующий код:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
         <modelVersion>4.0.0</modelVersion>
         <groupId>com.azure.samples</groupId>
         <artifactId>quickstart-dall-e</artifactId>
         <version>1.0.0-SNAPSHOT</version>
         <build>
             <sourceDirectory>src</sourceDirectory>
             <plugins>
             <plugin>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <version>3.7.0</version>
                 <configuration>
                 <source>1.8</source>
                 <target>1.8</target>
                 </configuration>
             </plugin>
             </plugins>
         </build>
         <dependencies>    
             <dependency>
                 <groupId>com.azure</groupId>
                 <artifactId>azure-ai-openai</artifactId>
                 <version>1.0.0-beta.3</version>
             </dependency>
             <dependency>
                 <groupId>com.azure</groupId>
                 <artifactId>azure-core</artifactId>
                 <version>1.53.0</version>
             </dependency>
             <dependency>
                 <groupId>com.azure</groupId>
                 <artifactId>azure-identity</artifactId>
                 <version>1.15.1</version>
             </dependency>
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-simple</artifactId>
                 <version>1.7.9</version>
             </dependency>
         </dependencies>
     </project>
    
  4. Установите SDK Azure OpenAI и зависимости.

    mvn clean dependency:copy-dependencies
    
  5. Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra войдите в Azure с помощью следующей команды:

    az login
    

Получение сведений о ресурсе

Чтобы проверить подлинность приложения с помощью ресурса Azure OpenAI, необходимо получить следующие сведения:

Имя переменной Ценность
AZURE_OPENAI_ENDPOINT Это значение можно найти в разделе "Ключи и конечная точка доступа" при просмотре ресурса на портале Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Это значение будет соответствовать пользовательскому имени, которое вы выбрали при развертывании модели. Это значение можно найти в разделе Управление ресурсами>Развертывание моделей на портале Azure.
OPENAI_API_VERSION Дополнительные сведения о версиях API.

Вы можете изменить версию в коде или использовать переменную среды.

Дополнительные сведения о бессерверной проверке подлинности и настройке переменных среды.

Запуск приложения

Пример кода в этом кратком руководстве использует идентификатор Microsoft Entra для рекомендуемой проверки подлинности без ключей. Если вы предпочитаете использовать ключ API, можно заменить DefaultAzureCredential объект AzureKeyCredential объектом.

OpenAIAsyncClient client = new OpenAIClientBuilder()
    .endpoint(endpoint)
    .credential(new DefaultAzureCredentialBuilder().build())
    .buildAsyncClient();

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

  1. Создайте файл с именем Quickstart.java в том же корневом каталоге проекта.

  2. Скопируйте следующий код в Quickstart.java:

    import com.azure.ai.openai.OpenAIAsyncClient;
    import com.azure.ai.openai.OpenAIClientBuilder;
    import com.azure.ai.openai.models.ImageGenerationOptions;
    import com.azure.ai.openai.models.ImageLocation;
    import com.azure.core.credential.AzureKeyCredential;
    import com.azure.core.models.ResponseError;
    
    import java.util.concurrent.TimeUnit;
    
    public class Quickstart {
    
        public static void main(String[] args) throws InterruptedException {
    
            String endpoint = System.getenv("AZURE_OPENAI_ENDPOINT");
    
            // Use the recommended keyless credential instead of the AzureKeyCredential credential.
    
            OpenAIAsyncClient client = new OpenAIClientBuilder()
                .endpoint(endpoint)
                .credential(new DefaultAzureCredentialBuilder().build())
                .buildAsyncClient();
    
            ImageGenerationOptions imageGenerationOptions = new ImageGenerationOptions(
                "A drawing of the Seattle skyline in the style of Van Gogh");
            client.getImages(imageGenerationOptions).subscribe(
                images -> {
                    for (ImageLocation imageLocation : images.getData()) {
                        ResponseError error = imageLocation.getError();
                        if (error != null) {
                            System.out.printf("Image generation operation failed. Error code: %s, error message: %s.%n",
                                error.getCode(), error.getMessage());
                        } else {
                            System.out.printf(
                                "Image location URL that provides temporary access to download the generated image is %s.%n",
                                imageLocation.getUrl());
                        }
                    }
                },
                error -> System.err.println("There was an error getting images." + error),
                () -> System.out.println("Completed getImages."));
    
            // The .subscribe() creation and assignment isn't a blocking call.
            // The thread sleeps so the program does not end before the send operation is complete. 
            // Use .block() instead of .subscribe() for a synchronous call.
            TimeUnit.SECONDS.sleep(10);
        }
    }
    
  3. Запустите новое консольное приложение для создания образа:

    javac Quickstart.java -cp ".;target\dependency\*"
    java -cp ".;target\dependency\*" Quickstart
    

Выходные данные

URL-адрес созданного изображения выводится в консоль.

Image location URL that provides temporary access to download the generated image is <SAS URL>.
Completed getImages.

Замечание

API-интерфейсы изображений содержат фильтр модерации содержимого. Если служба распознает запрос как вредное содержимое, он не вернет созданный образ. Для получения дополнительной информации см. статью о фильтре содержимого.

Очистите ресурсы

Если вы хотите очистить и удалить ресурс Azure OpenAI, его можно удалить. Перед удалением ресурса необходимо сначала удалить все развернутые модели.

Дальнейшие шаги

В этом руководстве описано, как приступить к созданию образов с помощью пакета SDK OpenAI для Azure для JavaScript.

Справочная документация | Исходный код | Пакет (npm) | Образцы

Предпосылки

Предварительные требования для идентификатора Microsoft Entra

Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra необходимо:

  • Установите Azure CLI, используемый для проверки подлинности без ключа с помощью идентификатора Microsoft Entra.
  • Назначьте роль Cognitive Services User своему аккаунту пользователя. Роли можно назначить в портале Azure в разделе Контроль доступа (IAM)>Добавить назначение ролей.

Настройка

  1. Создайте новую папку image-quickstart и перейдите в папку быстрого запуска, используя следующую команду:

    mkdir image-quickstart && cd image-quickstart
    
  2. Создайте package.json с помощью следующей команды:

    npm init -y
    
  3. Установите клиентскую библиотеку OpenAI для JavaScript с помощью:

    npm install openai
    
  4. Для рекомендуемой аутентификации без пароля:

    npm install @azure/identity
    

Получение сведений о ресурсе

Чтобы проверить подлинность приложения с помощью ресурса Azure OpenAI, необходимо получить следующие сведения:

Имя переменной Ценность
AZURE_OPENAI_ENDPOINT Это значение можно найти в разделе "Ключи и конечная точка доступа" при просмотре ресурса на портале Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Это значение будет соответствовать пользовательскому имени, которое вы выбрали при развертывании модели. Это значение можно найти в разделе Управление ресурсами>Развертывание моделей на портале Azure.
OPENAI_API_VERSION Дополнительные сведения о версиях API.

Вы можете изменить версию в коде или использовать переменную среды.

Дополнительные сведения о бессерверной проверке подлинности и настройке переменных среды.

Осторожность

Чтобы использовать рекомендуемую проверку подлинности без ключа с пакетом SDK, убедитесь, что AZURE_OPENAI_API_KEY переменная среды не задана.

Создание образов с помощью DALL-E

  1. index.js Создайте файл со следующим кодом:

    const { AzureOpenAI } = require("openai");
    const { 
        DefaultAzureCredential, 
        getBearerTokenProvider 
    } = require("@azure/identity");
    
    // You will need to set these environment variables or edit the following values
    const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint";
    
    // Required Azure OpenAI deployment name and API version
    const apiVersion = process.env.OPENAI_API_VERSION || "2024-07-01";
    const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "dall-e-3";
    
    // The prompt to generate images from
    const prompt = "a monkey eating a banana";
    const numberOfImagesToGenerate = 1;
    
    // keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
    function getClient(): AzureOpenAI {
      return new AzureOpenAI({
        endpoint,
        azureADTokenProvider,
        apiVersion,
        deployment: deploymentName,
      });
    }
    async function main() {
      console.log("== Image Generation ==");
    
      const client = getClient();
    
      const results = await client.images.generate({
        prompt,
        size: "1024x1024",
        n: numberOfImagesToGenerate,
        model: "",
        style: "vivid", // or "natural"
      });
    
      for (const image of results.data) {
        console.log(`Image generation result URL: ${image.url}`);
      }
    }
    
    main().catch((err) => {
      console.error("The sample encountered an error:", err);
    });
    
  2. Войдите в Azure с помощью следующей команды:

    az login
    
  3. Запустите файл JavaScript.

    node index.js
    

Выходные данные

URL-адрес созданного изображения выводится в консоль.

== Batch Image Generation ==
Image generation result URL: <SAS URL>
Image generation result URL: <SAS URL>

Замечание

API-интерфейсы изображений содержат фильтр модерации содержимого. Если служба распознает запрос как вредное содержимое, он не вернет созданный образ. Для получения дополнительной информации см. статью о фильтре содержимого.

Очистите ресурсы

Если вы хотите очистить и удалить ресурс Azure OpenAI, его можно удалить. Перед удалением ресурса необходимо сначала удалить все развернутые модели.

Дальнейшие шаги

В этом руководстве описано, как приступить к созданию образов с помощью пакета SDK OpenAI для Azure для JavaScript.

Справочная документация | Исходный код | Пакет (npm) | Образцы

Предпосылки

Предварительные требования для идентификатора Microsoft Entra

Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra необходимо:

  • Установите Azure CLI, используемый для проверки подлинности без ключа с помощью идентификатора Microsoft Entra.
  • Назначьте роль Cognitive Services User своему аккаунту пользователя. Роли можно назначить в портале Azure в разделе Контроль доступа (IAM)>Добавить назначение ролей.

Настройка

  1. Создайте новую папку image-quickstart и перейдите в папку быстрого запуска, используя следующую команду:

    mkdir image-quickstart && cd image-quickstart
    
  2. Создайте package.json с помощью следующей команды:

    npm init -y
    
  3. Обновите package.json на ECMAScript с помощью следующей команды:

    npm pkg set type=module
    
  4. Установите клиентскую библиотеку OpenAI для JavaScript с помощью:

    npm install openai
    
  5. Для рекомендуемой аутентификации без пароля:

    npm install @azure/identity
    

Получение сведений о ресурсе

Чтобы проверить подлинность приложения с помощью ресурса Azure OpenAI, необходимо получить следующие сведения:

Имя переменной Ценность
AZURE_OPENAI_ENDPOINT Это значение можно найти в разделе "Ключи и конечная точка доступа" при просмотре ресурса на портале Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Это значение будет соответствовать пользовательскому имени, которое вы выбрали при развертывании модели. Это значение можно найти в разделе Управление ресурсами>Развертывание моделей на портале Azure.
OPENAI_API_VERSION Дополнительные сведения о версиях API.

Вы можете изменить версию в коде или использовать переменную среды.

Дополнительные сведения о бессерверной проверке подлинности и настройке переменных среды.

Осторожность

Чтобы использовать рекомендуемую проверку подлинности без ключа с пакетом SDK, убедитесь, что AZURE_OPENAI_API_KEY переменная среды не задана.

Создание образов с помощью DALL-E

  1. index.ts Создайте файл со следующим кодом:

    import { AzureOpenAI } from "openai";
    import { 
        DefaultAzureCredential, 
        getBearerTokenProvider 
    } from "@azure/identity";
    
    // You will need to set these environment variables or edit the following values
    const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint";
    
    // Required Azure OpenAI deployment name and API version
    const apiVersion = process.env.OPENAI_API_VERSION || "2024-07-01";
    const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "dall-e-3";
    
    // keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
    function getClient(): AzureOpenAI {
      return new AzureOpenAI({
        endpoint,
        azureADTokenProvider,
        apiVersion,
        deployment: deploymentName,
      });
    }
    async function main() {
      console.log("== Image Generation ==");
    
      const client = getClient();
    
      const results = await client.images.generate({
        prompt,
        size: "1024x1024",
        n: numberOfImagesToGenerate,
        model: "",
        style: "vivid", // or "natural"
      });
    
      for (const image of results.data) {
        console.log(`Image generation result URL: ${image.url}`);
      }
    }
    
    main().catch((err) => {
      console.error("The sample encountered an error:", err);
    });
    
  2. tsconfig.json Создайте файл для транспиля кода TypeScript и скопируйте следующий код для ECMAScript.

    {
        "compilerOptions": {
          "module": "NodeNext",
          "target": "ES2022", // Supports top-level await
          "moduleResolution": "NodeNext",
          "skipLibCheck": true, // Avoid type errors from node_modules
          "strict": true // Enable strict type-checking options
        },
        "include": ["*.ts"]
    }
    
  3. Транспилировать код с TypeScript на JavaScript.

    tsc
    
  4. Войдите в Azure с помощью следующей команды:

    az login
    
  5. Выполните следующую команду, чтобы запустить код:

    node index.js
    

Выходные данные

URL-адрес созданного изображения выводится в консоль.

== Batch Image Generation ==
Image generation result URL: <SAS URL>
Image generation result URL: <SAS URL>

Замечание

API-интерфейсы изображений содержат фильтр модерации содержимого. Если служба распознает запрос как вредное содержимое, он не вернет созданный образ. Для получения дополнительной информации см. статью о фильтре содержимого.

Очистите ресурсы

Если вы хотите очистить и удалить ресурс Azure OpenAI, его можно удалить. Перед удалением ресурса необходимо сначала удалить все развернутые модели.

Дальнейшие шаги

В этом руководстве описано, как приступить к созданию образов с помощью пакета SDK OpenAI для Azure для Go.

Исходный код библиотеки | Пакет | Примеры

Предпосылки

Предварительные требования для идентификатора Microsoft Entra

Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra необходимо:

  • Установите Azure CLI, используемый для проверки подлинности без ключа с помощью идентификатора Microsoft Entra.
  • Назначьте роль Cognitive Services User своему аккаунту пользователя. Роли можно назначить в портале Azure в разделе Контроль доступа (IAM)>Добавить назначение ролей.

Настройка

  1. Создайте новую папку dall-e-quickstart и перейдите в папку быстрого запуска, используя следующую команду:

    mkdir dall-e-quickstart && cd dall-e-quickstart
    
  2. Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra войдите в Azure с помощью следующей команды:

    az login
    

Получение сведений о ресурсе

Чтобы проверить подлинность приложения с помощью ресурса Azure OpenAI, необходимо получить следующие сведения:

Имя переменной Ценность
AZURE_OPENAI_ENDPOINT Это значение можно найти в разделе "Ключи и конечная точка доступа" при просмотре ресурса на портале Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Это значение будет соответствовать пользовательскому имени, которое вы выбрали при развертывании модели. Это значение можно найти в разделе Управление ресурсами>Развертывание моделей на портале Azure.
OPENAI_API_VERSION Дополнительные сведения о версиях API.

Вы можете изменить версию в коде или использовать переменную среды.

Дополнительные сведения о бессерверной проверке подлинности и настройке переменных среды.

Выполните быстрый старт

Пример кода в этом кратком руководстве использует идентификатор Microsoft Entra для рекомендуемой проверки подлинности без ключей. Если вы предпочитаете использовать ключ API, вы можете заменить реализацию NewDefaultAzureCredential на NewKeyCredential.

azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
credential, err := azidentity.NewDefaultAzureCredential(nil)
client, err := azopenai.NewClient(azureOpenAIEndpoint, credential, nil)

Чтобы запустить пример, выполните следующие действия:

  1. Создайте файл с именем quickstart.go. Скопируйте следующий код в файл quickstart.go .

     package main
    
    import (
    	"context"
    	"fmt"
    	"net/http"
    	"os"
    	"log"
    
    	"github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
    	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
    	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
    )
    
    func main() {
    	azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
    	modelDeploymentID := "dall-e-3"
    
    	credential, err := azidentity.NewDefaultAzureCredential(nil)
    	if err != nil {
    		log.Printf("ERROR: %s", err)
    		return
    	}
    
    	client, err := azopenai.NewClient(
    		azureOpenAIEndpoint, credential, nil)
    	if err != nil {
    		log.Printf("ERROR: %s", err)
    		return
    	}
    
    	resp, err := client.GetImageGenerations(context.TODO(), azopenai.ImageGenerationOptions{
    		Prompt:         to.Ptr("A painting of a cat in the style of Dali."),
    		ResponseFormat: to.Ptr(azopenai.ImageGenerationResponseFormatURL),
    		DeploymentName: to.Ptr(modelDeploymentID),
    	}, nil)
    
    	if err != nil {
    		// Implement application specific error handling logic.
    		log.Printf("ERROR: %s", err)
    		return
    	}
    
    	for _, generatedImage := range resp.Data {
    		// The underlying type for the generatedImage is determined by the value of
    		// ImageGenerationOptions.ResponseFormat. 
    		// In this example we use `azopenai.ImageGenerationResponseFormatURL`,
    		// so the underlying type will be ImageLocation.
    
    		resp, err := http.Head(*generatedImage.URL)
    
    		if err != nil {
    			// Implement application specific error handling logic.
    			log.Printf("ERROR: %s", err)
    			return
    		}
    
    		fmt.Fprintf(os.Stderr, "Image generated, HEAD request on URL returned %d\nImage URL: %s\n", resp.StatusCode, *generatedImage.URL)
    	}
    }
    
  2. Выполните следующую команду, чтобы создать новый модуль Go:

     go mod init quickstart.go
    
  3. Запустите go mod tidy , чтобы установить необходимые зависимости:

    go mod tidy
    
  4. Выполните следующую команду, чтобы запустить пример:

     go run quickstart.go
    

Выходные данные

URL-адрес созданного изображения выводится в консоль.

Image generated, HEAD request on URL returned 200
Image URL: <SAS URL>

Замечание

API-интерфейсы изображений содержат фильтр модерации содержимого. Если служба распознает запрос как вредное содержимое, он не вернет созданный образ. Для получения дополнительной информации см. статью о фильтре содержимого.

Очистите ресурсы

Если вы хотите очистить и удалить ресурс Azure OpenAI, можно удалить ресурс или группу ресурсов. Удаление группы ресурсов также удаляет все другие ресурсы, связанные с ней.

Дальнейшие шаги

В этом руководстве описано, как приступить к вызову Azure OpenAI в API создания образов Моделей ИИ Azure с помощью PowerShell.

Предпосылки

Предварительные требования для идентификатора Microsoft Entra

Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra необходимо:

  • Установите Azure CLI, используемый для проверки подлинности без ключа с помощью идентификатора Microsoft Entra.
  • Назначьте роль Cognitive Services User своему аккаунту пользователя. Роли можно назначить в портале Azure в разделе Контроль доступа (IAM)>Добавить назначение ролей.

Получение сведений о ресурсе

Чтобы проверить подлинность приложения с помощью ресурса Azure OpenAI, необходимо получить следующие сведения:

Имя переменной Ценность
AZURE_OPENAI_ENDPOINT Это значение можно найти в разделе "Ключи и конечная точка доступа" при просмотре ресурса на портале Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Это значение будет соответствовать пользовательскому имени, которое вы выбрали при развертывании модели. Это значение можно найти в разделе Управление ресурсами>Развертывание моделей на портале Azure.
OPENAI_API_VERSION Дополнительные сведения о версиях API.

Вы можете изменить версию в коде или использовать переменную среды.

Дополнительные сведения о бессерверной проверке подлинности и настройке переменных среды.

Создание изображений

  1. Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra войдите в Azure с помощью следующей команды:

    az login
    
  2. Создайте новый файл PowerShell с именемquickstart.ps1. Затем откройте его в предпочитаемом редакторе или интегрированной среде разработки.

  3. Замените содержимое quickstart.ps1 следующим кодом. Введите URL-адрес конечной точки и ключ в соответствующих полях. Измените значение предпочтительного prompt текста.

     # Azure OpenAI metadata variables
     $openai = @{
         api_base    = $Env:AZURE_OPENAI_ENDPOINT 
         api_version = '2023-06-01-preview' # This can change in the future.
     }
    
     # Use the recommended keyless authentication via bearer token.
     $headers = [ordered]@{
         #'api-key' = $Env:AZURE_OPENAI_API_KEY
         'Authorization' = "Bearer $($Env:DEFAULT_AZURE_CREDENTIAL_TOKEN)"
     }
    
     # Text to describe image
     $prompt = 'A painting of a dog'
    
     # Adjust these values to fine-tune completions
     $body = [ordered]@{
         prompt = $prompt
         size   = '1024x1024'
         n      = 1
     } | ConvertTo-Json
    
     # Call the API to generate the image and retrieve the response
     $url = "$($openai.api_base)/openai/images/generations:submit?api-version=$($openai.api_version)"
    
     $submission = Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Post -ContentType 'application/json' -ResponseHeadersVariable submissionHeaders
    
     $operation_location = $submissionHeaders['operation-location'][0]
     $status = ''
     while ($status -ne 'succeeded') {
         Start-Sleep -Seconds 1
         $response = Invoke-RestMethod -Uri $operation_location -Headers $headers
         $status   = $response.status
     }
    
     # Set the directory for the stored image
     $image_dir = Join-Path -Path $pwd -ChildPath 'images'
    
     # If the directory doesn't exist, create it
     if (-not(Resolve-Path $image_dir -ErrorAction Ignore)) {
         New-Item -Path $image_dir -ItemType Directory
     }
    
     # Initialize the image path (note the filetype should be png)
     $image_path = Join-Path -Path $image_dir -ChildPath 'generated_image.png'
    
     # Retrieve the generated image
     $image_url = $response.result.data[0].url  # extract image URL from response
     $generated_image = Invoke-WebRequest -Uri $image_url -OutFile $image_path  # download the image
     return $image_path
    

    Это важно

    Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным, таким как Управление секретами PowerShell с помощью Azure Key Vault. Дополнительные сведения о безопасности учетных данных см. в этой статье.

  4. Запустите скрипт с помощью PowerShell:

    ./quickstart.ps1
    

    Скрипт цикличен, пока созданный образ не будет готов.

Выходные данные

PowerShell запрашивает образ из Azure OpenAI и сохраняет выходной образ в файле generated_image.png в указанном каталоге. Для удобства полный путь к файлу возвращается в конце скрипта.

API-интерфейсы изображений содержат фильтр модерации содержимого. Если служба распознает запрос как вредное содержимое, он не создает образ. Дополнительные сведения см. в разделе "Фильтрация содержимого".

Очистите ресурсы

Если вы хотите очистить и удалить ресурс Azure OpenAI, можно удалить ресурс или группу ресурсов. Удаление группы ресурсов также удаляет все другие ресурсы, связанные с ней.

Дальнейшие шаги