Compartir a través de


Inicio rápido: Generación de imágenes con Azure OpenAI Service

Nota:

La API de generación de imágenes crea una imagen a partir de un mensaje de texto. No edita ni crea variaciones a partir de imágenes existentes.

Use esta guía para empezar a generar imágenes con Azure OpenAI en su explorador con Azure AI Foundry.

Requisitos previos

Ir a Azure AI Foundry

Vaya a Azure AI Foundry e inicie sesión con las credenciales asociadas al recurso de Azure OpenAI. Durante o después del flujo de trabajo de inicio de sesión, seleccione el directorio, la suscripción de Azure y el recurso de Azure OpenAI adecuados.

En la página de aterrizaje de Azure AI Foundry, cree o seleccione un nuevo proyecto. Vaya a la página Modelos y puntos de conexión de la barra de navegación izquierda. Seleccione Implementar modelo y elija uno de los modelos DALL-E de la lista. Complete el proceso de implementación.

En la página del modelo, seleccione Abrir en el área de juegos.

Prueba de la generación de imágenes

Comience a explorar las capacidades de Azure OpenAI con un enfoque sin código a través del Images playground. Ingrese su indicador de imagen en el cuadro de texto y seleccione Generar. Cuando la imagen generada por IA esté lista, aparecerá en la página.

Nota:

Las API de generación de imágenes incluyen un filtro de moderación de contenido. Si Azure OpenAI reconoce la solicitud como contenido dañino, no devolverá una imagen generada. Para obtener más información, consulte Filtrado de contenido.

En el área de juegos de imágenes, también puede ver ejemplos de código de Python y cURL, que se rellenan previamente según la configuración. Seleccione Ver código cerca de la parte superior de la página. Puede usar este código para escribir una aplicación que complete la misma tarea.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.

Pasos siguientes

Use esta guía para empezar a llamar a las API de REST de generación de imágenes de Azure OpenAI Service mediante Python.

Requisitos previos

Configuración

Obtener clave y punto de conexión

Para llamar correctamente a las API de Azure OpenAI, necesita la siguiente información sobre el recurso de Azure OpenAI:

Variable Nombre Valor
Punto de conexión api_base El valor del punto de conexión se encuentra en Claves y punto de conexión del recurso en Azure Portal. También puede encontrar el punto de conexión a través de la página Implementaciones del portal de Azure AI Foundry. Ejemplo de punto de conexión: https://docs-test-001.openai.azure.com/.
Clave api_key El valor de clave también se encuentra en Claves y punto de conexión del recurso en Azure Portal. Azure genera dos claves para el recurso. Puede usar cualquiera de los valores.

Vaya al recurso en Azure Portal. En el panel de navegación, seleccione Claves y punto de conexión en Administración de recursos. Copie el valor de Punto de conexión y un valor de clave de acceso. Puede usar el valor KEY 1 o KEY 2. Tener siempre dos claves permite rotar y regenerar las claves de forma segura sin provocar una interrupción del servicio.

Captura de pantalla que muestra la página Claves y punto de conexión de un recurso de Azure OpenAI en Azure Portal

Variables de entorno

Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.

Importante

Se recomienda la autenticación de Microsoft Entra ID con identidades administradas para los recursos de Azure para evitar almacenar credenciales con sus aplicaciones que se ejecutan en la nube.

Use las claves de API con precaución. No incluya la clave de API directamente en el código ni la exponga nunca públicamente. Si usa claves de API, almacénelas de forma segura en Azure Key Vault, rote las claves periódicamente y restrinja el acceso a Azure Key Vault mediante el rol basado en el control de acceso basado y las restricciones de acceso de red. Para más información sobre cómo utilizar las claves de API de forma segura en sus aplicaciones, consulte Claves de API con Azure Key Vault.

Para más información sobre la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Creación de una nueva aplicación de Python

