Aracılığıyla paylaş


Hızlı Başlangıç: Azure AI Foundry Modellerinde Azure OpenAI ile görüntü oluşturma

Not

Görüntü oluşturma API'si metin isteminden bir görüntü oluşturur. Mevcut görüntüleri düzenlemez veya varyasyon oluşturmaz.

Azure AI Foundry ile tarayıcınızda Azure OpenAI ile görüntü oluşturmaya başlamak için bu kılavuzu kullanın.

Önkoşullar

Azure AI Foundry'ye gidin

Azure AI Foundry'ye göz atın ve Azure OpenAI kaynağınızla ilişkili kimlik bilgileriyle oturum açın. Oturum açma iş akışı sırasında veya sonrasında uygun dizini, Azure aboneliğini ve Azure OpenAI kaynağını seçin.

Azure AI Foundry giriş sayfasında yeni bir proje oluşturun veya seçin. Sol gezinti bölmesindeki Modeller + uç noktalar sayfasına gidin. Modeli dağıt'ı seçin ve ardından listeden DALL-E modellerinden birini seçin. Dağıtım işlemini tamamlayın.

Modelin sayfasında Oyun alanında aç'ı seçin.

Görüntü oluşturmayı deneyin

Images oyun alanı aracılığıyla kod içermeyen bir yaklaşımla Azure OpenAI özelliklerini keşfetmeye başlayın. Metin kutusuna görüntü isteminizi girin ve Oluştur'u seçin. Yapay zeka tarafından oluşturulan görüntü hazır olduğunda sayfada görünür.

Not

Görüntü API'leri bir içerik denetleme filtresiyle birlikte gelir. Azure OpenAI isteminizi zararlı içerik olarak algılarsa, oluşturulan bir görüntüyü döndürmez. Daha fazla bilgi için bkz . İçerik filtreleme.

Images oyun alanında, ayarlarınıza göre önceden doldurulmuş Python ve cURL kod örneklerini de görüntüleyebilirsiniz. Sayfanın üst kısmındaki Kodu görüntüle'yi seçin. Aynı görevi tamamlayan bir uygulama yazmak için bu kodu kullanabilirsiniz.

Kaynakları temizleme

Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.

Sonraki adımlar

Python kullanarak Azure AI Foundry Modellerinde Azure OpenAI görüntü oluşturma REST API'lerini çağırmaya başlamak için bu kılavuzu kullanın.

Önkoşullar

Ayarlama

Anahtarı ve uç noktayı alma

Azure OpenAI API'lerini başarıyla çağırmak için Azure OpenAI kaynağınız hakkında aşağıdaki bilgilere ihtiyacınız vardır:

Değişken Veri Akışı Adı Değer
Uç nokta api_base Uç nokta değeri, Azure portalında kaynağınız için Anahtarlar ve Uç Nokta altında bulunur. Uç noktayı Azure AI Foundry portalındaki Dağıtımlar sayfasından da bulabilirsiniz. Örnek uç nokta: https://docs-test-001.openai.azure.com/.
Anahtar api_key Anahtar değeri, Azure portalında kaynağınız için Anahtarlar ve Uç Nokta altında da bulunur. Azure, kaynağınız için iki anahtar oluşturur. İki değerden birini kullanabilirsiniz.

Azure portalında kaynağınıza gidin. Gezinti bölmesinde Kaynak Yönetimi'nin altında Anahtarlar ve Uç Nokta'yı seçin. Uç nokta değerini ve erişim anahtarı değerini kopyalayın. ANAHTAR 1 veya ANAHTAR 2 değerini kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.

Azure portalında bir Azure OpenAI kaynağının Anahtarlar ve Uç Nokta sayfasını gösteren ekran görüntüsü.

Ortam değişkenleri

Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.

Önemli

Kimlik bilgilerini bulutta çalışan uygulamalarınızla depolamaktan kaçınmak için Azure kaynakları için yönetilen kimliklerle Microsoft Entra Id kimlik doğrulaması yapmanızı öneririz.

