Guia de início rápido: gerar imagens com o Serviço OpenAI do Azure

Nota

A API de geração de imagem cria uma imagem a partir de um prompt de texto. Não edita imagens existentes nem cria variações.

Use este guia para começar a gerar imagens com o Azure OpenAI em seu navegador.

Pré-requisitos

Nota

Atualmente, você deve enviar um aplicativo para acessar o Serviço OpenAI do Azure. Para solicitar o acesso, preencha este formulário. Se precisar de assistência, abra um problema neste repositório para entrar em contato com a Microsoft.

Ir para o Azure OpenAI Studio

Navegue até Azure OpenAI Studio e entre com as credenciais associadas ao seu recurso do Azure OpenAI. Durante ou após o fluxo de trabalho de entrada, selecione o diretório apropriado, a assinatura do Azure e o recurso do Azure OpenAI.

Na página inicial do Azure OpenAI Studio, selecione DALL· E playground (Preview) para usar as APIs de geração de imagem. Selecione Configurações na parte superior da página e confirme se a lista suspensa Implantação tem sua implantação DALL-E 3 selecionada.

Experimente a geração de imagens

Comece a explorar os recursos do Azure OpenAI com uma abordagem sem código por meio do DALL· E playground (Pré-visualização). Digite seu prompt de imagem na caixa de texto e selecione Gerar. Quando a imagem gerada por IA estiver pronta, ela aparecerá na página.

Nota

As APIs de geração de imagem vêm com um filtro de moderação de conteúdo. Se o Azure OpenAI reconhecer seu prompt como conteúdo prejudicial, ele não retornará uma imagem gerada. Para obter mais informações, consulte Filtragem de conteúdo.

Captura de ecrã da página inicial do Azure OpenAI Studio a mostrar o parque infantil DALL-E (Pré-visualização) com imagens geradas de ursos polares.

No DALL· E playground (Preview), você também pode visualizar exemplos de código Python e cURL, que são pré-preenchidos de acordo com suas configurações. Selecione Ver código na parte superior da página. Você pode usar esse código para escrever um aplicativo que conclui a mesma tarefa.

Clean up resources (Limpar recursos)

Se quiser limpar e remover um recurso do Azure OpenAI, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele.

Próximos passos

Use este guia para começar a chamar as APIs REST de geração de imagem do Serviço OpenAI do Azure usando Python.

Pré-requisitos

Nota

Atualmente, você deve enviar um aplicativo para acessar o Serviço OpenAI do Azure. Para solicitar o acesso, preencha este formulário. Se precisar de assistência, abra um problema neste repositório para entrar em contato com a Microsoft.

Recuperar chave e ponto de extremidade

Para chamar com êxito as APIs do Azure OpenAI, você precisa das seguintes informações sobre seu recurso do Azure OpenAI:

Variável Nome Valor
Ponto final api_base O valor do ponto de extremidade está localizado em Chaves e Ponto de Extremidade para seu recurso no portal do Azure. Em alternativa, pode encontrar o valor em Azure OpenAI Studio>Ambiente de Demonstração>Vista de Código. Um exemplo de ponto de extremidade é: https://docs-test-001.openai.azure.com/.
Chave api_key O valor da chave também está localizado em Chaves e Ponto de Extremidade para seu recurso no portal do Azure. O Azure gera duas chaves para o seu recurso. Você pode usar qualquer um dos valores.

Vá para o seu recurso no portal do Azure. No painel de navegação, selecione Chaves e Ponto Final em Gerenciamento de Recursos. Copie o valor Endpoint e um valor de chave de acesso. Você pode usar o valor KEY 1 ou KEY 2 . Ter sempre duas chaves permite-lhe rodar e regenerar chaves de forma segura sem causar uma interrupção do serviço.

Captura de tela que mostra a página Chaves e Ponto de Extremidade de um recurso do Azure OpenAI no portal do Azure.

Criar uma aplicação Python nova

Crie um novo arquivo Python chamado quickstart.py. Abra o novo arquivo em seu editor ou IDE preferido.

  1. Substitua o conteúdo do quickstart.py pelo código a seguir. Insira o URL e a chave do ponto final nos campos apropriados. Altere o valor de prompt para o seu texto preferido.

    Você também precisa substituir <dalle3> na URL pelo nome de implantação escolhido quando implantou o modelo DALL-E 3. Inserir o nome do modelo resultará em um erro, a menos que você escolha um nome de implantação idêntico ao nome do modelo subjacente. Se você encontrar um erro, verifique novamente para se certificar de que você não tem uma duplicação da separação entre o ponto de extremidade e /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)
    

    O script faz uma chamada de API de geração de imagem síncrona.

    Importante

    Lembre-se de remover a chave do seu código quando terminar e nunca publique a chave publicamente. Para produção, use uma maneira segura de armazenar e acessar suas credenciais. Para obter mais informações, consulte Azure Key Vault.

  2. Execute o aplicativo com o python comando:

    python quickstart.py
    

    Aguarde alguns instantes para obter a resposta.

