Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga / Notatka
Interfejs API generowania obrazu tworzy obraz na podstawie polecenia tekstowego. Nie edytuje ani nie tworzy odmian na podstawie istniejących obrazów.
Skorzystaj z tego przewodnika, aby rozpocząć generowanie obrazów za pomocą usługi Azure OpenAI w przeglądarce za pomocą usługi Azure AI Foundry.
Wymagania wstępne
- Subskrypcja platformy Azure. Utwórz je bezpłatnie.
- Zasób usługi Azure OpenAI utworzony w obsługiwanym regionie. Zobacz Dostępność regionów. Aby uzyskać więcej informacji, zobacz Tworzenie zasobu i wdrażanie modelu za pomocą usługi Azure OpenAI.
Przejdź do usługi Azure AI Foundry
Przejdź do usługi Azure AI Foundry i zaloguj się przy użyciu poświadczeń skojarzonych z zasobem usługi Azure OpenAI. Podczas lub po procesie logowania wybierz odpowiedni katalog, subskrypcję Azure i zasób Azure OpenAI.
Na stronie docelowej usługi Azure AI Foundry utwórz lub wybierz nowy projekt. Przejdź do strony Modele i punkty końcowe na lewym pasku nawigacyjnym. Wybierz pozycję Wdróż model , a następnie z listy wybierz jeden z modeli DALL-E. Ukończ proces wdrażania.
Na stronie modelu wybierz pozycję Otwórz na placu zabaw.
Testowanie generowania obrazów
Zacznij eksplorować możliwości Azure OpenAI przy użyciu podejścia bez kodu za pośrednictwem Images Playground. Wprowadź polecenie generowania obrazu w polu tekstowym i wybierz Generuj. Gdy obraz wygenerowany przez sztuczną inteligencję jest gotowy, zostanie wyświetlony na stronie.
Uwaga / Notatka
Interfejsy API obrazów mają filtr moderowania zawartości. Jeśli usługa Azure OpenAI rozpoznaje monit jako szkodliwą zawartość, nie zwraca wygenerowanego obrazu. Aby uzyskać więcej informacji, zobacz Filtrowanie zawartości.
Na placu zabaw z obrazami można również wyświetlić przykłady kodu Python i cURL, które są wypełnione zgodnie z Twoimi ustawieniami. Wybierz pozycję Wyświetl kod w górnej części strony. Możesz użyć tego kodu, aby napisać aplikację, która wykonuje to samo zadanie.
Uprzątnij zasoby
Jeśli chcesz wyczyścić i usunąć zasób usługi Azure OpenAI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Dalsze kroki
- Zapoznaj się z interfejsami API obrazów bardziej szczegółowo, zapoznaj się z przewodnikiem z instrukcjami dotyczącymi interfejsu API obrazów.
- Wypróbuj przykłady dostępne w repozytorium GitHub Azure OpenAI Samples.
- Zobacz dokumentację interfejsu API
Aby rozpocząć korzystanie z interfejsu API REST do generowania obrazów za pomocą modeli Azure OpenAI w usłudze Azure AI Foundry przy użyciu języka Python, skorzystaj z tego przewodnika.
Wymagania wstępne
- Subskrypcja platformy Azure. Utwórz je bezpłatnie.
- Python 3.8 lub nowszy.
- Zainstalowane następujące biblioteki języka Python:
os
,requests
,json
. - Zasób usługi Azure OpenAI utworzony w obsługiwanym regionie. Zobacz Dostępność regionów.
- Następnie należy wdrożyć
gpt-image-1
model lubdalle3
przy użyciu zasobu platformy Azure. Aby uzyskać więcej informacji, zobacz Tworzenie zasobu i wdrażanie modelu za pomocą usługi Azure OpenAI.
Konfiguracja
Pobierz klucz i punkt końcowy
Aby pomyślnie wywołać interfejsy API usługi Azure OpenAI, potrzebne są następujące informacje dotyczące zasobu usługi Azure OpenAI:
Zmienna | Nazwa | Wartość |
---|---|---|
Punkt końcowy | api_base |
Wartość punktu końcowego znajduje się w obszarze Klucze i punkt końcowy zasobu w witrynie Azure Portal. Punkt końcowy można również znaleźć na stronie Wdrożenia w portalu usługi Azure AI Foundry. Przykładowy punkt końcowy to: https://docs-test-001.openai.azure.com/ . |
Klucz | api_key |
Wartość klucza znajduje się również w sekcji Klucze i punkt końcowy dla twojego zasobu w portalu Azure. Platforma Azure generuje dwa klucze dla zasobu. Możesz użyć jednej z tych wartości. |
Przejdź do zasobu w witrynie Azure Portal. W okienku nawigacji wybierz pozycję Klucze i punkt końcowy w obszarze Zarządzanie zasobami. Skopiuj wartość Punkt końcowy i wartość klucza dostępu. Możesz użyć wartości KLUCZ 1 lub wartości KLUCZ 2. Zawsze posiadanie dwóch kluczy umożliwia bezpieczne obracanie i ponowne generowanie kluczy bez powodowania zakłóceń usługi.
Zmienne środowiskowe
Tworzenie i przypisywanie trwałych zmiennych środowiskowych dla klucza i punktu końcowego.
Ważne
Zalecamy uwierzytelnianie za pomocą identyfikatora Entra firmy Microsoft z tożsamościami zarządzanymi dla zasobów platformy Azure , aby uniknąć przechowywania poświadczeń przy użyciu aplikacji uruchamianych w chmurze.
Używaj kluczy interfejsu API z ostrożnością. Nie dołączaj klucza interfejsu API bezpośrednio do kodu i nigdy nie publikuj go publicznie. Jeśli używasz kluczy interfejsu API, przechowuj je bezpiecznie w usłudze Azure Key Vault, regularnie wymieniaj klucze i ograniczaj dostęp do usługi Azure Key Vault przy użyciu kontroli dostępu opartej na rolach i ograniczeń dostępu do sieci. Aby uzyskać więcej informacji na temat bezpiecznego używania kluczy interfejsu API w aplikacjach, zobacz Klucze interfejsu API w usłudze Azure Key Vault.
Aby uzyskać więcej informacji na temat zabezpieczeń usług sztucznej inteligencji, zobacz Uwierzytelnianie żądań w usługach Azure AI.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Tworzenie nowej aplikacji w języku Python
Utwórz nowy plik w języku Python o nazwie quickstart.py. Otwórz nowy plik w preferowanym edytorze lub środowisku IDE.
Zastąp zawartość quickstart.py poniższym kodem. Zmień wartość
prompt
na preferowany tekst.deployment
Ustaw również nazwę wdrożenia wybraną podczas wdrażania modelu GPT-image-1.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")
Skrypt wykonuje synchroniczne wywołanie interfejsu API generowania obrazów.
Ważne
Pamiętaj, aby usunąć klucz z kodu po zakończeniu i nigdy nie publikować klucza publicznie. W środowisku produkcyjnym należy użyć bezpiecznego sposobu przechowywania poświadczeń i uzyskiwania do nich dostępu. Aby uzyskać więcej informacji, zobacz Azure Key Vault.
Uruchom aplikację za pomocą polecenia
python
.python quickstart.py
Poczekaj chwilę, aby uzyskać odpowiedź.
Wynik
Dane wyjściowe z pomyślnego wywołania interfejsu API generowania obrazów wyglądają jak w poniższym przykładzie. Pole url
zawiera adres URL, pod którym można pobrać wygenerowany obraz. Adres URL pozostaje aktywny przez 24 godziny.
{
"created": 1698116662,
"data": [
{
"url": "<URL_to_generated_image>",
"revised_prompt": "<prompt_that_was_used>"
}
]
}
Interfejsy API obrazów mają filtr moderowania zawartości. Jeśli usługa rozpoznaje monit jako szkodliwą zawartość, nie generuje obrazu. Aby uzyskać więcej informacji, zobacz Filtrowanie zawartości. Przykłady odpowiedzi na błędy można znaleźć w przewodniku z instrukcjami generowania obrazów.
System zwraca stan operacji Failed
, a wartość error.code
w komunikacie jest ustawiona na contentFilter
. Oto przykład:
{
"created": 1698435368,
"error":
{
"code": "contentFilter",
"message": "Your task failed as a result of our safety system."
}
}
Możliwe jest również, że wygenerowany obraz jest filtrowany. W takim przypadku komunikat o błędzie jest ustawiony na Generated image was filtered as a result of our safety system.
. Oto przykład:
{
"created": 1698435368,
"error":
{
"code": "contentFilter",
"message": "Generated image was filtered as a result of our safety system."
}
}
Uprzątnij zasoby
Jeśli chcesz wyczyścić i usunąć zasób usługi Azure OpenAI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Dalsze kroki
- Zapoznaj się z interfejsami API obrazów bardziej szczegółowo, zapoznaj się z przewodnikiem z instrukcjami dotyczącymi interfejsu API obrazów.
- Wypróbuj przykłady dostępne w repozytorium GitHub Azure OpenAI Samples.
- Zobacz dokumentację interfejsu API
Skorzystaj z tego przewodnika, aby rozpocząć generowanie obrazów za pomocą zestawu Azure OpenAI SDK dla języka Python.
Kod źródłowy biblioteki | Pakiet | Przykłady
Wymagania wstępne
- Subskrypcja platformy Azure. Utwórz je bezpłatnie.
- Python 3.8 lub nowszy.
- Zasób usługi Azure OpenAI utworzony w zgodnym regionie. Zobacz Dostępność regionów.
- Następnie należy wdrożyć
dalle3
model przy użyciu zasobu platformy Azure. Aby uzyskać więcej informacji, zobacz Tworzenie zasobu i wdrażanie modelu za pomocą usługi Azure OpenAI.
Konfiguracja
Pobierz klucz i punkt końcowy
Aby pomyślnie wywołać interfejsy API usługi Azure OpenAI, potrzebne są następujące informacje dotyczące zasobu usługi Azure OpenAI:
Zmienna | Nazwa | Wartość |
---|---|---|
Punkt końcowy | api_base |
Wartość punktu końcowego znajduje się w obszarze Klucze i punkt końcowy zasobu w witrynie Azure Portal. Punkt końcowy można również znaleźć na stronie Wdrożenia w portalu usługi Azure AI Foundry. Przykładowy punkt końcowy to: https://docs-test-001.openai.azure.com/ . |
Klucz | api_key |
Wartość klucza znajduje się również w sekcji Klucze i punkt końcowy dla twojego zasobu w portalu Azure. Platforma Azure generuje dwa klucze dla zasobu. Możesz użyć jednej z tych wartości. |
Przejdź do zasobu w witrynie Azure Portal. W okienku nawigacji wybierz pozycję Klucze i punkt końcowy w obszarze Zarządzanie zasobami. Skopiuj wartość Punkt końcowy i wartość klucza dostępu. Możesz użyć wartości KLUCZ 1 lub wartości KLUCZ 2. Zawsze posiadanie dwóch kluczy umożliwia bezpieczne obracanie i ponowne generowanie kluczy bez powodowania zakłóceń usługi.
Zmienne środowiskowe
Tworzenie i przypisywanie trwałych zmiennych środowiskowych dla klucza i punktu końcowego.
Ważne
Zalecamy uwierzytelnianie za pomocą identyfikatora Entra firmy Microsoft z tożsamościami zarządzanymi dla zasobów platformy Azure , aby uniknąć przechowywania poświadczeń przy użyciu aplikacji uruchamianych w chmurze.
Używaj kluczy interfejsu API z ostrożnością. Nie dołączaj klucza interfejsu API bezpośrednio do kodu i nigdy nie publikuj go publicznie. Jeśli używasz kluczy interfejsu API, przechowuj je bezpiecznie w usłudze Azure Key Vault, regularnie wymieniaj klucze i ograniczaj dostęp do usługi Azure Key Vault przy użyciu kontroli dostępu opartej na rolach i ograniczeń dostępu do sieci. Aby uzyskać więcej informacji na temat bezpiecznego używania kluczy interfejsu API w aplikacjach, zobacz Klucze interfejsu API w usłudze Azure Key Vault.
Aby uzyskać więcej informacji na temat zabezpieczeń usług sztucznej inteligencji, zobacz Uwierzytelnianie żądań w usługach Azure AI.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Instalowanie zestawu SDK języka Python
Otwórz wiersz polecenia i przejdź do folderu projektu. Zainstaluj zestaw SDK języka Python openAI przy użyciu następującego polecenia:
pip install openai
Zainstaluj również następujące biblioteki:
pip install requests
pip install pillow
Generowanie obrazów przy użyciu języka DALL-E
Utwórz nowy plik python, quickstart.py. Otwórz go w preferowanym edytorze lub środowisku IDE.
Zastąp zawartość quickstart.py poniższym kodem.
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()
- Wprowadź adres URL i klucz punktu końcowego w odpowiednich polach.
- Zmień wartość
prompt
na preferowany tekst. - Zmień wartość
model
na nazwę wdrożonego modelu DALL-E 3.
Ważne
Pamiętaj, aby usunąć klucz z kodu po zakończeniu i nigdy nie publikować klucza publicznie. W środowisku produkcyjnym należy użyć bezpiecznego sposobu przechowywania poświadczeń i uzyskiwania do nich dostępu. Aby uzyskać więcej informacji, zobacz Azure Key Vault.
Uruchom aplikację za pomocą polecenia python
.
python quickstart.py
Poczekaj chwilę, aby uzyskać odpowiedź.
Wynik
Usługa Azure OpenAI przechowuje obraz wyjściowy w pliku generated_image.png w określonym katalogu. Skrypt wyświetla również obraz w domyślnej przeglądarce obrazów.
Interfejsy API obrazów mają filtr moderowania zawartości. Jeśli usługa rozpoznaje monit jako szkodliwą zawartość, nie generuje obrazu. Aby uzyskać więcej informacji, zobacz Filtrowanie zawartości.
Uprzątnij zasoby
Jeśli chcesz wyczyścić i usunąć zasób usługi Azure OpenAI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Dalsze kroki
- Zapoznaj się z interfejsami API obrazów bardziej szczegółowo, zapoznaj się z przewodnikiem z instrukcjami dotyczącymi interfejsu API obrazów.
- Wypróbuj przykłady dostępne w repozytorium GitHub Azure OpenAI Samples.
- Zobacz dokumentację interfejsu API
Skorzystaj z tego przewodnika, aby rozpocząć generowanie obrazów za pomocą zestawu Azure OpenAI SDK dla języka C#.
Kod źródłowy biblioteki | Pakiet (NuGet) | Przykłady
Wymagania wstępne
- Subskrypcja platformy Azure - Utwórz ją za darmo
- Zestaw SDK .NET 7
- Zasób usługi Azure OpenAI utworzony w obsługiwanym regionie (zobacz Dostępność regionów). Aby uzyskać więcej informacji, zobacz Tworzenie zasobu i wdrażanie modelu za pomocą usługi Azure OpenAI.
Wymagania wstępne dotyczące Microsoft Entra ID
W przypadku zalecanego uwierzytelniania bez klucza za pomocą identyfikatora Entra firmy Microsoft należy wykonać następujące czynności:
- Zainstaluj Azure CLI używane do uwierzytelniania bezkluczowego za pomocą Microsoft Entra ID.
-
Cognitive Services User
Przypisz rolę do konta użytkownika. Role można przypisać w portalu Azure w sekcji Kontrola dostępu (IAM)>Dodawanie przypisania roli.
Ustawienia
Utwórz nowy folder
vision-quickstart
i przejdź do folderu Szybki start za pomocą następującego polecenia:mkdir vision-quickstart && cd vision-quickstart
Utwórz nową aplikację konsolową za pomocą następującego polecenia:
dotnet new console
Zainstaluj bibliotekę klienta OpenAI .NET za pomocą polecenia dotnet add package:
dotnet add package Azure.AI.OpenAI --version 1.0.0-beta.6
Aby uzyskać zalecane uwierzytelnianie bez klucza za pomocą identyfikatora Entra firmy Microsoft, zainstaluj pakiet Azure.Identity za pomocą polecenia:
dotnet add package Azure.Identity
Aby uzyskać zalecane uwierzytelnianie bez klucza przy użyciu identyfikatora Entra firmy Microsoft, zaloguj się na platformie Azure za pomocą następującego polecenia:
az login
Pobieranie informacji o zasobie
Aby uwierzytelnić aplikację przy użyciu zasobu usługi Azure OpenAI, musisz pobrać następujące informacje:
Nazwa zmiennej | Wartość |
---|---|
AZURE_OPENAI_ENDPOINT |
Tę wartość można znaleźć w sekcji Klucze i punkt końcowy podczas badania zasobu w witrynie Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Ta wartość będzie odpowiadać nazwie niestandardowej, którą wybrałeś dla swojego wdrożenia podczas wdrażania modelu. Tę wartość można znaleźć w obszarze Wdrożenia modelu zarządzania>zasobami w witrynie Azure Portal. |
OPENAI_API_VERSION |
Dowiedz się więcej o wersjach interfejsu API. Możesz zmienić wersję w kodzie lub użyć zmiennej środowiskowej. |
Dowiedz się więcej na temat uwierzytelniania bez klucza i ustawiania zmiennych środowiskowych.
Uruchom szybki start
Przykładowy kod w tym przewodniku szybkiego startu używa Microsoft Entra ID do zalecanego uwierzytelniania bezkluczykowego. Jeśli wolisz użyć klucza interfejsu API, możesz zastąpić obiekt DefaultAzureCredential
obiektem AzureKeyCredential
.
AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
Aby uruchomić szybki start, wykonaj następujące kroki:
Zastąp zawartość
Program.cs
poniższym kodem i zaktualizuj wartości symboli zastępczych własnymi.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);
Uruchom aplikację przy użyciu
dotnet run
polecenia lub przycisku Uruchom w górnej części programu Visual Studio:dotnet run
Wynik
Adres URL wygenerowanego obrazu jest wyświetlany w konsoli.
<SAS URL>
Uwaga / Notatka
Interfejsy API obrazów mają filtr moderowania zawartości. Jeśli usługa rozpozna monit jako szkodliwą zawartość, nie zwróci wygenerowanego obrazu. Aby uzyskać więcej informacji, zobacz artykuł dotyczący filtru zawartości.
Uprzątnij zasoby
Jeśli chcesz wyczyścić i usunąć zasób usługi Azure OpenAI, możesz usunąć zasób. Przed usunięciem zasobu należy najpierw usunąć wszystkie wdrożone modele.
Dalsze kroki
- Zapoznaj się z interfejsami API obrazów bardziej szczegółowo, zapoznaj się z przewodnikiem z instrukcjami dotyczącymi interfejsu API obrazów.
- Aby uzyskać więcej przykładów, zapoznaj się z repozytorium GitHub przykładów usługi Azure OpenAI.
Skorzystaj z tego przewodnika, aby rozpocząć generowanie obrazów za pomocą zestawu Azure OpenAI SDK dla języka Java.
Kod źródłowy biblioteki | Artefakt (Maven) | Przykłady
Wymagania wstępne
- Subskrypcja platformy Azure - Utwórz ją za darmo
- Bieżąca wersja zestawu Java Development Kit (JDK)
- Zainstaluj narzędzie Apache Maven.
- Zasób usługi Azure OpenAI utworzony w obsługiwanym regionie (zobacz Dostępność regionów). Aby uzyskać więcej informacji, zobacz Tworzenie zasobu i wdrażanie modelu za pomocą usługi Azure OpenAI.
Wymagania wstępne dotyczące Microsoft Entra ID
W przypadku zalecanego uwierzytelniania bez klucza za pomocą identyfikatora Entra firmy Microsoft należy wykonać następujące czynności:
- Zainstaluj Azure CLI używane do uwierzytelniania bezkluczowego za pomocą Microsoft Entra ID.
-
Cognitive Services User
Przypisz rolę do konta użytkownika. Role można przypisać w portalu Azure w sekcji Kontrola dostępu (IAM)>Dodawanie przypisania roli.
Ustawienia
Utwórz nowy folder
vision-quickstart
i przejdź do folderu Szybki start za pomocą następującego polecenia:mkdir vision-quickstart && cd vision-quickstart
Zainstaluj narzędzie Apache Maven. Następnie uruchom polecenie
mvn -v
, aby potwierdzić pomyślną instalację.Utwórz nowy
pom.xml
plik w katalogu głównym projektu i skopiuj do niego następujący kod:<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>
Zainstaluj zestaw developerski Azure OpenAI SDK oraz zależności.
mvn clean dependency:copy-dependencies
Aby uzyskać zalecane uwierzytelnianie bez klucza przy użyciu identyfikatora Entra firmy Microsoft, zaloguj się na platformie Azure za pomocą następującego polecenia:
az login
Pobieranie informacji o zasobie
Aby uwierzytelnić aplikację przy użyciu zasobu usługi Azure OpenAI, musisz pobrać następujące informacje:
Nazwa zmiennej | Wartość |
---|---|
AZURE_OPENAI_ENDPOINT |
Tę wartość można znaleźć w sekcji Klucze i punkt końcowy podczas badania zasobu w witrynie Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Ta wartość będzie odpowiadać nazwie niestandardowej, którą wybrałeś dla swojego wdrożenia podczas wdrażania modelu. Tę wartość można znaleźć w obszarze Wdrożenia modelu zarządzania>zasobami w witrynie Azure Portal. |
OPENAI_API_VERSION |
Dowiedz się więcej o wersjach interfejsu API. Możesz zmienić wersję w kodzie lub użyć zmiennej środowiskowej. |
Dowiedz się więcej na temat uwierzytelniania bez klucza i ustawiania zmiennych środowiskowych.
Uruchom aplikację
Przykładowy kod w tym przewodniku szybkiego startu używa Microsoft Entra ID do zalecanego uwierzytelniania bezkluczykowego. Jeśli wolisz użyć klucza interfejsu API, możesz zastąpić obiekt DefaultAzureCredential
obiektem AzureKeyCredential
.
OpenAIAsyncClient client = new OpenAIClientBuilder()
.endpoint(endpoint)
.credential(new DefaultAzureCredentialBuilder().build())
.buildAsyncClient();
Wykonaj następujące kroki, aby utworzyć aplikację konsolową do rozpoznawania mowy.
Utwórz nowy plik o nazwie Quickstart.java w tym samym katalogu głównym projektu.
Skopiuj następujący kod do Quickstart.java:
import com.azure.ai.openai.OpenAIAsyncClient; import com.azure.ai.openai.OpenAIClientBuilder; import com.azure.ai.openai.models.ImageGenerationOptions; import com.azure.ai.openai.models.ImageLocation; import com.azure.core.credential.AzureKeyCredential; import com.azure.core.models.ResponseError; import java.util.concurrent.TimeUnit; public class Quickstart { public static void main(String[] args) throws InterruptedException { String endpoint = System.getenv("AZURE_OPENAI_ENDPOINT"); // Use the recommended keyless credential instead of the AzureKeyCredential credential. OpenAIAsyncClient client = new OpenAIClientBuilder() .endpoint(endpoint) .credential(new DefaultAzureCredentialBuilder().build()) .buildAsyncClient(); ImageGenerationOptions imageGenerationOptions = new ImageGenerationOptions( "A drawing of the Seattle skyline in the style of Van Gogh"); client.getImages(imageGenerationOptions).subscribe( images -> { for (ImageLocation imageLocation : images.getData()) { ResponseError error = imageLocation.getError(); if (error != null) { System.out.printf("Image generation operation failed. Error code: %s, error message: %s.%n", error.getCode(), error.getMessage()); } else { System.out.printf( "Image location URL that provides temporary access to download the generated image is %s.%n", imageLocation.getUrl()); } } }, error -> System.err.println("There was an error getting images." + error), () -> System.out.println("Completed getImages.")); // The .subscribe() creation and assignment isn't a blocking call. // The thread sleeps so the program does not end before the send operation is complete. // Use .block() instead of .subscribe() for a synchronous call. TimeUnit.SECONDS.sleep(10); } }
Uruchom nową aplikację konsolową, aby wygenerować obraz:
javac Quickstart.java -cp ".;target\dependency\*" java -cp ".;target\dependency\*" Quickstart
Wynik
Adres URL wygenerowanego obrazu jest wyświetlany w konsoli.
Image location URL that provides temporary access to download the generated image is <SAS URL>.
Completed getImages.
Uwaga / Notatka
Interfejsy API obrazów mają filtr moderowania zawartości. Jeśli usługa rozpozna monit jako szkodliwą zawartość, nie zwróci wygenerowanego obrazu. Aby uzyskać więcej informacji, zobacz artykuł dotyczący filtru zawartości.
Uprzątnij zasoby
Jeśli chcesz wyczyścić i usunąć zasób usługi Azure OpenAI, możesz usunąć zasób. Przed usunięciem zasobu należy najpierw usunąć wszystkie wdrożone modele.
Dalsze kroki
- Zapoznaj się z interfejsami API obrazów bardziej szczegółowo, zapoznaj się z przewodnikiem z instrukcjami dotyczącymi interfejsu API obrazów.
- Aby uzyskać więcej przykładów, zapoznaj się z repozytorium GitHub przykładów usługi Azure OpenAI
Skorzystaj z tego przewodnika, aby rozpocząć generowanie obrazów za pomocą zestawu Azure OpenAI SDK dla języka JavaScript.
Dokumentacja referencyjna | Kod źródłowy | Pakiet (npm) | Przykłady
Wymagania wstępne
- Subskrypcja platformy Azure - Utwórz ją za darmo
- Wersje LTS systemu Node.js
- Interfejs wiersza polecenia platformy Azure używany do uwierzytelniania bez hasła w lokalnym środowisku projektowym, utwórz niezbędny kontekst, logując się przy użyciu interfejsu wiersza polecenia platformy Azure.
- Zasób usługi Azure OpenAI utworzony w obsługiwanym regionie (zobacz Dostępność regionów). Aby uzyskać więcej informacji, zobacz Tworzenie zasobu i wdrażanie modelu za pomocą usługi Azure OpenAI.
Wymagania wstępne dotyczące Microsoft Entra ID
W przypadku zalecanego uwierzytelniania bez klucza za pomocą identyfikatora Entra firmy Microsoft należy wykonać następujące czynności:
- Zainstaluj Azure CLI używane do uwierzytelniania bezkluczowego za pomocą Microsoft Entra ID.
-
Cognitive Services User
Przypisz rolę do konta użytkownika. Role można przypisać w portalu Azure w sekcji Kontrola dostępu (IAM)>Dodawanie przypisania roli.
Ustawienia
Utwórz nowy folder
image-quickstart
i przejdź do folderu Szybki start za pomocą następującego polecenia:mkdir image-quickstart && cd image-quickstart
Utwórz element
package.json
za pomocą następującego polecenia:npm init -y
Zainstaluj bibliotekę klienta openAI dla języka JavaScript za pomocą następujących narzędzi:
npm install openai
W przypadku zalecanego uwierzytelniania bez hasła:
npm install @azure/identity
Pobieranie informacji o zasobie
Aby uwierzytelnić aplikację przy użyciu zasobu usługi Azure OpenAI, musisz pobrać następujące informacje:
Nazwa zmiennej | Wartość |
---|---|
AZURE_OPENAI_ENDPOINT |
Tę wartość można znaleźć w sekcji Klucze i punkt końcowy podczas badania zasobu w witrynie Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Ta wartość będzie odpowiadać nazwie niestandardowej, którą wybrałeś dla swojego wdrożenia podczas wdrażania modelu. Tę wartość można znaleźć w obszarze Wdrożenia modelu zarządzania>zasobami w witrynie Azure Portal. |
OPENAI_API_VERSION |
Dowiedz się więcej o wersjach interfejsu API. Możesz zmienić wersję w kodzie lub użyć zmiennej środowiskowej. |
Dowiedz się więcej na temat uwierzytelniania bez klucza i ustawiania zmiennych środowiskowych.
Ostrzeżenie
Aby użyć zalecanego uwierzytelniania bez klucza z zestawem SDK, upewnij się, że zmienna AZURE_OPENAI_API_KEY
środowiskowa nie jest ustawiona.
Generowanie obrazów przy użyciu języka DALL-E
index.js
Utwórz plik przy użyciu następującego kodu: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); });
Zaloguj się do platformy Azure przy użyciu następującego polecenia:
az login
Uruchom plik JavaScript.
node index.js
Wynik
Adres URL wygenerowanego obrazu jest wyświetlany w konsoli.
== Batch Image Generation ==
Image generation result URL: <SAS URL>
Image generation result URL: <SAS URL>
Uwaga / Notatka
Interfejsy API obrazów mają filtr moderowania zawartości. Jeśli usługa rozpozna monit jako szkodliwą zawartość, nie zwróci wygenerowanego obrazu. Aby uzyskać więcej informacji, zobacz artykuł dotyczący filtru zawartości.
Uprzątnij zasoby
Jeśli chcesz wyczyścić i usunąć zasób usługi Azure OpenAI, możesz usunąć zasób. Przed usunięciem zasobu należy najpierw usunąć wszystkie wdrożone modele.
Dalsze kroki
- Zapoznaj się z interfejsami API obrazów bardziej szczegółowo, zapoznaj się z przewodnikiem z instrukcjami dotyczącymi interfejsu API obrazów.
- Aby uzyskać więcej przykładów, zapoznaj się z repozytorium GitHub przykładów usługi Azure OpenAI.
Skorzystaj z tego przewodnika, aby rozpocząć generowanie obrazów za pomocą zestawu Azure OpenAI SDK dla języka JavaScript.
Dokumentacja referencyjna | Kod źródłowy | Pakiet (npm) | Przykłady
Wymagania wstępne
- Subskrypcja platformy Azure - Utwórz ją za darmo
- Wersje LTS systemu Node.js
- TypeScript
- Interfejs wiersza polecenia platformy Azure używany do uwierzytelniania bez hasła w lokalnym środowisku projektowym, utwórz niezbędny kontekst, logując się przy użyciu interfejsu wiersza polecenia platformy Azure.
- Zasób usługi Azure OpenAI utworzony w obsługiwanym regionie (zobacz Dostępność regionów). Aby uzyskać więcej informacji, zobacz Tworzenie zasobu i wdrażanie modelu za pomocą usługi Azure OpenAI.
Wymagania wstępne dotyczące Microsoft Entra ID
W przypadku zalecanego uwierzytelniania bez klucza za pomocą identyfikatora Entra firmy Microsoft należy wykonać następujące czynności:
- Zainstaluj Azure CLI używane do uwierzytelniania bezkluczowego za pomocą Microsoft Entra ID.
-
Cognitive Services User
Przypisz rolę do konta użytkownika. Role można przypisać w portalu Azure w sekcji Kontrola dostępu (IAM)>Dodawanie przypisania roli.
Ustawienia
Utwórz nowy folder
image-quickstart
i przejdź do folderu Szybki start za pomocą następującego polecenia:mkdir image-quickstart && cd image-quickstart
Utwórz element
package.json
za pomocą następującego polecenia:npm init -y
Zaktualizuj
package.json
do ECMAScript za pomocą następującego polecenia:npm pkg set type=module
Zainstaluj bibliotekę klienta openAI dla języka JavaScript za pomocą następujących narzędzi:
npm install openai
W przypadku zalecanego uwierzytelniania bez hasła:
npm install @azure/identity
Pobieranie informacji o zasobie
Aby uwierzytelnić aplikację przy użyciu zasobu usługi Azure OpenAI, musisz pobrać następujące informacje:
Nazwa zmiennej | Wartość |
---|---|
AZURE_OPENAI_ENDPOINT |
Tę wartość można znaleźć w sekcji Klucze i punkt końcowy podczas badania zasobu w witrynie Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Ta wartość będzie odpowiadać nazwie niestandardowej, którą wybrałeś dla swojego wdrożenia podczas wdrażania modelu. Tę wartość można znaleźć w obszarze Wdrożenia modelu zarządzania>zasobami w witrynie Azure Portal. |
OPENAI_API_VERSION |
Dowiedz się więcej o wersjach interfejsu API. Możesz zmienić wersję w kodzie lub użyć zmiennej środowiskowej. |
Dowiedz się więcej na temat uwierzytelniania bez klucza i ustawiania zmiennych środowiskowych.
Ostrzeżenie
Aby użyć zalecanego uwierzytelniania bez klucza z zestawem SDK, upewnij się, że zmienna AZURE_OPENAI_API_KEY
środowiskowa nie jest ustawiona.
Generowanie obrazów przy użyciu języka DALL-E
index.ts
Utwórz plik przy użyciu następującego kodu: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); });
Utwórz plik
tsconfig.json
do transpilacji kodu TypeScript i skopiuj następujący kod dla ECMAScript.{ "compilerOptions": { "module": "NodeNext", "target": "ES2022", // Supports top-level await "moduleResolution": "NodeNext", "skipLibCheck": true, // Avoid type errors from node_modules "strict": true // Enable strict type-checking options }, "include": ["*.ts"] }
Transpiluj z języka TypeScript do języka JavaScript.
tsc
Zaloguj się do platformy Azure przy użyciu następującego polecenia:
az login
Uruchom kod za pomocą następującego polecenia:
node index.js
Wynik
Adres URL wygenerowanego obrazu jest wyświetlany w konsoli.
== Batch Image Generation ==
Image generation result URL: <SAS URL>
Image generation result URL: <SAS URL>
Uwaga / Notatka
Interfejsy API obrazów mają filtr moderowania zawartości. Jeśli usługa rozpozna monit jako szkodliwą zawartość, nie zwróci wygenerowanego obrazu. Aby uzyskać więcej informacji, zobacz artykuł dotyczący filtru zawartości.
Uprzątnij zasoby
Jeśli chcesz wyczyścić i usunąć zasób usługi Azure OpenAI, możesz usunąć zasób. Przed usunięciem zasobu należy najpierw usunąć wszystkie wdrożone modele.
Dalsze kroki
- Zapoznaj się z interfejsami API obrazów bardziej szczegółowo, zapoznaj się z przewodnikiem z instrukcjami dotyczącymi interfejsu API obrazów.
- Aby uzyskać więcej przykładów, zapoznaj się z repozytorium GitHub przykładów usługi Azure OpenAI.
Skorzystaj z tego przewodnika, aby rozpocząć generowanie obrazów za pomocą zestawu Azure OpenAI SDK dla języka Go.
Kod źródłowy biblioteki | Pakiet | Przykłady
Wymagania wstępne
- Subskrypcja platformy Azure - Utwórz ją za darmo
- Przejdź do wersji 1.8 lub nowszej
- Zasób usługi Azure OpenAI utworzony w obsługiwanym regionie (zobacz Dostępność regionów). Aby uzyskać więcej informacji, zobacz Tworzenie zasobu i wdrażanie modelu za pomocą usługi Azure OpenAI.
Wymagania wstępne dotyczące Microsoft Entra ID
W przypadku zalecanego uwierzytelniania bez klucza za pomocą identyfikatora Entra firmy Microsoft należy wykonać następujące czynności:
- Zainstaluj Azure CLI używane do uwierzytelniania bezkluczowego za pomocą Microsoft Entra ID.
-
Cognitive Services User
Przypisz rolę do konta użytkownika. Role można przypisać w portalu Azure w sekcji Kontrola dostępu (IAM)>Dodawanie przypisania roli.
Ustawienia
Utwórz nowy folder
dall-e-quickstart
i przejdź do folderu Szybki start za pomocą następującego polecenia:mkdir dall-e-quickstart && cd dall-e-quickstart
Aby uzyskać zalecane uwierzytelnianie bez klucza przy użyciu identyfikatora Entra firmy Microsoft, zaloguj się na platformie Azure za pomocą następującego polecenia:
az login
Pobieranie informacji o zasobie
Aby uwierzytelnić aplikację przy użyciu zasobu usługi Azure OpenAI, musisz pobrać następujące informacje:
Nazwa zmiennej | Wartość |
---|---|
AZURE_OPENAI_ENDPOINT |
Tę wartość można znaleźć w sekcji Klucze i punkt końcowy podczas badania zasobu w witrynie Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Ta wartość będzie odpowiadać nazwie niestandardowej, którą wybrałeś dla swojego wdrożenia podczas wdrażania modelu. Tę wartość można znaleźć w obszarze Wdrożenia modelu zarządzania>zasobami w witrynie Azure Portal. |
OPENAI_API_VERSION |
Dowiedz się więcej o wersjach interfejsu API. Możesz zmienić wersję w kodzie lub użyć zmiennej środowiskowej. |
Dowiedz się więcej na temat uwierzytelniania bez klucza i ustawiania zmiennych środowiskowych.
Uruchom szybki start
Przykładowy kod w tym przewodniku szybkiego startu używa Microsoft Entra ID do zalecanego uwierzytelniania bezkluczykowego. Jeśli wolisz użyć klucza API, możesz zastąpić implementację NewDefaultAzureCredential
na NewKeyCredential
.
azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
credential, err := azidentity.NewDefaultAzureCredential(nil)
client, err := azopenai.NewClient(azureOpenAIEndpoint, credential, nil)
Aby uruchomić próbkę:
Utwórz nowy plik o nazwie quickstart.go. Skopiuj następujący kod do pliku quickstart.go .
package main import ( "context" "fmt" "net/http" "os" "log" "github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" ) func main() { azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT") modelDeploymentID := "dall-e-3" credential, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { log.Printf("ERROR: %s", err) return } client, err := azopenai.NewClient( azureOpenAIEndpoint, credential, nil) if err != nil { log.Printf("ERROR: %s", err) return } resp, err := client.GetImageGenerations(context.TODO(), azopenai.ImageGenerationOptions{ Prompt: to.Ptr("A painting of a cat in the style of Dali."), ResponseFormat: to.Ptr(azopenai.ImageGenerationResponseFormatURL), DeploymentName: to.Ptr(modelDeploymentID), }, nil) if err != nil { // Implement application specific error handling logic. log.Printf("ERROR: %s", err) return } for _, generatedImage := range resp.Data { // The underlying type for the generatedImage is determined by the value of // ImageGenerationOptions.ResponseFormat. // In this example we use `azopenai.ImageGenerationResponseFormatURL`, // so the underlying type will be ImageLocation. resp, err := http.Head(*generatedImage.URL) if err != nil { // Implement application specific error handling logic. log.Printf("ERROR: %s", err) return } fmt.Fprintf(os.Stderr, "Image generated, HEAD request on URL returned %d\nImage URL: %s\n", resp.StatusCode, *generatedImage.URL) } }
Uruchom następujące polecenie, aby utworzyć nowy moduł Języka Go:
go mod init quickstart.go
Uruchom
go mod tidy
, aby zainstalować wymagane zależności:go mod tidy
Uruchom następujące polecenie, aby uruchomić przykład:
go run quickstart.go
Wynik
Adres URL wygenerowanego obrazu jest wyświetlany w konsoli.
Image generated, HEAD request on URL returned 200
Image URL: <SAS URL>
Uwaga / Notatka
Interfejsy API obrazów mają filtr moderowania zawartości. Jeśli usługa rozpozna monit jako szkodliwą zawartość, nie zwróci wygenerowanego obrazu. Aby uzyskać więcej informacji, zobacz artykuł dotyczący filtru zawartości.
Uprzątnij zasoby
Jeśli chcesz wyczyścić i usunąć zasób usługi Azure OpenAI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Dalsze kroki
- Zapoznaj się z interfejsami API obrazów bardziej szczegółowo, zapoznaj się z przewodnikiem z instrukcjami dotyczącymi interfejsu API obrazów.
- Aby uzyskać więcej przykładów, zapoznaj się z repozytorium GitHub przykładów usługi Azure OpenAI.
Skorzystaj z tego przewodnika, aby rozpocząć wywoływanie interfejsu API generowania obrazów usługi Azure OpenAI w usłudze Azure AI Foundry Models za pomocą programu PowerShell.
Wymagania wstępne
- Subskrypcja platformy Azure. Utwórz je bezpłatnie.
- W tym zadaniu zalecana jest najnowsza wersja programu PowerShell 7, ponieważ w przykładach są używane nowe funkcje niedostępne w programie Windows PowerShell 5.1.
- Zasób usługi Azure OpenAI utworzony w obsługiwanym regionie (zobacz Dostępność regionów). Aby uzyskać więcej informacji, zobacz Tworzenie zasobu i wdrażanie modelu za pomocą usługi Azure OpenAI.
Wymagania wstępne dotyczące Microsoft Entra ID
W przypadku zalecanego uwierzytelniania bez klucza za pomocą identyfikatora Entra firmy Microsoft należy wykonać następujące czynności:
- Zainstaluj Azure CLI używane do uwierzytelniania bezkluczowego za pomocą Microsoft Entra ID.
-
Cognitive Services User
Przypisz rolę do konta użytkownika. Role można przypisać w portalu Azure w sekcji Kontrola dostępu (IAM)>Dodawanie przypisania roli.
Pobieranie informacji o zasobie
Aby uwierzytelnić aplikację przy użyciu zasobu usługi Azure OpenAI, musisz pobrać następujące informacje:
Nazwa zmiennej | Wartość |
---|---|
AZURE_OPENAI_ENDPOINT |
Tę wartość można znaleźć w sekcji Klucze i punkt końcowy podczas badania zasobu w witrynie Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Ta wartość będzie odpowiadać nazwie niestandardowej, którą wybrałeś dla swojego wdrożenia podczas wdrażania modelu. Tę wartość można znaleźć w obszarze Wdrożenia modelu zarządzania>zasobami w witrynie Azure Portal. |
OPENAI_API_VERSION |
Dowiedz się więcej o wersjach interfejsu API. Możesz zmienić wersję w kodzie lub użyć zmiennej środowiskowej. |
Dowiedz się więcej na temat uwierzytelniania bez klucza i ustawiania zmiennych środowiskowych.
Generowanie obrazów
Aby uzyskać zalecane uwierzytelnianie bez klucza przy użyciu identyfikatora Entra firmy Microsoft, zaloguj się na platformie Azure za pomocą następującego polecenia:
az login
Utwórz nowy plik programu PowerShell o nazwie quickstart.ps1. Następnie otwórz go w preferowanym edytorze lub środowisku IDE.
Zastąp zawartość pliku quickstart.ps1 następującym kodem. Wprowadź adres URL i klucz punktu końcowego w odpowiednich polach. Zmień wartość
prompt
na preferowany tekst.# 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
Ważne
W środowisku produkcyjnym użyj bezpiecznego sposobu przechowywania i uzyskiwania dostępu do poświadczeń, takich jak Zarządzanie wpisami tajnymi programu PowerShell za pomocą usługi Azure Key Vault. Aby uzyskać więcej informacji na temat zabezpieczeń poświadczeń, zobacz ten artykuł dotyczący zabezpieczeń .
Uruchom skrypt przy użyciu programu PowerShell:
./quickstart.ps1
Skrypt zapętla się do momentu, aż wygenerowany obraz będzie gotowy.
Wynik
Program PowerShell żąda obrazu z usługi Azure OpenAI i przechowuje obraz wyjściowy w pliku generated_image.png w określonym katalogu. Dla wygody pełna ścieżka pliku jest zwracana na końcu skryptu.
Interfejsy API obrazów mają filtr moderowania zawartości. Jeśli usługa rozpoznaje monit jako szkodliwą zawartość, nie generuje obrazu. Aby uzyskać więcej informacji, zobacz Filtrowanie zawartości.
Uprzątnij zasoby
Jeśli chcesz wyczyścić i usunąć zasób usługi Azure OpenAI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Dalsze kroki
- Zapoznaj się z interfejsami API obrazów bardziej szczegółowo, zapoznaj się z przewodnikiem z instrukcjami dotyczącymi interfejsu API obrazów.
- Wypróbuj przykłady dostępne w repozytorium GitHub Azure OpenAI Samples.