Dela via


Snabbstart: Generera avbildningar med Azure OpenAI Service

Kommentar

API:et för bildgenerering skapar en bild från en textprompt. Den redigerar inte befintliga bilder eller skapar variationer.

Använd den här guiden för att komma igång med att generera avbildningar med Azure OpenAI i webbläsaren.

Förutsättningar

Kommentar

För närvarande måste du skicka ett program för att få åtkomst till Azure OpenAI Service. Om du vill ansöka om åtkomst fyller du i det här formuläret. Om du behöver hjälp öppnar du ett problem på den här lagringsplatsen för att kontakta Microsoft.

Gå till Azure OpenAI Studio

Bläddra till Azure OpenAI Studio och logga in med de autentiseringsuppgifter som är associerade med din Azure OpenAI-resurs. Under eller efter inloggningsarbetsflödet väljer du lämplig katalog, Azure-prenumeration och Azure OpenAI-resurs.

På landningssidan för Azure OpenAI Studio väljer du DALL· E playground (förhandsversion) för att använda API:er för bildgenerering. Välj Inställningar längst upp på sidan och bekräfta att distributionsmenyn har din DALL-E 3-distribution markerad.

Prova bildgenerering

Börja utforska Azure OpenAI-funktioner med en metod utan kod via DALL· E playground (förhandsversion). Ange din bildprompt i textrutan och välj Generera. När den AI-genererade avbildningen är klar visas den på sidan.

Kommentar

Api:erna för bildgenerering levereras med ett con režim šatora ration-filter. Om Azure OpenAI identifierar din fråga som skadligt innehåll returnerar den inte en genererad avbildning. Mer information finns i Innehållsfiltrering.

Skärmbild av Azure OpenAI Studio-landningssidan som visar DALL-E-lekplatsen (förhandsversion) med genererade bilder av isbjörnar.

I DALL· E playground (förhandsversion) kan du också visa Python- och cURL-kodexempel, som är förfyllda enligt dina inställningar. Välj Visa kod längst upp på sidan. Du kan använda den här koden för att skriva ett program som slutför samma uppgift.

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Nästa steg

  • Utforska bildgenererings-API:erna mer ingående med vägledningen för DALL-E.
  • Prova exempel på GitHub-lagringsplatsen Azure OpenAI-exempel.
  • Se API-referensen

Använd den här guiden för att komma igång med att anropa REST API:er för Azure OpenAI-tjänstens avbildningsgenerering med hjälp av Python.

Förutsättningar

  • En Azure-prenumeration Skapa en kostnadsfritt.
  • Åtkomst som beviljats till DALL-E i den önskade Azure-prenumerationen. För närvarande måste man ansöka om att få åtkomst till den här tjänsten. Du kan ansöka om åtkomst till Azure OpenAI genom att fylla i formuläret på https://aka.ms/oai/access. Befintliga Azure OpenAI-kunder måste fylla i formuläret igen för att få åtkomst till DALL-E. Öppna ett problem på den här lagringsplatsen för att kontakta oss om du har ett problem.
  • Python 3.8 eller senare version.
  • Följande Python-bibliotek har installerats: os, requests, json.
  • En Azure OpenAI-resurs som skapats EastUSi regionen , AustraliaEasteller SwedenCentral .
  • Sedan måste du distribuera en dalle3 modell med din Azure-resurs. Mer information finns i Skapa en resurs och distribuera en modell med Azure OpenAI.

Kommentar

För närvarande måste du skicka ett program för att få åtkomst till Azure OpenAI Service. Om du vill ansöka om åtkomst fyller du i formuläret på https://aka.ms/oai/access. Om du behöver hjälp öppnar du ett problem på den här lagringsplatsen för att kontakta Microsoft.

Ställ in

Hämta nyckel och slutpunkt

Om du vill anropa Azure OpenAI-API:erna behöver du följande information om din Azure OpenAI-resurs:

Olika Name Värde
Slutpunkt api_base Slutpunktsvärdet finns under Nycklar och slutpunkt för din resurs i Azure-portalen. Du kan också hitta värdet i kodvyn: Azure OpenAI Studio>Playground>Code View. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
Tangent api_key Nyckelvärdet finns också under Nycklar och slutpunkt för din resurs i Azure-portalen. Azure genererar två nycklar för din resurs. Du kan använda något av värdena.

Gå till din resurs i Azure-portalen. I navigeringsfönstret väljer du Nycklar och slutpunkt under Resurshantering. Kopiera slutpunktsvärdet och ett åtkomstnyckelvärde. Du kan använda antingen värdet KEY 1 eller KEY 2 . Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild som visar sidan Nycklar och slutpunkt för en Azure OpenAI-resurs i Azure-portalen.

Miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Skapa ett nytt Python-program

Skapa en ny Python-fil med namnet quickstart.py. Öppna den nya filen i önskad redigerare eller IDE.

  1. Ersätt innehållet i quickstart.py med följande kod. Ändra värdet prompt för till önskad text.

    Du måste också ersätta <dalle3> i URL:en med det distributionsnamn som du valde när du distribuerade DALL-E 3-modellen. Om du anger modellnamnet uppstår ett fel om du inte väljer ett distributionsnamn som är identiskt med det underliggande modellnamnet. Om du stöter på ett fel kontrollerar du att du inte har en fördubbling av / vid separationen mellan slutpunkten och /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)
    

    Skriptet gör ett synkront API-anrop för bildgenerering.

    Viktigt!

    Kom ihåg att ta bort nyckeln från koden när du är klar och publicera aldrig nyckeln offentligt. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter. Mer information finns i Azure Key Vault.

  2. Kör programmet med python kommandot :

    python quickstart.py
    

    Vänta en stund för att få svaret.

Output

Utdata från ett API-anrop för lyckad bildgenerering ser ut som i följande exempel. Fältet url innehåller en URL där du kan ladda ned den genererade avbildningen. URL:en förblir aktiv i 24 timmar.

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

Api:erna för bildgenerering levereras med ett con režim šatora ration-filter. Om tjänsten identifierar din fråga som skadligt innehåll genereras ingen avbildning. Mer information finns i Innehållsfiltrering. Exempel på felsvar finns i instruktioner för DALL-E.

Systemet returnerar en åtgärdsstatus för Failed och error.code värdet i meddelandet är inställt på contentFilter. Här är ett exempel:

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

Det är också möjligt att den genererade avbildningen filtreras. I det här fallet är felmeddelandet inställt på Generated image was filtered as a result of our safety system.. Här är ett exempel:

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

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Nästa steg

  • Utforska bildgenererings-API:erna mer ingående med vägledningen för DALL-E.
  • Prova exempel på GitHub-lagringsplatsen Azure OpenAI-exempel.
  • Se API-referensen

Använd den här guiden för att komma igång med att generera avbildningar med Azure OpenAI SDK för Python.

Paketexempel för bibliotekskällkod | |

Förutsättningar

Kommentar

För närvarande måste du skicka ett program för att få åtkomst till Azure OpenAI Service. Om du vill ansöka om åtkomst fyller du i formuläret på https://aka.ms/oai/access. Om du behöver hjälp öppnar du ett problem på den här lagringsplatsen för att kontakta Microsoft.

Ställ in

Hämta nyckel och slutpunkt

Om du vill anropa Azure OpenAI-API:erna behöver du följande information om din Azure OpenAI-resurs:

Olika Name Värde
Slutpunkt api_base Slutpunktsvärdet finns under Nycklar och slutpunkt för din resurs i Azure-portalen. Du kan också hitta värdet i kodvyn: Azure OpenAI Studio>Playground>Code View. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
Tangent api_key Nyckelvärdet finns också under Nycklar och slutpunkt för din resurs i Azure-portalen. Azure genererar två nycklar för din resurs. Du kan använda något av värdena.

Gå till din resurs i Azure-portalen. I navigeringsfönstret väljer du Nycklar och slutpunkt under Resurshantering. Kopiera slutpunktsvärdet och ett åtkomstnyckelvärde. Du kan använda antingen värdet KEY 1 eller KEY 2 . Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild som visar sidan Nycklar och slutpunkt för en Azure OpenAI-resurs i Azure-portalen.

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

Miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Installera Python SDK

Öppna en kommandotolk och bläddra till projektmappen. Installera OpenAI Python SDK med hjälp av följande kommando:

pip install openai

Installera även följande bibliotek:

pip install requests
pip install pillow 

Generera avbildningar med DALL-E

Skapa en ny Python-fil, quickstart.py. Öppna den i önskad redigerare eller IDE.

Ersätt innehållet i quickstart.py med följande kod.

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. Ange din slutpunkts-URL och nyckel i lämpliga fält.
  2. Ändra värdet prompt för till önskad text.
  3. Ändra värdet model för till namnet på din distribuerade DALL-E 3-modell.

Viktigt!

Kom ihåg att ta bort nyckeln från koden när du är klar och publicera aldrig nyckeln offentligt. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter. Mer information finns i Azure Key Vault.