Saída

A saída de uma chamada de API de geração de imagem bem-sucedida se parece com o exemplo a seguir. O url campo contém um URL onde pode descarregar a imagem gerada. O URL permanece ativo por 24 horas.

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

As APIs de geração de imagem vêm com um filtro de moderação de conteúdo. Se o serviço reconhecer seu prompt como conteúdo prejudicial, ele não gerará uma imagem. Para obter mais informações, consulte Filtragem de conteúdo. Para obter exemplos de respostas de erro, consulte o guia de instruções do DALL-E.

O sistema retorna um status de operação de Failed e o error.code valor na mensagem é definido como contentFilter. Eis um exemplo:

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

Também é possível que a própria imagem gerada seja filtrada. Nesse caso, a mensagem de erro é definida como Generated image was filtered as a result of our safety system.. Eis um exemplo:

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

Clean up resources (Limpar recursos)

Se quiser limpar e remover um recurso do Azure OpenAI, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele.

Próximos passos

Use este guia para começar a gerar imagens com o SDK do Azure OpenAI para Python.

Exemplos de pacotes | de código-fonte | da biblioteca

Pré-requisitos

Nota

Atualmente, você deve enviar um aplicativo para acessar o Serviço OpenAI do Azure. Para solicitar o acesso, preencha este formulário. Se precisar de assistência, abra um problema neste repositório para entrar em contato com a Microsoft.

Configurar

Recuperar chave e ponto de extremidade

Para chamar com êxito as APIs do Azure OpenAI, você precisa das seguintes informações sobre seu recurso do Azure OpenAI:

Variável Nome Valor
Ponto final api_base O valor do ponto de extremidade está localizado em Chaves e Ponto de Extremidade para seu recurso no portal do Azure. Em alternativa, pode encontrar o valor em Azure OpenAI Studio>Ambiente de Demonstração>Vista de Código. Um exemplo de ponto de extremidade é: https://docs-test-001.openai.azure.com/.
Chave api_key O valor da chave também está localizado em Chaves e Ponto de Extremidade para seu recurso no portal do Azure. O Azure gera duas chaves para o seu recurso. Você pode usar qualquer um dos valores.

Vá para o seu recurso no portal do Azure. No painel de navegação, selecione Chaves e Ponto Final em Gerenciamento de Recursos. Copie o valor Endpoint e um valor de chave de acesso. Você pode usar o valor KEY 1 ou KEY 2 . Ter sempre duas chaves permite-lhe rodar e regenerar chaves de forma segura sem causar uma interrupção do serviço.

Captura de tela que mostra a página Chaves e Ponto de Extremidade de um recurso do Azure OpenAI no portal do Azure.

Crie e atribua variáveis de ambiente persistentes para sua chave e endpoint.

Variáveis de ambiente

Crie e atribua variáveis de ambiente persistentes para sua chave e endpoint.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Criar uma aplicação Python nova

Abra um prompt de comando e navegue até a pasta do projeto. Crie um novo arquivo python, quickstart.py.

Instalar o SDK do Python

Instale o OpenAI Python SDK usando o seguinte comando:

pip install openai

Instale também as seguintes bibliotecas:

pip install requests
pip install pillow 

Gerar imagens com DALL-E

Abra _quickstart.py no seu editor ou IDE preferido.

Substitua o conteúdo do quickstart.py pelo código a seguir.

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. Insira o URL e a chave do ponto final nos campos apropriados.
  2. Altere o valor de prompt para o seu texto preferido.
  3. Altere o valor de model para o nome do modelo DALL-E 3 implantado.

Importante

Lembre-se de remover a chave do seu código quando terminar e nunca publique a chave publicamente. Para produção, use uma maneira segura de armazenar e acessar suas credenciais. Para obter mais informações, consulte Azure Key Vault.

Execute o aplicativo com o python comando:

python quickstart.py

Aguarde alguns instantes para obter a resposta.

Saída

