Partager via


Démarrage rapide : Générer des images avec Azure OpenAI Service

Remarque

L’API de génération d’image crée une image à partir d’une invite de texte. Elle ne modifie pas les images existantes et ne crée pas de variantes.

Utilisez ce guide pour commencer à générer des images avec Azure OpenAI dans votre navigateur.

Prérequis

Remarque

Actuellement, vous devez envoyer une demande pour accéder à Azure OpenAI Service. Pour demander l’accès, remplissez ce formulaire. Si vous avez besoin d’aide, ouvrez un problème sur ce référentiel pour contacter Microsoft.

Connectez-vous à Azure OpenAI Studio

Accédez à Azure OpenAI Studio et connectez-vous avec les informations d’identification associées à votre ressource Azure OpenAI. Pendant ou après le flux de travail de connexion, sélectionnez le répertoire approprié, l’abonnement Azure et la ressource Azure OpenAI.

À partir de la page d’arrivée d’Azure OpenAI Studio, sélectionnez Terrain de jeu DALL·E (préversion) pour utiliser les API de génération d’images. Sélectionnez Paramètres en haut de la page et vérifiez que la liste déroulante Déploiement a sélectionné votre déploiement DALL-E 3.

Essayer la génération d’images

Commencez à explorer les fonctionnalités d’Azure OpenAI avec une approche sans code par le biais du terrain de jeu DALL·E (préversion). Entrez votre invite d’images dans la zone de texte, puis sélectionnez Générer. Quand l’image générée par l’IA est prête, elle s’affiche sur la page.

Remarque

Les API de génération d’images sont fournies avec un filtre de modération du contenu. Si Azure OpenAI reconnaît votre invite comme étant du contenu nuisible, il ne retourne pas d’image générée. Pour plus d’informations, consultez l’article Filtrage du contenu.

Capture d’écran de la page d’arrivée d’Azure OpenAI Studio montrant le terrain de jeu DALL-E (préversion) avec des images générées d’ours polaires.

Dans le terrain de jeu DALL·E (préversion), vous pouvez également afficher des exemples de code Python et cURL, qui sont pré-remplis en fonction de vos paramètres. Sélectionnez Afficher le code en haut de la page. Vous pouvez utiliser ce code pour écrire une application qui effectue la même tâche.

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Étapes suivantes

Utilisez ce guide pour commencer à appeler les API REST de génération d’images Azure OpenAI Service à l’aide de Python.

Prérequis

Remarque

Actuellement, vous devez envoyer une demande pour accéder à Azure OpenAI Service. Pour demander l’accès, remplissez ce formulaire. Si vous avez besoin d’aide, ouvrez un problème sur ce référentiel pour contacter Microsoft.

Récupérer la clé et le point de terminaison

Pour appeler correctement les API Azure OpenAI, vous avez besoin des informations suivantes sur votre ressource Azure OpenAI :

Variable Nom Valeur
Point de terminaison api_base La valeur du point de terminaison se trouve sous Clés et point de terminaison pour votre ressource dans le portail Azure. Vous trouverez également la valeur dans l’affichage Azure OpenAI Studio>Playground>Code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
Clé api_key La valeur de la clé se trouve également sous Clés et point de terminaison pour votre ressource dans le portail Azure. Azure génère deux clés pour votre ressource. Vous pouvez utiliser l’une ou l’autre de ces valeurs.

Accédez à votre ressource sur le portail Azure. Dans le volet de navigation, sélectionnez Clés et point de terminaison sous Gestion des ressources. Copiez la valeur Point de terminaison et une valeur de clé d’accès. Vous pouvez utiliser la valeur CLÉ 1 ou CLÉ 2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran montrant la page Clés et point de terminaison pour une ressource Azure OpenAI dans le portail Azure.

Créer une application Python