API anahtarlarını dikkatli kullanın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin. API anahtarlarını kullanıyorsanız, bunları Azure Key Vault'ta güvenli bir şekilde depolayın, anahtarları düzenli olarak döndürün ve rol tabanlı erişim denetimi ve ağ erişim kısıtlamalarını kullanarak Azure Key Vault'a erişimi kısıtlayın. Uygulamalarınızda API anahtarlarını güvenli bir şekilde kullanma hakkında daha fazla bilgi için bkz . Azure Key Vault ile API anahtarları.

Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Yeni Python uygulaması oluşturma

quickstart.py adlı yeni bir Python dosyası oluşturun. Yeni dosyayı tercih ettiğiniz düzenleyicide veya IDE'de açın.

  1. quickstart.py içeriğini aşağıdaki kodla değiştirin. değerini prompt tercih ettiğiniz metinle değiştirin. Ayrıca deployment öğesini GPT-image-1 modelini dağıtırken seçtiğiniz dağıtım adına ayarlayın.

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

    Betik, zaman uyumlu görüntü oluşturma API çağrısı yapar.

    Önemli

    İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve anahtarınızı hiçbir zaman herkese açık olarak göndermeyin. Üretim için kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için bkz . Azure Key Vault.

  2. Uygulamayı şu komutla python çalıştırın:

    python quickstart.py
    

    Yanıtı almak için birkaç dakika bekleyin.

Çıktı

Başarılı bir görüntü oluşturma API çağrısının çıktısı aşağıdaki örneğe benzer. alanı, url oluşturulan görüntüyü indirebileceğiniz bir URL içerir. URL 24 saat boyunca etkin kalır.

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

Görüntü API'leri bir içerik denetleme filtresiyle birlikte gelir. Hizmet isteminizi zararlı içerik olarak algılarsa bir görüntü oluşturmaz. Daha fazla bilgi için bkz . İçerik filtreleme. Hata yanıtlarının örnekleri için bkz. Görüntü oluşturma nasıl yapılır kılavuzu.

Sistem işleminin Failed durumunu döndürür ve error.code iletideki değer olarak contentFilterayarlanır. Bir örnek aşağıda verilmiştir:

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

Oluşturulan görüntünün kendisi de filtrelenmiş olabilir. Bu durumda hata iletisi olarak Generated image was filtered as a result of our safety system.ayarlanır. Bir örnek aşağıda verilmiştir:

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

Kaynakları temizleme

Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.

Sonraki adımlar

Python için Azure OpenAI SDK'sı ile görüntü oluşturmaya başlamak için bu kılavuzu kullanın.

Kitaplık kaynak kodu | Paket | Örnekleri

Önkoşullar

Ayarlama

Anahtarı ve uç noktayı alma

Azure OpenAI API'lerini başarıyla çağırmak için Azure OpenAI kaynağınız hakkında aşağıdaki bilgilere ihtiyacınız vardır:

Değişken Veri Akışı Adı Değer
Uç nokta api_base Uç nokta değeri, Azure portalında kaynağınız için Anahtarlar ve Uç Nokta altında bulunur. Uç noktayı Azure AI Foundry portalındaki Dağıtımlar sayfasından da bulabilirsiniz. Örnek uç nokta: https://docs-test-001.openai.azure.com/.
Anahtar api_key Anahtar değeri, Azure portalında kaynağınız için Anahtarlar ve Uç Nokta altında da bulunur. Azure, kaynağınız için iki anahtar oluşturur. İki değerden birini kullanabilirsiniz.

Azure portalında kaynağınıza gidin. Gezinti bölmesinde Kaynak Yönetimi'nin altında Anahtarlar ve Uç Nokta'yı seçin. Uç nokta değerini ve erişim anahtarı değerini kopyalayın. ANAHTAR 1 veya ANAHTAR 2 değerini kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.

Azure portalında bir Azure OpenAI kaynağının Anahtarlar ve Uç Nokta sayfasını gösteren ekran görüntüsü.

Ortam değişkenleri

Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.

Önemli

Kimlik bilgilerini bulutta çalışan uygulamalarınızla depolamaktan kaçınmak için Azure kaynakları için yönetilen kimliklerle Microsoft Entra Id kimlik doğrulaması yapmanızı öneririz.