Kör programmet med python kommandot :

python quickstart.py

Vänta en stund för att få svaret.

Output

Azure OpenAI lagrar utdatabilden i den generated_image.png filen i den angivna katalogen. Skriptet visar även bilden i standardvisningsprogrammet.

Api:erna för bildgenerering levereras med ett con režim šatora ration-filter. Om tjänsten identifierar din fråga som skadligt innehåll genereras ingen avbildning. Mer information finns i Innehållsfiltrering.

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Nästa steg

  • Utforska bildgenererings-API:erna mer ingående med vägledningen för DALL-E.
  • Prova exempel på GitHub-lagringsplatsen Azure OpenAI-exempel.
  • Se API-referensen

Använd den här guiden för att komma igång med att generera avbildningar med Azure OpenAI SDK för C#.

NuGet-exempel (Library Source Code | Package) |

Förutsättningar

Kommentar

För närvarande måste du skicka ett program för att få åtkomst till Azure OpenAI Service. Om du vill ansöka om åtkomst fyller du i formuläret på https://aka.ms/oai/access. Om du behöver hjälp öppnar du ett problem på den här lagringsplatsen för att kontakta Microsoft.

Ställ in

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Azure OpenAI behöver du en slutpunkt och en nyckel.

Variabelnamn Värde
ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan också hitta värdet i Azure OpenAI Studio>Playground Code>View. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
API-KEY Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan använda antingen KEY1 eller KEY2.

Gå till din resurs i Azure-portalen. Avsnittet Nycklar och slutpunkter finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild av översiktsgränssnittet för en Azure OpenAI-resurs i Azure-portalen med slutpunkten och åtkomstnycklarna inringade i rött.

Miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Skapa en ny .NET Core-app

I ett konsolfönster (till exempel cmd, PowerShell eller Bash) använder du dotnet new kommandot för att skapa en ny konsolapp med namnet azure-openai-quickstart. Det här kommandot skapar ett enkelt "Hello World"-projekt med en enda C#-källfil: Program.cs.

dotnet new console -n azure-openai-quickstart

Ändra katalogen till den nyligen skapade appmappen. Du kan skapa programmet med:

dotnet build

Kompileringsutdata får inte innehålla några varningar eller fel.

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

Installera OpenAI .NET SDK

Installera klientbiblioteket med:

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

Generera avbildningar med DALL-E

Öppna filen program.cs från projektkatalogen och ersätt innehållet med följande kod:

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

Skapa och kör programmet från programkatalogen med följande kommandon:

dotnet build
dotnet run

Output

URL:en för den genererade avbildningen skrivs ut till konsolen.

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

Kommentar

Api:erna för bildgenerering levereras med ett con režim šatora ration-filter. Om tjänsten identifierar din fråga som skadligt innehåll returnerar den inte en genererad avbildning. Mer information finns i artikeln om innehållsfilter .

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen. Innan du tar bort resursen måste du först ta bort alla distribuerade modeller.

Nästa steg

  • Utforska bildgenererings-API:erna mer ingående med vägledningen för DALL-E.
  • Fler exempel finns på GitHub-lagringsplatsen Azure OpenAI Samples.

Använd den här guiden för att komma igång med att generera avbildningar med Azure OpenAI SDK för Java.

Exempel på bibliotekskällkod (Maven) | |

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt
  • Åtkomst som beviljats till Azure OpenAI-tjänsten i den önskade Azure-prenumerationen. För närvarande måste man ansöka om att få åtkomst till den här tjänsten. Du kan ansöka om åtkomst till Azure OpenAI-tjänsten genom att fylla i formuläret på https://aka.ms/oai/access.

Kommentar

För närvarande måste du skicka ett program för att få åtkomst till Azure OpenAI Service. Om du vill ansöka om åtkomst fyller du i formuläret på https://aka.ms/oai/access. Om du behöver hjälp öppnar du ett problem på den här lagringsplatsen för att kontakta Microsoft.

Ställ in

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Azure OpenAI behöver du en slutpunkt och en nyckel.

Variabelnamn Värde
ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan också hitta värdet i Azure OpenAI Studio>Playground Code>View. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
API-KEY Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan använda antingen KEY1 eller KEY2.

Gå till din resurs i Azure-portalen. Avsnittet Nycklar och slutpunkter finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild av översiktsgränssnittet för en Azure OpenAI-resurs i Azure-portalen med slutpunkten och åtkomstnycklarna inringade i rött.

Miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Skapa ett nytt Java-program

Skapa ett nytt Gradle-projekt.