Créez un fichier Python nommé quickstart.py. Ouvrez le nouveau fichier dans votre éditeur ou votre IDE favori.

  1. Remplacez le contenu du fichier quickstart.py par le code suivant. Entrez l’URL et la clé de votre point de terminaison dans les champs appropriés. Remplacez la valeur de prompt par votre texte de préférence.

    Vous devez aussi remplacer <dalle3> dans l’URL par le nom de déploiement que vous avez choisi lors du déploiement du modèle DALL-E 3. L’entrée du nom du modèle entraîne une erreur, sauf si vous avez choisi un nom de déploiement identique au nom du modèle sous-jacent. Si vous rencontrez une erreur, vérifiez à nouveau que vous n'avez pas un doublement de la / à la séparation entre votre point de terminaison et /openai/deployments.

    import requests
    import time
    import os
    api_base = '<your_endpoint>'  # Enter your endpoint here
    api_key = '<your_key>'        # Enter your API key here
    
    api_version = '2024-02-01'
    url = f"{api_base}/openai/deployments/<dalle3>/images/generations?api-version={api_version}"
    headers= { "api-key": api_key, "Content-Type": "application/json" }
    body = {
        # Enter your prompt text here
        "prompt": "A multi-colored umbrella on the beach, disposable camera",
        "size": "1024x1024", # supported values are “1792x1024”, “1024x1024” and “1024x1792” 
        "n": 1, #The number of images to generate. Only n=1 is supported for DALL-E 3.
        "quality": "hd", # Options are “hd” and “standard”; defaults to standard 
        "style": "vivid" # Options are “natural” and “vivid”; defaults to “vivid”
    }
    submission = requests.post(url, headers=headers, json=body)
    
    image_url = submission.json()['data'][0]['url']
    
    print(image_url)
    

    Le script effectue un appel d’API de génération d’images synchrone.

    Important

    N’oubliez pas de supprimer la clé de votre code une fois que vous avez terminé, et ne la publiez jamais. Pour la production, utilisez une méthode de stockage et d’accès sécurisée pour vos informations d’identification. Pour plus d’informations, consultez Azure Key Vault.

  2. Exécutez l’application avec la commande python :

    python quickstart.py
    

    Attendez quelques instants pour obtenir une réponse.

Sortie

La sortie d’un appel d’API de génération d’images réussi ressemble à l’exemple ci-dessous. Le champ url contient une URL dans laquelle vous pouvez télécharger l’image générée. L’URL reste active pendant 24 heures.

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

Les API de génération d’images sont fournies avec un filtre de modération du contenu. Si le service reconnaît votre invite comme étant du contenu nuisible, il ne génère pas d’image. Pour plus d’informations, consultez l’article Filtrage du contenu. Pour obtenir des exemples de réponses d’erreur, consultez le guide pratique DALL-E.

Le système retourne l’état d’opération Failed et la valeur error.code dans le message est définie sur contentFilter. Voici un exemple :

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

Il est également possible que l’image générée elle-même soit filtrée. Dans ce cas, le message d’erreur est défini sur Generated image was filtered as a result of our safety system.. Voici un exemple :

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

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Étapes suivantes

Utilisez ce guide pour commencer à générer des images avec le SDK Azure OpenAI pour Python.

Code source de la bibliothèque | Package | Exemples

Prérequis

Remarque

Actuellement, vous devez envoyer une demande pour accéder à Azure OpenAI Service. Pour demander l’accès, remplissez ce formulaire. Si vous avez besoin d’aide, ouvrez un problème sur ce référentiel pour contacter Microsoft.

Configurer

Récupérer la clé et le point de terminaison

Pour appeler correctement les API Azure OpenAI, vous avez besoin des informations suivantes sur votre ressource Azure OpenAI :

Variable Nom Valeur
Point de terminaison api_base La valeur du point de terminaison se trouve sous Clés et point de terminaison pour votre ressource dans le portail Azure. Vous trouverez également la valeur dans l’affichage Azure OpenAI Studio>Playground>Code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
Clé api_key La valeur de la clé se trouve également sous Clés et point de terminaison pour votre ressource dans le portail Azure. Azure génère deux clés pour votre ressource. Vous pouvez utiliser l’une ou l’autre de ces valeurs.