API anahtarlarını dikkatli kullanın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin. API anahtarlarını kullanıyorsanız, bunları Azure Key Vault'ta güvenli bir şekilde depolayın, anahtarları düzenli olarak döndürün ve rol tabanlı erişim denetimi ve ağ erişim kısıtlamalarını kullanarak Azure Key Vault'a erişimi kısıtlayın. Uygulamalarınızda API anahtarlarını güvenli bir şekilde kullanma hakkında daha fazla bilgi için bkz . Azure Key Vault ile API anahtarları.

Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Python SDK'sını yükleme

Bir komut istemi açın ve proje klasörünüzde gezinin. Aşağıdaki komutu kullanarak OpenAI Python SDK'sını yükleyin:

pip install openai

Aşağıdaki kitaplıkları da yükleyin:

pip install requests
pip install pillow 

DALL-E ile görüntü oluşturma

quickstart.py yeni bir Python dosyası oluşturun. Tercih ettiğiniz düzenleyicide veya IDE'de açın.

quickstart.py içeriğini aşağıdaki kodla değiştirin.

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. Uygun alanlara uç nokta URL'nizi ve anahtarınızı girin.
  2. değerini prompt tercih ettiğiniz metinle değiştirin.
  3. değerini model dağıtılan DALL-E 3 modelinizin adıyla değiştirin.

Önemli

İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve anahtarınızı hiçbir zaman herkese açık olarak göndermeyin. Üretim için kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için bkz . Azure Key Vault.

Uygulamayı şu komutla python çalıştırın:

python quickstart.py

Yanıtı almak için birkaç dakika bekleyin.

Çıktı

Azure OpenAI, çıktı görüntüsünü belirtilen dizininizdeki generated_image.png dosyasında depolar. Betik, görüntüyü varsayılan görüntü görüntüleyicinizde de görüntüler.

Görüntü API'leri bir içerik denetleme filtresiyle birlikte gelir. Hizmet isteminizi zararlı içerik olarak algılarsa bir görüntü oluşturmaz. Daha fazla bilgi için bkz . İçerik filtreleme.

Kaynakları temizleme

Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.

Sonraki adımlar

C# için Azure OpenAI SDK'sı ile görüntü oluşturmaya başlamak için bu kılavuzu kullanın.

Kitaplık kaynak kodu | Paketi (NuGet) | Örnekleri

Önkoşullar

Microsoft Entra Id önkoşulları

Microsoft Entra Id ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:

Kurulum

  1. Yeni bir klasör vision-quickstart oluşturun ve aşağıdaki komutu kullanarak hızlı başlangıç klasörüne gidin:

    mkdir vision-quickstart && cd vision-quickstart
    
  2. Aşağıdaki komutla yeni bir konsol uygulaması oluşturun:

    dotnet new console
    
  3. OpenAI .NET istemci kitaplığınıdotnet add package komutuyla yükleyin:

    dotnet add package Azure.AI.OpenAI --version 1.0.0-beta.6
    
  4. Microsoft Entra ID ile önerilen anahtarsız kimlik doğrulaması için Azure.Identity paketini şu şekilde yükleyin:

    dotnet add package Azure.Identity
    
  5. Microsoft Entra ID ile önerilen anahtarsız kimlik doğrulaması için aşağıdaki komutu kullanarak Azure'da oturum açın:

    az login
    

Kaynak bilgilerini alma

Azure OpenAI kaynağınızla uygulamanızın kimliğini doğrulamak için aşağıdaki bilgileri almanız gerekir:

Değişken adı Değer
AZURE_OPENAI_ENDPOINT Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir.
AZURE_OPENAI_DEPLOYMENT_NAME Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi> altında bulunabilir.
OPENAI_API_VERSION API Sürümleri hakkında daha fazla bilgi edinin.

Koddaki sürümü değiştirebilir veya bir ortam değişkeni kullanabilirsiniz.

Anahtarsız kimlik doğrulaması ve ortam değişkenlerini ayarlama hakkında daha fazla bilgi edinin.

Hızlı başlangıcı çalıştırma