O Azure OpenAI armazena a imagem de saída no arquivo generated_image.png no diretório especificado. O script também exibe a imagem no visualizador de imagens padrão.

As APIs de geração de imagem vêm com um filtro de moderação de conteúdo. Se o serviço reconhecer seu prompt como conteúdo prejudicial, ele não gerará uma imagem. Para obter mais informações, consulte Filtragem de conteúdo.

Clean up resources (Limpar recursos)

Se quiser limpar e remover um recurso do Azure OpenAI, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele.

Próximos passos

Use este guia para começar a gerar imagens com o SDK do Azure OpenAI para C#.

Pacote de código-fonte da biblioteca (NuGet) | Exemplos |

Pré-requisitos

Nota

Atualmente, você deve enviar um aplicativo para acessar o Serviço OpenAI do Azure. Para solicitar o acesso, preencha este formulário. Se precisar de assistência, abra um problema neste repositório para entrar em contato com a Microsoft.

Configurar

Recuperar chave e ponto de extremidade

Para fazer uma chamada com êxito no Azure OpenAI, você precisa de um ponto de extremidade e uma chave.

Nome da variável Valor
ENDPOINT Este valor pode ser encontrado na secção Chaves e Ponto Final ao examinar o recurso no portal do Azure. Como alternativa, você pode encontrar o valor na Exibição de Código do Azure OpenAI Studio>Playground.> Um exemplo de ponto de extremidade é: https://docs-test-001.openai.azure.com/.
API-KEY Este valor pode ser encontrado na secção Chaves e Ponto Final ao examinar o recurso no portal do Azure. Pode utilizar KEY1 ou KEY2.

Vá para o seu recurso no portal do Azure. A seção Chaves & Ponto Final pode ser encontrada na seção Gerenciamento de Recursos. Copie seu endpoint e sua chave de acesso, pois você precisará de ambos para autenticar suas chamadas de API. Pode utilizar KEY1 ou KEY2. Ter sempre duas chaves permite-lhe rodar e regenerar chaves de forma segura sem causar uma interrupção do serviço.

Captura de ecrã da IU de descrição geral de um recurso OpenAI do Azure no portal do Azure com a localização do ponto de extremidade e das chaves de acesso em vermelho.

Variáveis de ambiente

Crie e atribua variáveis de ambiente persistentes para sua chave e endpoint.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Criar uma nova aplicação .NET Core

Em uma janela de console (como cmd, PowerShell ou Bash), use o dotnet new comando para criar um novo aplicativo de console com o nome azure-openai-quickstart. Este comando cria um projeto "Hello World" simples com um único arquivo de origem C#: Program.cs.

dotnet new console -n azure-openai-quickstart

Altere seu diretório para a pasta do aplicativo recém-criada. Você pode criar o aplicativo com:

dotnet build

A saída da compilação não deve conter avisos ou erros.

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

Instale o OpenAI .NET SDK

Instale a biblioteca de cliente com:

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

Gerar imagens com DALL-E

No diretório do projeto, abra o arquivo program.cs e substitua pelo seguinte código:

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);
        }
    }
}

Crie e execute o aplicativo a partir do diretório do aplicativo com estes comandos:

dotnet build
dotnet run

Saída

O URL da imagem gerada é impresso no 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

Nota

As APIs de geração de imagem vêm com um filtro de moderação de conteúdo. Se o serviço reconhecer seu prompt como conteúdo prejudicial, ele não retornará uma imagem gerada. Para obter mais informações, consulte o artigo sobre filtro de conteúdo.

Clean up resources (Limpar recursos)

Se quiser limpar e remover um recurso do Azure OpenAI, você pode excluir o recurso. Antes de excluir o recurso, você deve primeiro excluir todos os modelos implantados.

Próximos passos

Use este guia para começar a gerar imagens com o SDK do Azure OpenAI para Java.

Código fonte | da biblioteca Artifact (Maven) | Samples

Pré-requisitos

  • Uma assinatura do Azure - Crie uma gratuitamente
  • Acesso concedido ao serviço Azure OpenAI na assinatura desejada do Azure. Atualmente, o acesso a este serviço é concedido apenas por pedido. Você pode solicitar acesso ao Serviço OpenAI do Azure preenchendo o formulário em https://aka.ms/oai/access.

Nota

Atualmente, você deve enviar um aplicativo para acessar o Serviço OpenAI do Azure. Para solicitar o acesso, preencha este formulário. Se precisar de assistência, abra um problema neste repositório para entrar em contato com a Microsoft.