Accédez à votre ressource sur le portail Azure. Dans le volet de navigation, sélectionnez Clés et point de terminaison sous Gestion des ressources. Copiez la valeur Point de terminaison et une valeur de clé d’accès. Vous pouvez utiliser la valeur CLÉ 1 ou CLÉ 2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran montrant la page Clés et point de terminaison pour une ressource Azure OpenAI dans le portail Azure.

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

Variables d'environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Créer une application Python

Ouvrez une invite de commandes et accédez à votre dossier de projet. Créez un fichier Python nommé quickstart.py.

Installer le Kit de développement logiciel (SDK) Python

Installez le kit de développement logiciel (SDK) Python OpenAI à l’aide de la commande suivante :

pip install openai

Installez également les bibliothèques suivantes :

pip install requests
pip install pillow 

Générer des images avec DALL-E

Ouvrez _quickstart.py dans votre éditeur ou votre IDE favori.

Remplacez le contenu du fichier quickstart.py par le code suivant.

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. Entrez l’URL et la clé de votre point de terminaison dans les champs appropriés.
  2. Remplacez la valeur de prompt par votre texte de préférence.
  3. Remplacez la valeur de model par le nom de votre modèle DALL-E 3 déployé.

Important

N’oubliez pas de supprimer la clé de votre code une fois que vous avez terminé, et ne la publiez jamais. Pour la production, utilisez une méthode de stockage et d’accès sécurisée pour vos informations d’identification. Pour plus d’informations, consultez Azure Key Vault.

Exécutez l’application avec la commande python :

python quickstart.py

Attendez quelques instants pour obtenir une réponse.

Sortie

Azure OpenAI stocke l’image de sortie dans le fichier generated_image.png dans le répertoire spécifié. Le script affiche également l’image dans votre visionneuse d’images par défaut.

Les API de génération d’images sont fournies avec un filtre de modération du contenu. Si le service reconnaît votre invite comme étant du contenu nuisible, il ne génère pas d’image. Pour plus d’informations, consultez l’article Filtrage du contenu.

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Étapes suivantes

Utilisez ce guide pour commencer à générer des images avec le SDK Azure OpenAI pour C#.

Code source de la bibliothèque | Package (NuGet) | Exemples

Prérequis

Remarque

Actuellement, vous devez envoyer une demande pour accéder à Azure OpenAI Service. Pour demander l’accès, remplissez ce formulaire. Si vous avez besoin d’aide, ouvrez un problème sur ce référentiel pour contacter Microsoft.

Configurer

Récupérer la clé et le point de terminaison

Pour effectuer correctement un appel sur Azure OpenAI, vous avez besoin d’un point de terminaison et d’une clé.

Nom de la variable Valeur
ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez également trouver la valeur dans l’affichage Azure OpenAI Studio>Playground>Code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
API-KEY Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.

Accédez à votre ressource sur le portail Azure. La section Point de terminaison et les clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran de l’interface utilisateur de vue d’ensemble d’une ressource Azure OpenAI dans le Portail Azure avec l’emplacement du point de terminaison et des clés d’accès entouré en rouge.

Variables d'environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Créez une application .NET Core

Dans une fenêtre de console (par exemple cmd, PowerShell ou Bash), utilisez la commande dotnet new pour créer une application console avec le nom azure-openai-quickstart. Cette commande crée un projet « Hello World » simple avec un seul fichier source C# : Program.cs.

dotnet new console -n azure-openai-quickstart

Déplacez vos répertoires vers le dossier d’application nouvellement créé. Vous pouvez générer l’application avec :

dotnet build

La sortie de génération ne doit contenir aucun avertissement ni erreur.

...
Build succeeded.
 0 Warning(s)
 0 Error(s)