Bu hızlı başlangıçtaki örnek kod, önerilen anahtarsız kimlik doğrulaması için Microsoft Entra Kimliğini kullanır. API anahtarı kullanmayı tercih ederseniz, DefaultAzureCredential nesnesini bir AzureKeyCredential nesneyle değiştirebilirsiniz.

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

Hızlı başlangıcı çalıştırmak için şu adımları izleyin:

  1. öğesinin içeriğini Program.cs aşağıdaki kodla değiştirin ve yer tutucu değerlerini kendi kodunuzla güncelleştirin.

    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. Visual Studio'nun dotnet run üst kısmındaki komutu veya çalıştır düğmesini kullanarak uygulamayı çalıştırın:

    dotnet run
    

Çıktı

Oluşturulan görüntünün URL'si konsola yazdırılır.

<SAS URL>

Not

Görüntü API'leri bir içerik denetleme filtresiyle birlikte gelir. Hizmet isteminizi zararlı içerik olarak algılarsa oluşturulan bir görüntüyü döndürmez. Daha fazla bilgi için içerik filtresi makalesine bakın.

Kaynakları temizleme

Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız kaynağı silebilirsiniz. Kaynağı silmeden önce dağıtılan modelleri silmeniz gerekir.

Sonraki adımlar

Java için Azure OpenAI SDK'sı ile görüntü oluşturmaya başlamak için bu kılavuzu kullanın.

Kitaplık kaynak kodu | Yapıtı (Maven) | Örnekler

Önkoşullar

Microsoft Entra Id önkoşulları

Microsoft Entra Id ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:

Kurulum

  1. Yeni bir klasör vision-quickstart oluşturun ve aşağıdaki komutu kullanarak hızlı başlangıç klasörüne gidin:

    mkdir vision-quickstart && cd vision-quickstart
    
  2. Apache Maven'ı yükleyin. Ardından başarılı yüklemeyi onaylamak için komutunu çalıştırın mvn -v .

  3. Projenizin kökünde yeni pom.xml bir dosya oluşturun ve içine aşağıdaki kodu kopyalayın:

    <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. Azure OpenAI SDK'sını ve bağımlılıklarını yükleyin.

    mvn clean dependency:copy-dependencies
    
  5. Microsoft Entra ID ile önerilen anahtarsız kimlik doğrulaması için aşağıdaki komutu kullanarak Azure'da oturum açın:

    az login
    

Kaynak bilgilerini alma

Azure OpenAI kaynağınızla uygulamanızın kimliğini doğrulamak için aşağıdaki bilgileri almanız gerekir:

Değişken adı Değer
AZURE_OPENAI_ENDPOINT Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir.
AZURE_OPENAI_DEPLOYMENT_NAME Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi> altında bulunabilir.
OPENAI_API_VERSION API Sürümleri hakkında daha fazla bilgi edinin.

Koddaki sürümü değiştirebilir veya bir ortam değişkeni kullanabilirsiniz.

Anahtarsız kimlik doğrulaması ve ortam değişkenlerini ayarlama hakkında daha fazla bilgi edinin.

Uygulamayı çalıştırma

Bu hızlı başlangıçtaki örnek kod, önerilen anahtarsız kimlik doğrulaması için Microsoft Entra Kimliğini kullanır. API anahtarı kullanmayı tercih ederseniz, DefaultAzureCredential nesnesini bir AzureKeyCredential nesneyle değiştirebilirsiniz.

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

Konuşma tanıma için bir konsol uygulaması oluşturmak için bu adımları izleyin.

  1. Aynı proje kök dizininde Quickstart.java adlı yeni bir dosya oluşturun.

  2. Aşağıdaki kodu Quickstart.java kopyalayın:

    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. Yeni konsol uygulamanızı çalıştırarak bir görüntü oluşturun:

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

Çıktı

Oluşturulan görüntünün URL'si konsola yazdırılır.

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

Not

Görüntü API'leri bir içerik denetleme filtresiyle birlikte gelir. Hizmet isteminizi zararlı içerik olarak algılarsa oluşturulan bir görüntüyü döndürmez. Daha fazla bilgi için içerik filtresi makalesine bakın.

Kaynakları temizleme

Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız kaynağı silebilirsiniz. Kaynağı silmeden önce dağıtılan modelleri silmeniz gerekir.