Skapa en ny katalog för din app i ett konsolfönster (till exempel cmd, PowerShell eller bash) och navigera till den.

mkdir myapp && cd myapp

Kör kommandot från arbetskatalogen gradle init . Det här kommandot skapar viktiga byggfiler för Gradle, inklusive build.gradle.kts, som används vid körning för att skapa och konfigurera ditt program.

gradle init --type basic

Välj en DSL när du uppmanas till det och välj Kotlin.

Installera Java SDK

Den här snabbstarten använder Gradle-beroendehanteraren. Du hittar klientbiblioteket och information för andra beroendehanterare på Den centrala Maven-lagringsplatsen.

Leta upp build.gradle.kts och öppna det med önskad IDE eller textredigerare . Kopiera sedan i följande byggkonfiguration. Den här konfigurationen definierar projektet som ett Java-program vars startpunkt är klassen OpenAIQuickstart. Den importerar Azure AI Vision-biblioteket.

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

Generera avbildningar med DALL-E

  1. Skapa en Java-fil.

    Från arbetskatalogen kör du följande kommando för att skapa en projektkällmapp:

    mkdir -p src/main/java
    

    Gå till den nya mappen och skapa en fil med namnet OpenAIQuickstart.java.

  2. Öppna OpenAIQuickstart.java i önskad redigerare eller IDE och klistra in följande kod.

    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. Gå tillbaka till projektrotmappen och skapa appen med:

    gradle build
    

    Kör den sedan med gradle run kommandot :

    gradle run
    

Output

URL:en för den genererade avbildningen skrivs ut till konsolen.

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.

Kommentar

Api:erna för bildgenerering levereras med ett con režim šatora ration-filter. Om tjänsten identifierar din fråga som skadligt innehåll returnerar den inte en genererad avbildning. Mer information finns i artikeln om innehållsfilter .

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen. Innan du tar bort resursen måste du först ta bort alla distribuerade modeller.

Nästa steg

Använd den här guiden för att komma igång med att generera bilder med Azure OpenAI SDK för JavaScript.

Exempel på paket för bibliotekskällkod (npm) | |

Förutsättningar

Kommentar

För närvarande måste du skicka ett program för att få åtkomst till Azure OpenAI Service. Om du vill ansöka om åtkomst fyller du i det här formuläret. Om du behöver hjälp öppnar du ett problem på den här lagringsplatsen för att kontakta Microsoft.

Ställ in

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Azure OpenAI behöver du en slutpunkt och en nyckel.

Variabelnamn Värde
ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan också hitta värdet i Azure OpenAI Studio>Playground Code>View. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
API-KEY Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan använda antingen KEY1 eller KEY2.

Gå till din resurs i Azure-portalen. Avsnittet Nycklar och slutpunkter finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild av översiktsgränssnittet för en Azure OpenAI-resurs i Azure-portalen med slutpunkten och åtkomstnycklarna inringade i rött.

Miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Skapa ett Node-program

Skapa en ny katalog för din app i ett konsolfönster (till exempel cmd, PowerShell eller bash) och navigera till den. Kör npm init sedan kommandot för att skapa ett nodprogram med en package.json fil.

npm init

Installera klientbiblioteket

Installera Azure OpenAI-klientbiblioteket för JavaScript med npm:

npm install @azure/openai

Appens package.json-fil uppdateras med beroendena.

Generera avbildningar med DALL-E

Skapa en ny fil med namnet ImageGeneration.js och öppna den i önskad kodredigerare. Kopiera följande kod till filen 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);
});

Kör skriptet med följande kommando:

node _ImageGeneration.js

Output

URL:en för den genererade avbildningen skrivs ut till konsolen.

== 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

Kommentar

Api:erna för bildgenerering levereras med ett con režim šatora ration-filter. Om tjänsten identifierar din fråga som skadligt innehåll returnerar den inte en genererad avbildning. Mer information finns i artikeln om innehållsfilter .

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen. Innan du tar bort resursen måste du först ta bort alla distribuerade modeller.

Nästa steg

  • Utforska bildgenererings-API:erna mer ingående med vägledningen för DALL-E.
  • Fler exempel finns på GitHub-lagringsplatsen Azure OpenAI Samples.

Använd den här guiden för att komma igång med att generera avbildningar med Azure OpenAI SDK för Go.