...

Installer le SDK .NET OpenAI

Installez la bibliothèque de client avec :

dotnet add package Azure.AI.OpenAI --version 1.0.0-beta.6

Générer des images avec DALL-E

À partir du répertoire du projet, ouvrez le fichier program.cs et remplacez le contenu par le code suivant :

using System;
using System.IO;
using System.Threading.Tasks;
using Azure.AI.OpenAI;

namespace Azure.AI.OpenAI.Tests.Samples
{
    public partial class GenerateImages
    {
        // add an async Main method:
        public static async Task Main(string[] args)
        {
            string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
            string key = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");

            OpenAIClient client = new(new Uri(endpoint), new AzureKeyCredential(key));

            Response<ImageGenerations> imageGenerations = await client.GetImageGenerationsAsync(
                new ImageGenerationOptions()
                {
                    Prompt = "a happy monkey eating a banana, in watercolor",
                    Size = ImageSize.Size256x256,
                });

            // Image Generations responses provide URLs you can use to retrieve requested images
            Uri imageUri = imageGenerations.Value.Data[0].Url;
            
            // Print the image URI to console:
            Console.WriteLine(imageUri);
        }
    }
}

Générez et exécutez l’application à partir de votre répertoire d’application avec ces commandes :

dotnet build
dotnet run

Sortie

L’URL de l’image générée s’affiche dans la console.

https://dalleproduse.blob.core.windows.net/private/images/552c5522-af4a-4877-a19c-400fac04a422/generated_00.png?se=2023-08-17T16%3A54%3A40Z&sig=XGCIx9r0WvWTJ0LL%2FJGymo2WYp4FDbSQNNrGRUnnUzI%3D&ske=2023-08-19T01%3A10%3A14Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-12T01%3A10%3A14Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02

Remarque

Les API de génération d’images sont fournies avec un filtre de modération du contenu. Si le service reconnaît votre invite comme du contenu nuisible, il ne retourne pas d’image générée. Pour plus d’informations, consultez l’article sur le filtrage de contenu.

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez la supprimer. Vous devez d’abord supprimer tous les modèles déployés avant de supprimer la ressource.

Étapes suivantes

Utilisez ce guide pour commencer à générer des images avec le SDK Azure OpenAI pour Java.

Code source de la bibliothèque | Artefact (Maven) | Exemples

Prérequis

  • Un abonnement Azure - En créer un gratuitement
  • Accès accordé à Azure OpenAI Service dans l’abonnement Azure souhaité. L’accès à ce service n’est accordé qu’à l’application. Vous pouvez demander l’accès à Azure OpenAI Service en complétant le formulaire à l’adresse https://aka.ms/oai/access.

Remarque

Actuellement, vous devez envoyer une demande pour accéder à Azure OpenAI Service. Pour demander l’accès, remplissez ce formulaire. Si vous avez besoin d’aide, ouvrez un problème sur ce référentiel pour contacter Microsoft.

Configurer

Récupérer la clé et le point de terminaison

Pour effectuer correctement un appel sur Azure OpenAI, vous avez besoin d’un point de terminaison et d’une clé.

Nom de la variable Valeur
ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez également trouver la valeur dans l’affichage Azure OpenAI Studio>Playground>Code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
API-KEY Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.

Accédez à votre ressource sur le portail Azure. La section Point de terminaison et les clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran de l’interface utilisateur de vue d’ensemble d’une ressource Azure OpenAI dans le Portail Azure avec l’emplacement du point de terminaison et des clés d’accès entouré en rouge.

Variables d'environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Créer une application Java

Créez un projet Gradle.

Dans une fenêtre de console (telle que cmd, PowerShell ou bash), créez un répertoire pour votre application et accédez-y.

mkdir myapp && cd myapp

Exécutez la commande gradle init à partir de votre répertoire de travail. Cette commande crée des fichiers de build essentiels pour Gradle, notamment build.gradle.kts, qui est utilisé au moment de l’exécution pour créer et configurer votre application.