Sonraki adımlar

  • Görüntü API'lerini daha ayrıntılı bir şekilde keşfetmek için Image API nasıl yapılır kılavuzuna göz atın.
  • Daha fazla örnek için Azure OpenAI Örnekleri GitHub deposuna göz atın

JavaScript için Azure OpenAI SDK'sı ile görüntü oluşturmaya başlamak için bu kılavuzu kullanın.

Başvuru belgeleri | Kaynak kodu | Paketi (npm)Örnekler |

Önkoşullar

Microsoft Entra Id önkoşulları

Microsoft Entra Id ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:

Kurulum

  1. Yeni bir klasör image-quickstart oluşturun ve aşağıdaki komutu kullanarak hızlı başlangıç klasörüne gidin:

    mkdir image-quickstart && cd image-quickstart
    
  2. Aşağıdaki komutla package.json oluşturun:

    npm init -y
    
  3. JavaScript için OpenAI istemci kitaplığını şu şekilde yükleyin:

    npm install openai
    
  4. Önerilen parolasız kimlik doğrulaması için:

    npm install @azure/identity
    

Kaynak bilgilerini alma

Azure OpenAI kaynağınızla uygulamanızın kimliğini doğrulamak için aşağıdaki bilgileri almanız gerekir:

Değişken adı Değer
AZURE_OPENAI_ENDPOINT Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir.
AZURE_OPENAI_DEPLOYMENT_NAME Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi> altında bulunabilir.
OPENAI_API_VERSION API Sürümleri hakkında daha fazla bilgi edinin.

Koddaki sürümü değiştirebilir veya bir ortam değişkeni kullanabilirsiniz.

Anahtarsız kimlik doğrulaması ve ortam değişkenlerini ayarlama hakkında daha fazla bilgi edinin.

Dikkat

SDK ile önerilen anahtarsız kimlik doğrulamasını kullanmak için ortam değişkeninin AZURE_OPENAI_API_KEY ayarlanmamış olduğundan emin olun.

DALL-E ile görüntü oluşturma

  1. index.js Dosyayı aşağıdaki kodla oluşturun:

    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. Aşağıdaki komutla Azure'da oturum açın:

    az login
    
  3. JavaScript dosyasını çalıştırın.

    node index.js
    

Çıktı

Oluşturulan görüntünün URL'si konsola yazdırılır.

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

Not

Görüntü API'leri bir içerik denetleme filtresiyle birlikte gelir. Hizmet isteminizi zararlı içerik olarak algılarsa oluşturulan bir görüntüyü döndürmez. Daha fazla bilgi için içerik filtresi makalesine bakın.

Kaynakları temizleme

Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız kaynağı silebilirsiniz. Kaynağı silmeden önce dağıtılan modelleri silmeniz gerekir.

Sonraki adımlar

JavaScript için Azure OpenAI SDK'sı ile görüntü oluşturmaya başlamak için bu kılavuzu kullanın.

Başvuru belgeleri | Kaynak kodu | Paketi (npm)Örnekler |

Önkoşullar

Microsoft Entra Id önkoşulları

Microsoft Entra Id ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:

Kurulum

  1. Yeni bir klasör image-quickstart oluşturun ve aşağıdaki komutu kullanarak hızlı başlangıç klasörüne gidin:

    mkdir image-quickstart && cd image-quickstart
    
  2. Aşağıdaki komutla package.json oluşturun:

    npm init -y
    
  3. package.json aşağıdaki komut ile ECMAScript olarak güncelleyin:

    npm pkg set type=module
    
  4. JavaScript için OpenAI istemci kitaplığını şu şekilde yükleyin:

    npm install openai
    
  5. Önerilen parolasız kimlik doğrulaması için:

    npm install @azure/identity
    

Kaynak bilgilerini alma

Azure OpenAI kaynağınızla uygulamanızın kimliğini doğrulamak için aşağıdaki bilgileri almanız gerekir:

Değişken adı Değer
AZURE_OPENAI_ENDPOINT Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir.
AZURE_OPENAI_DEPLOYMENT_NAME Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi> altında bulunabilir.
OPENAI_API_VERSION API Sürümleri hakkında daha fazla bilgi edinin.