Paketexempel för bibliotekskällkod | |

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt
  • Åtkomst som beviljas till DALL-E i den önskade Azure-prenumerationen För närvarande beviljas åtkomst till den här tjänsten endast av programmet. Du kan ansöka om åtkomst till Azure OpenAI genom att fylla i formuläret på https://aka.ms/oai/access. Befintliga Azure OpenAI-kunder måste fylla i formuläret igen för att få åtkomst till DALL-E. Öppna ett problem på den här lagringsplatsen för att kontakta oss om du har ett problem.

Kommentar

För närvarande måste du skicka ett program för att få åtkomst till Azure OpenAI Service. Om du vill ansöka om åtkomst fyller du i formuläret på https://aka.ms/oai/access. Om du behöver hjälp öppnar du ett problem på den här lagringsplatsen för att kontakta Microsoft.

Ställ in

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Azure OpenAI behöver du en slutpunkt och en nyckel.

Variabelnamn Värde
ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan också hitta värdet i Azure OpenAI Studio>Playground Code>View. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
API-KEY Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan använda antingen KEY1 eller KEY2.

Gå till din resurs i Azure-portalen. Avsnittet Nycklar och slutpunkter finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild av översiktsgränssnittet för en Azure OpenAI-resurs i Azure-portalen med slutpunkten och åtkomstnycklarna inringade i rött.

Miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Skapa ett nytt Go-program

Öppna kommandotolken och gå till projektmappen. Skapa en ny fil sample.go.

Installera Go SDK

Installera OpenAI Go SDK med följande kommando:

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

Eller, om du använder dep, inom din lagringsplatskörning:

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

Generera avbildningar med DALL-E

Öppna sample.go i önskad kodredigerare.

Lägg till följande kod i skriptet:

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

Kör skriptet med go run kommandot :

go run sample.go

Output

URL:en för den genererade avbildningen skrivs ut till konsolen.

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

Kommentar

Api:erna för bildgenerering levereras med ett con režim šatora ration-filter. Om tjänsten identifierar din fråga som skadligt innehåll returnerar den inte en genererad avbildning. Mer information finns i artikeln om innehållsfilter .

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Nästa steg

  • Utforska bildgenererings-API:erna mer ingående med vägledningen för DALL-E.
  • Fler exempel finns på GitHub-lagringsplatsen Azure OpenAI Samples.

Använd den här guiden för att komma igång med att anropa API:er för Azure OpenAI Service-avbildningsgenerering med hjälp av PowerShell.

Kommentar

API:et för bildgenerering skapar en bild från en textprompt. Den redigerar inte befintliga bilder eller skapar variationer.

Förutsättningar

Kommentar

För närvarande måste du skicka ett program för att få åtkomst till Azure OpenAI Service. Om du vill ansöka om åtkomst fyller du i det här formuläret. Om du behöver hjälp öppnar du ett problem på den här lagringsplatsen för att kontakta Microsoft.

Ställ in

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Azure OpenAI behöver du en slutpunkt och en nyckel.

Variabelnamn Värde
ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan också hitta värdet i Azure OpenAI Studio>Playground Code>View. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
API-KEY Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan använda antingen KEY1 eller KEY2.

Gå till din resurs i Azure-portalen. Avsnittet Nycklar och slutpunkter finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild av översiktsgränssnittet för en Azure OpenAI-resurs i Azure-portalen med slutpunkten och åtkomstnycklarna inringade i rött.

Miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Skapa ett nytt PowerShell-skript

  1. Skapa en ny PowerShell-fil med namnet quickstart.ps1. Öppna den nya filen i önskad redigerare eller IDE.

  2. Ersätt innehållet i quickstart.ps1 med följande kod. Ange din slutpunkts-URL och nyckel i lämpliga fält. Ändra värdet prompt för till önskad text.

    # 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
    

    Viktigt!

    För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som PowerShell Secret Management med Azure Key Vault. Mer information om säkerhet för autentiseringsuppgifter finns i artikeln om Säkerhet för Azure AI-tjänster.

  3. Kör skriptet med PowerShell:

    ./quickstart.ps1
    

    Skriptet loopar tills den genererade avbildningen är klar.

Output

PowerShell begär avbildningen från Azure OpenAI och lagrar utdatabilden i den generated_image.png filen i den angivna katalogen. För enkelhetens skull returneras den fullständiga sökvägen för filen i slutet av skriptet.

Api:erna för bildgenerering levereras med ett con režim šatora ration-filter. Om tjänsten identifierar din fråga som skadligt innehåll genereras ingen avbildning. Mer information finns i Innehållsfiltrering.

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Nästa steg

  • Utforska bildgenererings-API:erna mer ingående med vägledningen för DALL-E.
  • Prova exempel på GitHub-lagringsplatsen Azure OpenAI-exempel.