gradle init --type basic

Quand vous êtes invité à choisir un DSL, sélectionnez Kotlin.

Installer le Kit de développement logiciel (SDK) Java

Ce guide de démarrage rapide utilise le gestionnaire de dépendances Gradle. Vous trouverez la bibliothèque de client et des informations concernant d’autres gestionnaires de dépendances sur le référentiel central Maven.

Recherchez build.gradle.kts et ouvrez-le avec votre IDE ou votre éditeur de texte habituel. Copiez-y ensuite la configuration de build suivante. Cette configuration définit le projet sous forme d’application Java dont le point d’entrée est la classe OpenAIQuickstart. Cela importe la bibliothèque Azure AI Vision.

plugins {
    java
    application
}
application { 
    mainClass.set("OpenAIQuickstart")
}
repositories {
    mavenCentral()
}
dependencies {
    implementation(group = "com.azure", name = "azure-ai-openai", version = "1.0.0-beta.3")
    implementation("org.slf4j:slf4j-simple:1.7.9")
}

Générer des images avec DALL-E

  1. Créez un fichier Java.

    Dans votre répertoire de travail, exécutez la commande suivante pour créer un dossier de projet source :

    mkdir -p src/main/java
    

    Accédez au nouveau dossier et créez le fichier OpenAIQuickstart.java.

  2. Ouvrez OpenAIQuickstart.java dans votre éditeur ou IDE préféré, et collez le code suivant.

    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;
    
    /**
     * Sample demonstrates how to get the images for a given prompt.
     */
    public class OpenAIQuickstart {
    
        /**
         * Runs the sample algorithm and demonstrates how to get the images for a given prompt.
         *
         * @param args Unused. Arguments to the program.
         */
        public static void main(String[] args) throws InterruptedException {
    
            // Get key and endpoint from environment variables:
            String azureOpenaiKey = System.getenv("AZURE_OPENAI_API_KEY");
            String endpoint = System.getenv("AZURE_OPENAI_ENDPOINT");
    
            OpenAIAsyncClient client = new OpenAIClientBuilder()
                .endpoint(endpoint)
                .credential(new AzureKeyCredential(azureOpenaiKey))
                .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 is not a blocking call. For the purpose of this example, we sleep
            // the thread so the program does not end before the send operation is complete. Using .block() instead of
            // .subscribe() will turn this into a synchronous call.
            TimeUnit.SECONDS.sleep(10);
        }
    }
    
  3. Revenez au dossier racine du projet et générez l’application avec :

    gradle build
    

    Ensuite, exécutez-la avec la commande gradle run :

    gradle run
    

Sortie

L’URL de l’image générée s’affiche dans la console.

Image location URL that provides temporary access to download the generated image is https://dalleproduse.blob.core.windows.net/private/images/d2ea917f-8802-4ad6-8ef6-3fb7a15c8482/generated_00.png?se=2023-08-25T23%3A11%3A28Z&sig=%2BKa5Mkb9U88DfvxoBpyAjamYRzwb7aVCEucM6XJC3wQ%3D&ske=2023-08-31T15%3A27%3A47Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-24T15%3A27%3A47Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02.
Completed getImages.

Remarque

Les API de génération d’images sont fournies avec un filtre de modération du contenu. Si le service reconnaît votre invite comme du contenu nuisible, il ne retourne pas d’image générée. Pour plus d’informations, consultez l’article sur le filtrage de contenu.

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez la supprimer. Vous devez d’abord supprimer tous les modèles déployés avant de supprimer la ressource.

Étapes suivantes

Utilisez ce guide pour commencer à générer des images avec le SDK Azure OpenAI pour JavaScript.

Code source de la bibliothèque | Package (npm) | Exemples

Prérequis

Remarque