Cree un nuevo archivo de Python denominado quickstart.py. Abra el nuevo archivo en el editor o IDE que prefiera.

  1. Reemplace el contenido de quickstart.py por el siguiente código. Cambie el valor de prompt a su texto preferido.

    También debe reemplazar <dalle3> en la URL por el nombre de implementación que ha elegido al implementar el modelo DALL-E 3. Si escribe el nombre del modelo, se producirá un error a menos que elija un nombre de implementación idéntico al nombre del modelo subyacente. Si se produce un error, compruebe de nuevo para asegurarse de que / no esté duplicado en la separación entre el punto de conexión y /openai/deployments.

    import requests
    import time
    import os
    api_base = os.environ['AZURE_OPENAI_ENDPOINT']  # Enter your endpoint here
    api_key = os.environ['AZURE_OPENAI_API_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)
    

    El script realiza una llamada API de generación de imágenes sincrónicas.

    Importante

    Recuerde quitar la clave del código cuando haya terminad y nunca la haga pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas. Para obtener más información, consulte Acerca de Azure Key Vault.

  2. Ejecute la aplicación con el comando python:

    python quickstart.py
    

    Espere unos instantes para obtener la respuesta.

Salida

La salida de una llamada API de generación de imágenes correcta tiene un aspecto similar al siguiente ejemplo. El campo url contiene una dirección URL donde puede descargar la imagen generada. La dirección URL permanece activa durante 24 horas.

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

Las API de generación de imágenes incluyen un filtro de moderación de contenido. Si el servicio reconoce la solicitud como contenido dañino, no genera una imagen. Para obtener más información, consulte Filtrado de contenido. Para obtener ejemplos de respuestas de error, consulte la guía paso a paso de DALL-E.

El sistema devuelve un estado de operación de Failed y el valor error.code en el mensaje se establecerá en contentFilter. Este es un ejemplo:

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

También es posible que se filtre la propia imagen generada. En este caso, el mensaje de error se establece en Generated image was filtered as a result of our safety system.. Este es un ejemplo:

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

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.

Pasos siguientes

Use esta guía para empezar a generar imágenes con el SDK de Azure OpenAI para Python.

Código fuente de la biblioteca | Paquete | Ejemplos

Requisitos previos

Configuración

Recupera la clave y el punto de conexión

Para llamar correctamente a las API de Azure OpenAI, necesita la siguiente información sobre el recurso de Azure OpenAI:

Variable Nombre Valor
Punto de conexión api_base El valor del punto de conexión se encuentra en Claves y punto de conexión del recurso en Azure Portal. También puede encontrar el punto de conexión a través de la página Implementaciones del portal de Azure AI Foundry. Un punto de conexión de ejemplo es: https://docs-test-001.openai.azure.com/.
Clave api_key El valor de clave también se encuentra en Claves y punto de conexión del recurso en Azure Portal. Azure genera dos claves para el recurso. Puede usar cualquiera de los valores.

Vaya a su recurso en el portal de Azure. En el panel de navegación, seleccione Claves y punto de conexión en Administración de recursos. Copie el valor de Punto de conexión y un valor de clave de acceso. Puede usar el valor KEY 1 o KEY 2. Tener siempre dos claves permite rotar y regenerar las claves de forma segura sin provocar una interrupción del servicio.

Captura de pantalla que muestra la página Claves y punto de conexión de un recurso de Azure OpenAI en Azure Portal

Variables de entorno

Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.

Importante

Se recomienda la autenticación de Microsoft Entra ID con identidades administradas para los recursos de Azure para evitar almacenar credenciales con sus aplicaciones que se ejecutan en la nube.

Use las claves de API con precaución. No incluya la clave de API directamente en el código ni la exponga nunca públicamente. Si usa claves de API, almacénelas de forma segura en Azure Key Vault, rote las claves periódicamente y restrinja el acceso a Azure Key Vault mediante el rol basado en el control de acceso basado y las restricciones de acceso de red. Para más información sobre cómo utilizar las claves de API de forma segura en sus aplicaciones, consulte Claves de API con Azure Key Vault.

Para más información sobre la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Instalación del SDK para Python

Abra un símbolo del sistema y vaya a la carpeta del proyecto. Instale el SDK de Python de OpenAI mediante el siguiente comando:

pip install openai

Instale también las bibliotecas siguientes:

pip install requests
pip install pillow 

Generación de imágenes con DALL-E

Cree un nuevo archivo de Python, quickstart.py. Ábrelo en tu editor o IDE preferido.

Reemplace el contenido de quickstart.py por el siguiente código.

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. Escriba la dirección URL del punto de conexión y la clave en los campos adecuados.
  2. Cambie el valor de prompt a su texto preferido.
  3. Cambie el valor de model por el nombre del modelo DALL-E 3 implementado.

Importante

Recuerde quitar la clave del código cuando haya terminad y nunca la haga pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas. Para obtener más información, consulte Acerca de Azure Key Vault.

Ejecute la aplicación con el comando python:

python quickstart.py

Espere unos instantes para obtener la respuesta.

Salida

Azure OpenAI almacena la imagen de salida en el archivo generated_image.png en el directorio especificado. El script también muestra la imagen en el visor de imágenes predeterminado.

Las API de generación de imágenes incluyen un filtro de moderación de contenido. Si el servicio reconoce la solicitud como contenido dañino, no genera una imagen. Para obtener más información, consulte Filtrado de contenido.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.

Pasos siguientes

Use esta guía para empezar a generar imágenes con el SDK de Azure OpenAI para C#.

Código fuente de la biblioteca | Paquete (NuGet) | Ejemplos

Requisitos previos

Requisitos previos de Microsoft Entra ID

Para la autenticación sin clave recomendada con Microsoft Entra ID, debe hacer lo siguiente:

  • Instale la CLI de Azure utilizada para la autenticación sin clave con Microsoft Entra ID.
  • Asignar el rol Cognitive Services User a su cuenta de usuario. Puede asignar roles en Azure Portal en Control de acceso (IAM)>Agregar asignación de roles.

Configurar

  1. Cree una nueva carpeta vision-quickstart y vaya a la carpeta quickstart mediante el siguiente comando:

    mkdir vision-quickstart && cd vision-quickstart
    
  2. Cree una nueva aplicación de consola con el siguiente comando:

    dotnet new console
    
  3. Instale la biblioteca cliente de OpenAI .NET con el comando dotnet add package:

    dotnet add package Azure.AI.OpenAI --version 1.0.0-beta.6
    
  4. Para la autenticación sin clave recomendada con Microsoft Entra ID, instale el paquete de Azure.Identity con:

    dotnet add package Azure.Identity
    
  5. Para la autenticación sin clave recomendada con Microsoft Entra ID, inicie sesión en Azure con el siguiente comando:

    az login
    

Recuperación de información de recursos

Debe recuperar la siguiente información para autenticar la aplicación con el recurso de Azure OpenAI:

Nombre de la variable Valor
AZURE_OPENAI_ENDPOINT Este valor se puede encontrar en la sección Claves y punto de conexión al examinar su recurso en Azure Portal.
AZURE_OPENAI_DEPLOYMENT_NAME Este valor corresponderá al nombre personalizado que eligió para la implementación al implementar un modelo. Este valor se puede encontrar en Administración de recursos>Implementaciones de modelos en Azure Portal.
OPENAI_API_VERSION Obtenga más información sobre las versiones de API.

Puede cambiar la versión en el código o usar una variable de entorno.

Obtenga más información sobre la autenticación sin claves y la configuración de variables de entorno.

Ejecución del inicio rápido

En este inicio rápido, el código de ejemplo usa Microsoft Entra ID para la autenticación sin clave recomendada. Si prefiere usar una clave de API, puede reemplazar el DefaultAzureCredential objeto por un AzureKeyCredential objeto .

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

Para ejecutar el inicio rápido, siga estos pasos:

  1. Reemplace el contenido de Program.cs por el código siguiente y actualice los valores de marcador de posición por los suyos propios.

    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. Ejecute la aplicación mediante el comando dotnet run o el botón Ejecutar situado en la parte superior de Visual Studio:

    dotnet run
    

Salida

La dirección URL de la imagen generada se imprime en la consola.

<SAS URL>

Nota:

Las API de generación de imágenes incluyen un filtro de moderación de contenido. Si el servicio reconoce la solicitud como contenido dañino, no devolverá una imagen generada. Para más información, consulte artículo de filtro de contenido.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso. Antes de eliminar el recurso, primero deberá eliminar los modelos implementados.

Pasos siguientes

Use esta guía para empezar a generar imágenes con el SDK de Azure OpenAI para Java.

Código fuente de la biblioteca | Artefacto (Maven) | Ejemplos

Requisitos previos

Requisitos previos de Microsoft Entra ID

Para la autenticación sin clave recomendada con Microsoft Entra ID, debe hacer lo siguiente:

  • Instale la CLI de Azure utilizada para la autenticación sin clave con Microsoft Entra ID.
  • Asignar el rol Cognitive Services User a su cuenta de usuario. Puede asignar roles en Azure Portal en Control de acceso (IAM)>Agregar asignación de roles.

Configurar

  1. Cree una nueva carpeta vision-quickstart y vaya a la carpeta de inicio rápido con el siguiente comando:

    mkdir vision-quickstart && cd vision-quickstart
    
  2. Instalación de Apache Maven. A continuación, ejecute mvn -v para confirmar que la instalación se ha realizado correctamente.

  3. Cree un nuevo archivo pom.xml en la raíz del proyecto y copie el siguiente código en él:

    <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. Instale el SDK y las dependencias de Azure OpenAI.

    mvn clean dependency:copy-dependencies
    
  5. Para la autenticación sin clave recomendada con Microsoft Entra ID, inicie sesión en Azure con el siguiente comando:

    az login
    

Recuperación de información de recursos

Debe recuperar la siguiente información para autenticar la aplicación con el recurso de Azure OpenAI:

Nombre de la variable Valor
AZURE_OPENAI_ENDPOINT Este valor se puede encontrar en la sección Claves y punto de conexión al examinar su recurso en Azure Portal.
AZURE_OPENAI_DEPLOYMENT_NAME Este valor corresponderá al nombre personalizado que eligió para la implementación al implementar un modelo. Este valor se puede encontrar en Administración de recursos>Implementaciones de modelos en Azure Portal.
OPENAI_API_VERSION Obtenga más información sobre las versiones de API.

Puede cambiar la versión en el código o usar una variable de entorno.

Obtenga más información sobre la autenticación sin claves y la configuración de variables de entorno.

Ejecución de la aplicación

En este inicio rápido, el código de ejemplo usa Microsoft Entra ID para la autenticación sin clave recomendada. Si prefiere usar una clave de API, puede reemplazar el DefaultAzureCredential objeto por un AzureKeyCredential objeto .

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

Siga estos pasos para crear una aplicación de consola para el reconocimiento de voz.

  1. Cree un nuevo archivo denominado Quickstart.java en el mismo directorio raíz del proyecto.

  2. Copie el código siguiente en 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. Ejecute la nueva aplicación de consola para generar una imagen:

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

Salida

La dirección URL de la imagen generada se imprime en la consola.

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

Nota:

Las API de generación de imágenes incluyen un filtro de moderación de contenido. Si el servicio reconoce la solicitud como contenido dañino, no devolverá una imagen generada. Para más información, consulte artículo de filtro de contenido.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso. Antes de eliminar el recurso, primero deberá eliminar los modelos implementados.

Pasos siguientes

Use esta guía para empezar a generar imágenes con el SDK de Azure OpenAI para JavaScript.

Documentación de referencia | Código fuente | Paquete (npm) | Ejemplos

Requisitos previos

Requisitos previos de Microsoft Entra ID

Para la autenticación sin clave recomendada con Microsoft Entra ID, debe hacer lo siguiente:

  • Instale la CLI de Azure utilizada para la autenticación sin clave con Microsoft Entra ID.
  • Asignar el rol Cognitive Services User a su cuenta de usuario. Puede asignar roles en Azure Portal en Control de acceso (IAM)>Agregar asignación de roles.

Configurar

  1. Cree una nueva carpeta image-quickstart y vaya a la carpeta quickstart con el siguiente comando:

    mkdir image-quickstart && cd image-quickstart
    
  2. Cree el package.json con el comando siguiente:

    npm init -y
    
  3. Instale la biblioteca cliente de OpenAI para JavaScript con:

    npm install openai
    
  4. Para la autenticación sin contraseña recomendada:

    npm install @azure/identity
    

Recuperación de información de recursos

Debe recuperar la siguiente información para autenticar la aplicación con el recurso de Azure OpenAI:

Nombre de la variable Valor
AZURE_OPENAI_ENDPOINT Este valor se puede encontrar en la sección Claves y punto de conexión al examinar su recurso en Azure Portal.
AZURE_OPENAI_DEPLOYMENT_NAME Este valor corresponderá al nombre personalizado que eligió para la implementación al implementar un modelo. Este valor se puede encontrar en Administración de recursos>Implementaciones de modelos en Azure Portal.
OPENAI_API_VERSION Obtenga más información sobre las versiones de API.

Puede cambiar la versión en el código o usar una variable de entorno.

Obtenga más información sobre la autenticación sin claves y la configuración de variables de entorno.

Precaución

Para usar la autenticación sin clave recomendada con el SDK, asegúrese de que la variable de entorno AZURE_OPENAI_API_KEY no esté establecida.

Generación de imágenes con DALL-E

  1. Cree el archivo index.js con el código siguiente:

    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. Inicie sesión en Azure con el siguiente comando:

    az login
    
  3. Ejecute el archivo JavaScript.

    node index.js
    

Salida

La dirección URL de la imagen generada se imprime en la consola.

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

Nota:

Las API de generación de imágenes incluyen un filtro de moderación de contenido. Si el servicio reconoce la solicitud como contenido dañino, no devolverá una imagen generada. Para más información, consulte artículo de filtro de contenido.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso. Antes de eliminar el recurso, primero deberá eliminar los modelos implementados.

Pasos siguientes

Use esta guía para empezar a generar imágenes con el SDK de Azure OpenAI para JavaScript.

Documentación de referencia | Código fuente | Paquete (npm) | Ejemplos

Requisitos previos

Requisitos previos de Microsoft Entra ID

Para la autenticación sin clave recomendada con Microsoft Entra ID, debe hacer lo siguiente:

  • Instale la CLI de Azure utilizada para la autenticación sin clave con Microsoft Entra ID.
  • Asignar el rol Cognitive Services User a su cuenta de usuario. Puede asignar roles en Azure Portal en Control de acceso (IAM)>Agregar asignación de roles.

Configurar

  1. Cree una nueva carpeta image-quickstart y vaya a la carpeta de inicio rápido con el siguiente comando:

    mkdir image-quickstart && cd image-quickstart
    
  2. Cree el package.json con el comando siguiente:

    npm init -y
    
  3. Actualice el package.json a ECMAScript con el siguiente comando:

    npm pkg set type=module
    
  4. Instale la biblioteca cliente de OpenAI para JavaScript con:

    npm install openai
    
  5. Para la autenticación sin contraseña recomendada:

    npm install @azure/identity
    

Recuperación de información de recursos

Debe recuperar la siguiente información para autenticar la aplicación con el recurso de Azure OpenAI:

Nombre de la variable Valor
AZURE_OPENAI_ENDPOINT Este valor se puede encontrar en la sección Claves y punto de conexión al examinar su recurso en Azure Portal.
AZURE_OPENAI_DEPLOYMENT_NAME Este valor corresponderá al nombre personalizado que eligió para la implementación al implementar un modelo. Este valor se puede encontrar en Administración de recursos>Implementaciones de modelos en Azure Portal.
OPENAI_API_VERSION Obtenga más información sobre las versiones de API.

Puede cambiar la versión en el código o usar una variable de entorno.

Obtenga más información sobre la autenticación sin claves y la configuración de variables de entorno.

Precaución

Para usar la autenticación sin clave recomendada con el SDK, asegúrese de que la variable de entorno AZURE_OPENAI_API_KEY no esté establecida.

Generación de imágenes con DALL-E

  1. Cree el archivo index.ts con el código siguiente:

    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. Cree el archivo tsconfig.json para transpilar el código TypeScript y copie el código siguiente para 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. Transpile de TypeScript a JavaScript.

    tsc
    
  4. Inicie sesión en Azure con el siguiente comando:

    az login
    
  5. Ejecute el código con el siguiente comando:

    node index.js
    

Salida

La dirección URL de la imagen generada se imprime en la consola.

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

Nota:

Las API de generación de imágenes incluyen un filtro de moderación de contenido. Si el servicio reconoce la solicitud como contenido dañino, no devolverá una imagen generada. Para más información, consulte artículo de filtro de contenido.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso. Antes de eliminar el recurso, primero deberá eliminar los modelos implementados.

Pasos siguientes

Use esta guía para empezar a generar imágenes con el SDK de Azure OpenAI para Go.

Código fuente de la biblioteca | Paquete | Ejemplos

Requisitos previos

Requisitos previos de Microsoft Entra ID

Para la autenticación sin clave recomendada con Microsoft Entra ID, debe hacer lo siguiente:

  • Instale la CLI de Azure utilizada para la autenticación sin clave con Microsoft Entra ID.
  • Asignar el rol Cognitive Services User a su cuenta de usuario. Puede asignar roles en Azure Portal en Control de acceso (IAM)>Agregar asignación de roles.

Configurar

  1. Cree una nueva carpeta dall-e-quickstart y vaya a la carpeta quickstart con el siguiente comando:

    mkdir dall-e-quickstart && cd dall-e-quickstart
    
  2. Para la autenticación sin clave recomendada con Microsoft Entra ID, inicie sesión en Azure con el siguiente comando:

    az login
    

Recuperación de información de recursos

Debe recuperar la siguiente información para autenticar la aplicación con el recurso de Azure OpenAI:

Nombre de la variable Valor
AZURE_OPENAI_ENDPOINT Este valor se puede encontrar en la sección Claves y punto de conexión al examinar su recurso en Azure Portal.
AZURE_OPENAI_DEPLOYMENT_NAME Este valor corresponderá al nombre personalizado que eligió para la implementación al implementar un modelo. Este valor se puede encontrar en Administración de recursos>Implementaciones de modelos en Azure Portal.
OPENAI_API_VERSION Obtenga más información sobre las versiones de API.

Puede cambiar la versión en el código o usar una variable de entorno.

Obtenga más información sobre la autenticación sin claves y la configuración de variables de entorno.

Ejecución del inicio rápido

En este inicio rápido, el código de ejemplo usa Microsoft Entra ID para la autenticación sin clave recomendada. Si prefiere usar una clave de API, puede reemplazar la NewDefaultAzureCredential implementación por NewKeyCredential.

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

Para ejecutar el ejemplo:

  1. Cree un archivo denominado quickstart.go. Copie el código siguiente en el archivo 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. Ejecute el siguiente comando para crear un nuevo módulo de Go:

     go mod init quickstart.go
    
  3. Ejecute go mod tidy para instalar las dependencias necesarias:

    go mod tidy
    
  4. Ejecute el siguiente comando para ejecutar el ejemplo:

     go run quickstart.go
    

Salida

La dirección URL de la imagen generada se imprime en la consola.

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

Nota:

Las API de generación de imágenes incluyen un filtro de moderación de contenido. Si el servicio reconoce la solicitud como contenido dañino, no devolverá una imagen generada. Para más información, consulte artículo de filtro de contenido.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.

Pasos siguientes

Use esta guía para empezar a llamar a las API de generación de imágenes del servicio OpenAI de Azure con PowerShell.

Requisitos previos

Requisitos previos de Microsoft Entra ID

Para la autenticación sin clave recomendada con Microsoft Entra ID, debe hacer lo siguiente:

  • Instale la CLI de Azure utilizada para la autenticación sin clave con Microsoft Entra ID.
  • Asignar el rol Cognitive Services User a su cuenta de usuario. Puede asignar roles en Azure Portal en Control de acceso (IAM)>Agregar asignación de roles.

Recuperación de información de recursos

Debe recuperar la siguiente información para autenticar la aplicación con el recurso de Azure OpenAI:

Nombre de la variable Valor
AZURE_OPENAI_ENDPOINT Este valor se puede encontrar en la sección Claves y punto de conexión al examinar su recurso en Azure Portal.
AZURE_OPENAI_DEPLOYMENT_NAME Este valor corresponderá al nombre personalizado que eligió para la implementación al implementar un modelo. Este valor se puede encontrar en Administración de recursos>Implementaciones de modelos en Azure Portal.
OPENAI_API_VERSION Obtenga más información sobre las versiones de API.

Puede cambiar la versión en el código o usar una variable de entorno.

Obtenga más información sobre la autenticación sin claves y la configuración de variables de entorno.

Generar imágenes

  1. Para la autenticación sin clave recomendada con Microsoft Entra ID, inicie sesión en Azure con el siguiente comando:

    az login
    
  2. Cree un nuevo archivo de PowerShell denominado quickstart.ps1. A continuación, ábralo en tu editor o IDE preferido.

  3. Reemplace el contenido de quickstart.ps1 por el código siguiente. Escriba la dirección URL del punto de conexión y la clave en los campos adecuados. Cambie el valor de prompt a su texto preferido.

     # 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
    

    Importante

    En entornos de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como PowerShell Secret Management con Azure Key Vault. Para obtener más información sobre la seguridad de las credenciales, consulte el artículo Seguridad de servicios de Azure AI.

  4. Ejecute el script con PowerShell:

    ./quickstart.ps1
    

    El script estará en bucle hasta que la imagen generada esté lista.

Salida

PowerShell solicita la imagen de Azure OpenAI y almacena la imagen de salida en el archivo generated_image.png en el directorio especificado. Para mayor comodidad, se devuelve la ruta de acceso completa del archivo al final del script.

Las API de generación de imágenes incluyen un filtro de moderación de contenido. Si el servicio reconoce la solicitud como contenido dañino, no genera una imagen. Para obtener más información, consulte Filtrado de contenido.

Limpieza de recursos

Si quiere limpiar y quitar un recurso de Azure OpenAI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.

Pasos siguientes