Configurar

Recuperar chave e ponto de extremidade

Para fazer uma chamada com êxito no Azure OpenAI, você precisa de um ponto de extremidade e uma chave.

Nome da variável Valor
ENDPOINT Este valor pode ser encontrado na secção Chaves e Ponto Final ao examinar o recurso no portal do Azure. Como alternativa, você pode encontrar o valor na Exibição de Código do Azure OpenAI Studio>Playground.> Um exemplo de ponto de extremidade é: https://docs-test-001.openai.azure.com/.
API-KEY Este valor pode ser encontrado na secção Chaves e Ponto Final ao examinar o recurso no portal do Azure. Pode utilizar KEY1 ou KEY2.

Vá para o seu recurso no portal do Azure. A seção Chaves & Ponto Final pode ser encontrada na seção Gerenciamento de Recursos. Copie seu endpoint e sua chave de acesso, pois você precisará de ambos para autenticar suas chamadas de API. Pode utilizar KEY1 ou KEY2. Ter sempre duas chaves permite-lhe rodar e regenerar chaves de forma segura sem causar uma interrupção do serviço.

Captura de ecrã da IU de descrição geral de um recurso OpenAI do Azure no portal do Azure com a localização do ponto de extremidade e das chaves de acesso em vermelho.

Variáveis de ambiente

Crie e atribua variáveis de ambiente persistentes para sua chave e endpoint.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Criar uma nova aplicação Java

Crie um novo projeto Gradle.

Numa janela de consola (como cmd, PowerShell ou Bash), crie um novo diretório para a sua aplicação e navegue para a mesma.

mkdir myapp && cd myapp

Execute o comando a gradle init partir do seu diretório de trabalho. Este comando criará arquivos de compilação essenciais para o Gradle, incluindo build.gradle.kts, que é usado em tempo de execução para criar e configurar seu aplicativo.

gradle init --type basic

Quando solicitado a escolher uma DSL, selecione Kotlin.

Instalar o Java SDK

Este guia de início rápido usa o gerenciador de dependência do Gradle. Você pode encontrar a biblioteca do cliente e informações para outros gerenciadores de dependência no Maven Central Repository.

Localize build.gradle.kts e abra-o com o seu IDE ou editor de texto preferido. Em seguida, copie na seguinte configuração de compilação. Esta configuração define o projeto como uma aplicação Java cujo ponto de entrada é a classe OpenAIQuickstart. Ele importa a biblioteca do 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")
}

Gerar imagens com DALL-E

  1. Crie um arquivo Java.

    No diretório de trabalho, execute o seguinte comando para criar uma pasta de origem do projeto:

    mkdir -p src/main/java
    

    Navegue até a nova pasta e crie um arquivo chamado OpenAIQuickstart.java.

  2. Abra OpenAIQuickstart.java em seu editor ou IDE preferido e cole no código a seguir.

    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. Navegue de volta para a pasta raiz do projeto e crie o aplicativo com:

    gradle build
    

    Em seguida, execute-o com o gradle run comando:

    gradle run
    

Saída

O URL da imagem gerada é impresso no 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.

Nota

As APIs de geração de imagem vêm com um filtro de moderação de conteúdo. Se o serviço reconhecer seu prompt como conteúdo prejudicial, ele não retornará uma imagem gerada. Para obter mais informações, consulte o artigo sobre filtro de conteúdo.

Clean up resources (Limpar recursos)

Se quiser limpar e remover um recurso do Azure OpenAI, você pode excluir o recurso. Antes de excluir o recurso, você deve primeiro excluir todos os modelos implantados.

Próximos passos

  • Explore as APIs de geração de imagens com mais profundidade com o guia de instruções DALL-E.
  • Para obter mais exemplos, confira o repositório do GitHub de amostras do Azure OpenAI

Use este guia para começar a gerar imagens com o SDK do Azure OpenAI para JavaScript.

Pacote de código-fonte da biblioteca (npm) | Exemplos |

Pré-requisitos

Nota

Atualmente, você deve enviar um aplicativo para acessar o Serviço OpenAI do Azure. Para solicitar o acesso, preencha este formulário. Se precisar de assistência, abra um problema neste repositório para entrar em contato com a Microsoft.

Configurar

Recuperar chave e ponto de extremidade

Para fazer uma chamada com êxito no Azure OpenAI, você precisa de um ponto de extremidade e uma chave.