Actuellement, vous devez envoyer une demande pour accéder à Azure OpenAI Service. Pour demander l’accès, remplissez ce formulaire. Si vous avez besoin d’aide, ouvrez un problème sur ce référentiel pour contacter Microsoft.

Configurer

Récupérer la clé et le point de terminaison

Pour effectuer correctement un appel sur Azure OpenAI, vous avez besoin d’un point de terminaison et d’une clé.

Nom de la variable Valeur
ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez également trouver la valeur dans l’affichage Azure OpenAI Studio>Playground>Code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
API-KEY Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.

Accédez à votre ressource sur le portail Azure. La section Point de terminaison et les clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran de l’interface utilisateur de vue d’ensemble d’une ressource Azure OpenAI dans le Portail Azure avec l’emplacement du point de terminaison et des clés d’accès entouré en rouge.

Variables d'environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Créer une application Node

Dans une fenêtre de console (telle que cmd, PowerShell ou bash), créez un répertoire pour votre application et accédez-y. Exécutez ensuite la commande npm init pour créer une application de nœud avec un fichier package.json.

npm init

Installer la bibliothèque de client

Installez la bibliothèque de client Azure OpenAI pour JavaScript avec npm :

npm install @azure/openai

Le fichier package.json de votre application est mis à jour avec les dépendances.

Générer des images avec DALL-E

Créez un fichier ImageGeneration.js et ouvrez-le avec votre éditeur de code préféré. Copiez le code suivant dans le fichier ImageGeneration.js :

const { OpenAIClient, AzureKeyCredential } = require("@azure/openai");

// You will need to set these environment variables or edit the following values
const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] ;
const azureApiKey = process.env["AZURE_OPENAI_API_KEY"] ;

// The prompt to generate images from
const prompt = "a monkey eating a banana";
const size = "256x256";

// The number of images to generate
const n = 2;

async function main() {
    console.log("== Batch Image Generation ==");
  
    const client = new OpenAIClient(endpoint, new AzureKeyCredential(azureApiKey));
    const deploymentName = "dall-e";
    const results = await client.getImages(deploymentName, prompt, { n, size });
  
    for (const image of results.data) {
      console.log(`Image generation result URL: ${image.url}`);
    }
    //console.log(`Image generation result URL: ${results.result.status}`);
}

main().catch((err) => {
console.error("The sample encountered an error:", err);
});

Exécutez le script avec la commande suivante :

node _ImageGeneration.js

Sortie

L’URL de l’image générée s’affiche dans la console.

== Batch Image Generation ==
Image generation result URL: https://dalleproduse.blob.core.windows.net/private/images/5e7536a9-a0b5-4260-8769-2d54106f2913/generated_00.png?se=2023-08-29T19%3A12%3A57Z&sig=655GkWajOZ9ALjFykZF%2FBMZRPQALRhf4UPDImWCQoGI%3D&ske=2023-09-02T18%3A53%3A23Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-26T18%3A53%3A23Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02
Image generation result URL: https://dalleproduse.blob.core.windows.net/private/images/5e7536a9-a0b5-4260-8769-2d54106f2913/generated_01.png?se=2023-08-29T19%3A12%3A57Z&sig=B24ymPLSZ3HfG23uojOD9VlRFGxjvgcNmvFo4yPUbEc%3D&ske=2023-09-02T18%3A53%3A23Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-26T18%3A53%3A23Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02

Remarque

Les API de génération d’images sont fournies avec un filtre de modération du contenu. Si le service reconnaît votre invite comme du contenu nuisible, il ne retourne pas d’image générée. Pour plus d’informations, consultez l’article sur le filtrage de contenu.

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez la supprimer. Vous devez d’abord supprimer tous les modèles déployés avant de supprimer la ressource.

Étapes suivantes

Utilisez ce guide pour commencer à générer des images avec le SDK Azure OpenAI pour Go.

Code source de la bibliothèque | Package | Exemples