Koddaki sürümü değiştirebilir veya bir ortam değişkeni kullanabilirsiniz.

Anahtarsız kimlik doğrulaması ve ortam değişkenlerini ayarlama hakkında daha fazla bilgi edinin.

Dikkat

SDK ile önerilen anahtarsız kimlik doğrulamasını kullanmak için ortam değişkeninin AZURE_OPENAI_API_KEY ayarlanmamış olduğundan emin olun.

DALL-E ile görüntü oluşturma

  1. index.ts Dosyayı aşağıdaki kodla oluşturun:

    import { AzureOpenAI } from "openai";
    import { 
        DefaultAzureCredential, 
        getBearerTokenProvider 
    } from "@azure/identity";
    
    // You will need to set these environment variables or edit the following values
    const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint";
    
    // Required Azure OpenAI deployment name and API version
    const apiVersion = process.env.OPENAI_API_VERSION || "2024-07-01";
    const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "dall-e-3";
    
    // keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
    function getClient(): AzureOpenAI {
      return new AzureOpenAI({
        endpoint,
        azureADTokenProvider,
        apiVersion,
        deployment: deploymentName,
      });
    }
    async function main() {
      console.log("== Image Generation ==");
    
      const client = getClient();
    
      const results = await client.images.generate({
        prompt,
        size: "1024x1024",
        n: numberOfImagesToGenerate,
        model: "",
        style: "vivid", // or "natural"
      });
    
      for (const image of results.data) {
        console.log(`Image generation result URL: ${image.url}`);
      }
    }
    
    main().catch((err) => {
      console.error("The sample encountered an error:", err);
    });
    
  2. tsconfig.json dosyasını oluşturup TypeScript kodunu dönüştürmek için ECMAScript için aşağıdaki kodu kopyalayın.

    {
        "compilerOptions": {
          "module": "NodeNext",
          "target": "ES2022", // Supports top-level await
          "moduleResolution": "NodeNext",
          "skipLibCheck": true, // Avoid type errors from node_modules
          "strict": true // Enable strict type-checking options
        },
        "include": ["*.ts"]
    }
    
  3. TypeScript'ten JavaScript'e dönüştürme.

    tsc
    
  4. Aşağıdaki komutla Azure'da oturum açın:

    az login
    
  5. Kodu aşağıdaki komutla çalıştırın:

    node index.js
    

Çıktı

Oluşturulan görüntünün URL'si konsola yazdırılır.

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

Not

Görüntü API'leri bir içerik denetleme filtresiyle birlikte gelir. Hizmet isteminizi zararlı içerik olarak algılarsa oluşturulan bir görüntüyü döndürmez. Daha fazla bilgi için içerik filtresi makalesine bakın.

Kaynakları temizleme

Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız kaynağı silebilirsiniz. Kaynağı silmeden önce dağıtılan modelleri silmeniz gerekir.

Sonraki adımlar

Go için Azure OpenAI SDK'sı ile görüntü oluşturmaya başlamak için bu kılavuzu kullanın.

Kitaplık kaynak kodu | Paket | Örnekleri

Önkoşullar

Microsoft Entra Id önkoşulları

Microsoft Entra Id ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:

Kurulum

  1. Yeni bir klasör dall-e-quickstart oluşturun ve aşağıdaki komutu kullanarak hızlı başlangıç klasörüne gidin:

    mkdir dall-e-quickstart && cd dall-e-quickstart
    
  2. Microsoft Entra ID ile önerilen anahtarsız kimlik doğrulaması için aşağıdaki komutu kullanarak Azure'da oturum açın:

    az login
    

Kaynak bilgilerini alma

Azure OpenAI kaynağınızla uygulamanızın kimliğini doğrulamak için aşağıdaki bilgileri almanız gerekir:

Değişken adı Değer
AZURE_OPENAI_ENDPOINT Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir.
AZURE_OPENAI_DEPLOYMENT_NAME Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi> altında bulunabilir.
OPENAI_API_VERSION API Sürümleri hakkında daha fazla bilgi edinin.

Koddaki sürümü değiştirebilir veya bir ortam değişkeni kullanabilirsiniz.