Nome da variável Valor
ENDPOINT Este valor pode ser encontrado na secção Chaves e Ponto Final ao examinar o recurso no portal do Azure. Como alternativa, você pode encontrar o valor na Exibição de Código do Azure OpenAI Studio>Playground.> Um exemplo de ponto de extremidade é: https://docs-test-001.openai.azure.com/.
API-KEY Este valor pode ser encontrado na secção Chaves e Ponto Final ao examinar o recurso no portal do Azure. Pode utilizar KEY1 ou KEY2.

Vá para o seu recurso no portal do Azure. A seção Chaves & Ponto Final pode ser encontrada na seção Gerenciamento de Recursos. Copie seu endpoint e sua chave de acesso, pois você precisará de ambos para autenticar suas chamadas de API. Pode utilizar KEY1 ou KEY2. Ter sempre duas chaves permite-lhe rodar e regenerar chaves de forma segura sem causar uma interrupção do serviço.

Captura de ecrã da IU de descrição geral de um recurso OpenAI do Azure no portal do Azure com a localização do ponto de extremidade e das chaves de acesso em vermelho.

Variáveis de ambiente

Crie e atribua variáveis de ambiente persistentes para sua chave e endpoint.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Criar um aplicativo de nó

Numa janela de consola (como cmd, PowerShell ou Bash), crie um novo diretório para a sua aplicação e navegue para a mesma. Em seguida, execute o npm init comando para criar um aplicativo de nó com um arquivo package.json .

npm init

Instalar a biblioteca de cliente

Instale a biblioteca de cliente do Azure OpenAI para JavaScript com npm:

npm install @azure/openai

O arquivo de package.json do seu aplicativo será atualizado com as dependências.

Gerar imagens com DALL-E

Crie um novo arquivo chamado ImageGeneration.js e abra-o em seu editor de código preferido. Copie o seguinte código para o arquivo 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);
});

Execute o script com o seguinte comando:

node _ImageGeneration.js

Saída

O URL da imagem gerada é impresso no 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

Nota

As APIs de geração de imagem vêm com um filtro de moderação de conteúdo. Se o serviço reconhecer seu prompt como conteúdo prejudicial, ele não retornará uma imagem gerada. Para obter mais informações, consulte o artigo sobre filtro de conteúdo.

Clean up resources (Limpar recursos)

Se quiser limpar e remover um recurso do Azure OpenAI, você pode excluir o recurso. Antes de excluir o recurso, você deve primeiro excluir todos os modelos implantados.

Próximos passos

Use este guia para começar a gerar imagens com o SDK do Azure OpenAI para Go.

Exemplos de pacotes | de código-fonte | da biblioteca

Pré-requisitos

  • Uma assinatura do Azure - Crie uma gratuitamente
  • Acesso concedido ao DALL-E na assinatura desejada do Azure Atualmente, o acesso a este serviço é concedido apenas por aplicativo. Você pode solicitar acesso ao Azure OpenAI preenchendo o formulário em https://aka.ms/oai/access. Os clientes existentes do Azure OpenAI têm de voltar a submeter o formulário para obterem acesso ao DALL-E. Abra um problema neste repositório para entrar em contato conosco se tiver um problema.

Nota

Atualmente, você deve enviar um aplicativo para acessar o Serviço OpenAI do Azure. Para solicitar o acesso, preencha este formulário. Se precisar de assistência, abra um problema neste repositório para entrar em contato com a Microsoft.

Configurar

Recuperar chave e ponto de extremidade

Para fazer uma chamada com êxito no Azure OpenAI, você precisa de um ponto de extremidade e uma chave.

Nome da variável Valor
ENDPOINT Este valor pode ser encontrado na secção Chaves e Ponto Final ao examinar o recurso no portal do Azure. Como alternativa, você pode encontrar o valor na Exibição de Código do Azure OpenAI Studio>Playground.> Um exemplo de ponto de extremidade é: https://docs-test-001.openai.azure.com/.
API-KEY Este valor pode ser encontrado na secção Chaves e Ponto Final ao examinar o recurso no portal do Azure. Pode utilizar KEY1 ou KEY2.

Vá para o seu recurso no portal do Azure. A seção Chaves & Ponto Final pode ser encontrada na seção Gerenciamento de Recursos. Copie seu endpoint e sua chave de acesso, pois você precisará de ambos para autenticar suas chamadas de API. Pode utilizar KEY1 ou KEY2. Ter sempre duas chaves permite-lhe rodar e regenerar chaves de forma segura sem causar uma interrupção do serviço.