Prérequis

  • Un abonnement Azure - En créer un gratuitement
  • Accès accordé à DALL-E dans l’abonnement Azure souhaité. Actuellement, l’accès à ce service est accordé uniquement par l’application. Vous pouvez demander l’accès à Azure OpenAI en complétant le formulaire à l’adresse https://aka.ms/oai/access. Les clients Azure OpenAI existants doivent renseigner à nouveau le formulaire pour accéder à DALL-E. Ouvrez un problème sur ce dépôt pour nous contacter si vous rencontrez un problème.

Remarque

Actuellement, vous devez envoyer une demande pour accéder à Azure OpenAI Service. Pour demander l’accès, remplissez ce formulaire. Si vous avez besoin d’aide, ouvrez un problème sur ce référentiel pour contacter Microsoft.

Configurer

Récupérer la clé et le point de terminaison

Pour effectuer correctement un appel sur Azure OpenAI, vous avez besoin d’un point de terminaison et d’une clé.

Nom de la variable Valeur
ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez également trouver la valeur dans l’affichage Azure OpenAI Studio>Playground>Code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
API-KEY Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.

Accédez à votre ressource sur le portail Azure. La section Point de terminaison et les clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran de l’interface utilisateur de vue d’ensemble d’une ressource Azure OpenAI dans le Portail Azure avec l’emplacement du point de terminaison et des clés d’accès entouré en rouge.

Variables d'environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Créer une application Go

Ouvrez l’invite de commandes et accédez au dossier de votre projet. Créez un fichier sample.go.

Installer le kit de développement logiciel (SDK) Go

Installez le SDK Go OpenAI avec la commande suivante :

go get github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai@latest

Sinon, si vous utilisez dep, dans votre dépôt exécutez :

dep ensure -add github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai

Générer des images avec DALL-E

Ouvrez sample.go dans votre éditeur de code préféré.

Ajoutez le code suivant à votre script :

package main

import (
	"context"
	"fmt"
	"net/http"
	"os"

	"github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
)

func main() {
	azureOpenAIKey := os.Getenv("AZURE_OPENAI_API_KEY")

	// Ex: "https://<your-azure-openai-host>.openai.azure.com"
	azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")

	if azureOpenAIKey == "" || azureOpenAIEndpoint == "" {
		fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n")
		return
	}

	keyCredential, err := azopenai.NewKeyCredential(azureOpenAIKey)

	if err != nil {
		// handle error
	}

	client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)

	if err != nil {
		// handle error
	}

	resp, err := client.CreateImage(context.TODO(), azopenai.ImageGenerationOptions{
		Prompt:         to.Ptr("a painting of a cat in the style of Dali"),
		ResponseFormat: to.Ptr(azopenai.ImageGenerationResponseFormatURL),
	}, nil)

	if err != nil {
		// handle error
	}

	for _, generatedImage := range resp.Data {
		// the underlying type for the generatedImage is dictated by the value of
		// ImageGenerationOptions.ResponseFormat. In this example we used `azopenai.ImageGenerationResponseFormatURL`,
		// so the underlying type will be ImageLocation.

		resp, err := http.Head(*generatedImage.URL)

		if err != nil {
			// handle error
		}

		fmt.Fprintf(os.Stderr, "Image generated, HEAD request on URL returned %d\nImage URL: %s\n", resp.StatusCode, *generatedImage.URL)
	}
}

Exécutez le script avec la commande go run :

go run sample.go

Sortie

L’URL de l’image générée s’affiche dans la console.

Image generated, HEAD request on URL returned 200
Image URL: https://dalleproduse.blob.core.windows.net/private/images/d7b28a5c-ca32-4792-8c2a-6a5d8d8e5e45/generated_00.png?se=2023-08-29T17%3A05%3A37Z&sig=loqntaPypYVr9VTT5vpbsjsCz31g1GsdoQi0smbGkks%3D&ske=2023-09-02T18%3A53%3A23Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-26T18%3A53%3A23Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02

Remarque