Anahtarsız kimlik doğrulaması ve ortam değişkenlerini ayarlama hakkında daha fazla bilgi edinin.

Hızlı başlangıcı çalıştırma

Bu hızlı başlangıçtaki örnek kod, önerilen anahtarsız kimlik doğrulaması için Microsoft Entra Kimliğini kullanır. API anahtarı kullanmayı tercih ediyorsanız, NewDefaultAzureCredential uygulamasını NewKeyCredential ile değiştirebilirsiniz.

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

Örneği çalıştırmak için:

  1. quickstart.go adlı yeni bir dosya oluşturun. Aşağıdaki kodu quickstart.go dosyasına kopyalayın.

     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. Yeni bir Go modülü oluşturmak için aşağıdaki komutu çalıştırın:

     go mod init quickstart.go
    
  3. Gerekli bağımlılıkları yüklemek için komutunu çalıştırın go mod tidy :

    go mod tidy
    
  4. Örneği çalıştırmak için aşağıdaki komutu çalıştırın:

     go run quickstart.go
    

Çıktı

Oluşturulan görüntünün URL'si konsola yazdırılır.

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

Not

Görüntü API'leri bir içerik denetleme filtresiyle birlikte gelir. Hizmet isteminizi zararlı içerik olarak algılarsa oluşturulan bir görüntüyü döndürmez. Daha fazla bilgi için içerik filtresi makalesine bakın.

Kaynakları temizleme

Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.

Sonraki adımlar

PowerShell ile Azure AI Foundry Modellerinde Azure OpenAI görüntü oluşturma API'lerini çağırmaya başlamak için bu kılavuzu kullanın.

Önkoşullar

Microsoft Entra Id önkoşulları

Microsoft Entra Id ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:

Kaynak bilgilerini alma

Azure OpenAI kaynağınızla uygulamanızın kimliğini doğrulamak için aşağıdaki bilgileri almanız gerekir:

Değişken adı Değer
AZURE_OPENAI_ENDPOINT Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir.
AZURE_OPENAI_DEPLOYMENT_NAME Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi> altında bulunabilir.
OPENAI_API_VERSION API Sürümleri hakkında daha fazla bilgi edinin.

Koddaki sürümü değiştirebilir veya bir ortam değişkeni kullanabilirsiniz.

Anahtarsız kimlik doğrulaması ve ortam değişkenlerini ayarlama hakkında daha fazla bilgi edinin.

Görüntü oluşturma

  1. Microsoft Entra ID ile önerilen anahtarsız kimlik doğrulaması için aşağıdaki komutu kullanarak Azure'da oturum açın:

    az login
    
  2. quickstart.ps1adlı yeni bir PowerShell dosyası oluşturun. Ardından tercih ettiğiniz düzenleyicide veya IDE'de açın.

  3. quickstart.ps1 dosyasının içeriğini aşağıdaki kodla değiştirin. Uygun alanlara uç nokta URL'nizi ve anahtarınızı girin. değerini prompt tercih ettiğiniz metinle değiştirin.

     # 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
    

    Önemli

    Üretim için Azure Key Vault ile PowerShell Gizli Dizi Yönetimi gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Kimlik bilgisi güvenliği hakkında daha fazla bilgi için bu güvenlik makalesine bakın.

  4. Betiği PowerShell kullanarak çalıştırın:

    ./quickstart.ps1
    

    Betik, oluşturulan görüntü hazır olana kadar döngüye alır.

Çıktı

PowerShell, Görüntüyü Azure OpenAI'den istemektedir ve çıkış görüntüsünü belirtilen dizininizdeki generated_image.png dosyasında depolar. Kolaylık olması için, dosyanın tam yolu betiğin sonunda döndürülür.

Görüntü API'leri bir içerik denetleme filtresiyle birlikte gelir. Hizmet isteminizi zararlı içerik olarak algılarsa bir görüntü oluşturmaz. Daha fazla bilgi için bkz . İçerik filtreleme.

Kaynakları temizleme

Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.

Sonraki adımlar

  • Azure OpenAI Örnekleri GitHub deposundaki örnekleri deneyin.