Captura de ecrã da IU de descrição geral de um recurso OpenAI do Azure no portal do Azure com a localização do ponto de extremidade e das chaves de acesso em vermelho.

Variáveis de ambiente

Crie e atribua variáveis de ambiente persistentes para sua chave e endpoint.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Criar um novo aplicativo Go

Abra o prompt de comando e navegue até a pasta do projeto. Crie um novo arquivo sample.go.

Instalar o SDK Go

Instale o OpenAI Go SDK usando o seguinte comando:

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

Ou, se você usar depo , dentro da execução do repositório:

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

Gerar imagens com DALL-E

Abra sample.go no seu editor de código preferido.

Adicione o seguinte código ao 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)
	}
}

Execute o script usando o go run comando:

go run sample.go

Saída

O URL da imagem gerada é impresso no 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

Nota

As APIs de geração de imagem vêm com um filtro de moderação de conteúdo. Se o serviço reconhecer seu prompt como conteúdo prejudicial, ele não retornará uma imagem gerada. Para obter mais informações, consulte o artigo sobre filtro de conteúdo.

Clean up resources (Limpar recursos)

Se quiser limpar e remover um recurso do Azure OpenAI, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele.

Próximos passos

Use este guia para começar a chamar as APIs de geração de imagem do Serviço OpenAI do Azure usando o PowerShell.

Nota

A API de geração de imagem cria uma imagem a partir de um prompt de texto. Não edita imagens existentes nem cria variações.

Pré-requisitos

Nota

Atualmente, você deve enviar um aplicativo para acessar o Serviço OpenAI do Azure. Para solicitar o acesso, preencha este formulário. Se precisar de assistência, abra um problema neste repositório para entrar em contato com a Microsoft.

Recuperar chave e ponto de extremidade

Para chamar com êxito as APIs do Azure OpenAI, você precisa das seguintes informações sobre seu recurso do Azure OpenAI:

Variável Nome Valor
Ponto final api_base O valor do ponto de extremidade está localizado em Chaves e Ponto de Extremidade para seu recurso no portal do Azure. Em alternativa, pode encontrar o valor em Azure OpenAI Studio>Ambiente de Demonstração>Vista de Código. Um exemplo de ponto de extremidade é: https://docs-test-001.openai.azure.com/.
Chave api_key O valor da chave também está localizado em Chaves e Ponto de Extremidade para seu recurso no portal do Azure. O Azure gera duas chaves para o seu recurso. Você pode usar qualquer um dos valores.

Vá para o seu recurso no portal do Azure. No painel de navegação, selecione Chaves e Ponto Final em Gerenciamento de Recursos. Copie o valor Endpoint e um valor de chave de acesso. Você pode usar o valor KEY 1 ou KEY 2 . Ter sempre duas chaves permite-lhe rodar e regenerar chaves de forma segura sem causar uma interrupção do serviço.

Captura de tela que mostra a página Chaves e Ponto de Extremidade de um recurso do Azure OpenAI no portal do Azure.

Crie e atribua variáveis de ambiente persistentes para sua chave e endpoint.

Variáveis de ambiente

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

Criar um novo script do PowerShell

  1. Crie um novo arquivo do PowerShell chamado quickstart.ps1. Abra o novo arquivo em seu editor ou IDE preferido.

  2. Substitua o conteúdo de quickstart.ps1 pelo código a seguir. Insira o URL e a chave do ponto final nos campos apropriados. Altere o valor de prompt para o seu texto preferido.

    # 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
    

    Importante

    Para produção, use uma maneira segura de armazenar e acessar suas credenciais, como o Gerenciamento Secreto do PowerShell com o Cofre de Chaves do Azure. Para obter mais informações sobre segurança de credenciais, consulte o artigo de segurança dos serviços de IA do Azure.

  3. Execute o script usando o PowerShell:

    ./quickstart.ps1
    

    O script é executado até que a imagem gerada esteja pronta.

Saída

O PowerShell solicita a imagem do Azure OpenAI e armazena a imagem de saída no arquivo generated_image.png no diretório especificado. Por conveniência, o caminho completo para o arquivo é retornado no final do script.

As APIs de geração de imagem vêm com um filtro de moderação de conteúdo. Se o serviço reconhecer seu prompt como conteúdo prejudicial, ele não gerará uma imagem. Para obter mais informações, consulte Filtragem de conteúdo.

Clean up resources (Limpar recursos)

Se quiser limpar e remover um recurso do Azure OpenAI, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele.

Próximos passos