Les API de génération d’images sont fournies avec un filtre de modération du contenu. Si le service reconnaît votre invite comme du contenu nuisible, il ne retourne pas d’image générée. Pour plus d’informations, consultez l’article sur le filtrage de contenu.

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Étapes suivantes

Utilisez ce guide pour commencer à appeler les API de génération d’images Azure OpenAI Service à l’aide de PowerShell.

Remarque

L’API de génération d’image crée une image à partir d’une invite de texte. Elle ne modifie pas les images existantes et ne crée pas de variantes.

Prérequis

Remarque

Actuellement, vous devez envoyer une demande pour accéder à Azure OpenAI Service. Pour demander l’accès, remplissez ce formulaire. Si vous avez besoin d’aide, ouvrez un problème sur ce référentiel pour contacter Microsoft.

Récupérer la clé et le point de terminaison

Pour appeler correctement les API Azure OpenAI, vous avez besoin des informations suivantes sur votre ressource Azure OpenAI :

Variable Nom Valeur
Point de terminaison api_base La valeur du point de terminaison se trouve sous Clés et point de terminaison pour votre ressource dans le portail Azure. Vous trouverez également la valeur dans l’affichage Azure OpenAI Studio>Playground>Code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
Clé api_key La valeur de la clé se trouve également sous Clés et point de terminaison pour votre ressource dans le portail Azure. Azure génère deux clés pour votre ressource. Vous pouvez utiliser l’une ou l’autre de ces valeurs.

Accédez à votre ressource sur le portail Azure. Dans le volet de navigation, sélectionnez Clés et point de terminaison sous Gestion des ressources. Copiez la valeur Point de terminaison et une valeur de clé d’accès. Vous pouvez utiliser la valeur CLÉ 1 ou CLÉ 2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran montrant la page Clés et point de terminaison pour une ressource Azure OpenAI dans le portail Azure.

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

Variables d'environnement

$Env:AZURE_OPENAI_API_KEY = 'YOUR_KEY_VALUE'
$Env:AZURE_OPENAI_ENDPOINT = 'YOUR_ENDPOINT'

Créer un script PowerShell

  1. Créez un fichier PowerShell nommé quickstart.ps1. Ouvrez le nouveau fichier dans votre éditeur ou votre IDE favori.

  2. Remplacez le contenu du fichier quickstart.ps1 par le code suivant. Entrez l’URL et la clé de votre point de terminaison dans les champs appropriés. Remplacez la valeur de prompt par votre texte de préférence.

    # Azure OpenAI metadata variables
    $openai = @{
      api_key     = $Env:AZURE_OPENAI_API_KEY
      api_base    = $Env:AZURE_OPENAI_ENDPOINT # your endpoint should look like the following https://YOUR_RESOURCE_NAME.openai.azure.com/
      api_version = '2023-06-01-preview' # this may change in the future
    }
    
    # Text to describe image
    $prompt = 'A painting of a dog'
    
    # Header for authentication
    $headers = [ordered]@{
      'api-key' = $openai.api_key
    }
    
    # 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
    

    Important

    Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification, comme La gestion des secrets PowerShell dans Azure Key Vault. Pour plus d’informations sur la sécurité des informations d’identification, consultez l’article de sécurité Azure AI services.

  3. Exécutez le script à l’aide de PowerShell :

    ./quickstart.ps1
    

    Le script s’exécute en boucle jusqu’à ce que l’image générée soit prête.

Sortie

PowerShell demande l’image à Azure OpenAI et stocke l’image de sortie dans le fichier generated_image.png dans votre répertoire spécifié. Pour des raisons pratiques, le chemin d’accès complet du fichier est retourné à la fin du script.

Les API de génération d’images sont fournies avec un filtre de modération du contenu. Si le service reconnaît votre invite comme étant du contenu nuisible, il ne génère pas d’image. Pour plus d’informations, consultez l’article Filtrage du contenu.

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Étapes suivantes