이 가이드를 사용하여 Python을 사용하여 Microsoft Foundry Models 이미지 생성 REST API에서 Azure OpenAI 호출을 시작합니다.
필수 조건
- Azure 구독. 체험 계정 만들기
- Python 3.8 이상 버전
- 설치된 Python 라이브러리는
os,requests,json입니다. - 지원되는 지역에서 만든 Azure OpenAI 리소스입니다. 지역 가용성을 참조하세요.
- 그런 다음 Azure 리소스를 사용하여
gpt-image-1-series 또는dalle3모델을 배포해야 합니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
설치 프로그램
키 및 엔드포인트 검색
Azure OpenAI API를 성공적으로 호출하려면 Azure OpenAI 리소스에 대한 다음 정보가 필요합니다.
| 변수 | 이름 | 가치 |
|---|---|---|
| 엔드포인트 | api_base |
엔드포인트 값은 Azure Portal에서 리소스에 대한 키 및 엔드포인트 아래에 있습니다. Foundry 포털의 배포 페이지를 통해 엔드포인트를 찾을 수도 있습니다. 예제 엔드포인트는 https://docs-test-001.openai.azure.com/입니다. |
| 키 | api_key |
키 값도 Azure Portal에서 리소스에 대한 키 및 엔드포인트 아래에 있습니다. Azure는 리소스에 대해 두 개의 키를 생성합니다. 둘 중 하나의 값을 사용할 수 있습니다. |
Azure Portal에서 해당 리소스로 이동합니다. 탐색 창의 리소스 관리 아래에서 키 및 엔드포인트를 선택합니다. 엔드포인트 값과 액세스 키 값을 복사합니다. 키 1 또는 키 2 값을 사용할 수 있습니다. 항상 두 개의 키를 사용하면 서비스 중단 없이 키를 안전하게 회전하고 다시 생성할 수 있습니다.
환경 변수
키 및 엔드포인트에 대한 영구 환경 변수를 만들고 할당합니다.
중요합니다
클라우드에서 실행되는 애플리케이션에 자격 증명을 저장하지 않으려면 Microsoft Entra ID 인증과 함께 Azure 리소스에 대한 관리 ID를 사용하는 것이 좋습니다.
주의해서 API 키를 사용합니다. API 키를 코드에 직접 포함하지 말고, 공개적으로 게시하지 마세요. API 키를 사용하는 경우 Azure Key Vault에 안전하게 저장하고, 정기적으로 키를 회전하고, 역할 기반 액세스 제어 및 네트워크 액세스 제한을 사용하여 Azure Key Vault에 대한 액세스를 제한합니다. 앱에서 API 키를 안전하게 사용하는 방법에 대한 자세한 내용은 Azure Key Vault를 사용하여 API 키를 참조하세요.
AI 서비스 보안에 대한 자세한 내용은 Azure AI 서비스에 대한 요청 인증을 참조하세요.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
새 Python 애플리케이션 만들기
quickstart.py라는 새 Python 파일을 만듭니다. 선호하는 편집기 또는 IDE에서 새 파일을 엽니다.
quickstart.py의 내용을 다음 코드로 바꿉니다.
prompt의 값을 원하는 텍스트로 변경합니다. 또한 GPT-image-1 모델을 배포할 때 선택한 배포 이름으로 설정합니다deployment.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")스크립트는 동기 이미지 생성 API 호출을 만듭니다.
중요합니다
완료되면 코드에서 키를 제거하고 공개적으로 키를 게시하지 마세요. 프로덕션의 경우 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 자세한 내용은 Azure Key Vault를 참조하세요.
python명령을 사용하여 애플리케이션을 실행합니다.python quickstart.py응답을 얻기 위해 잠시 기다립니다.
출력
성공적인 이미지 생성 API 호출의 출력은 다음 예제와 같습니다.
url 필드에는 생성된 이미지를 다운로드할 수 있는 URL가 포함되어 있습니다. URL은 24시간 동안 활성 상태로 유지됩니다.
{
"created": 1698116662,
"data": [
{
"url": "<URL_to_generated_image>",
"revised_prompt": "<prompt_that_was_used>"
}
]
}
이미지 API에는 콘텐츠 조정 필터가 함께 제공됩니다. 서비스에서 프롬프트를 유해한 콘텐츠로 인식하면 이미지를 생성하지 않습니다. 자세한 내용은 콘텐츠 필터링을 참조하세요. 오류 응답의 예는 이미지 생성 방법 가이드를 참조하세요.
시스템은 작업 상태를 Failed로 반환하고 error.code메시지의 값은 contentFilter로 설정됩니다. 예제는 다음과 같습니다.
{
"created": 1698435368,
"error":
{
"code": "contentFilter",
"message": "Your task failed as a result of our safety system."
}
}
생성된 이미지 자체가 필터링될 수도 있습니다. 이 경우 오류 메시지는 Generated image was filtered as a result of our safety system.로 설정됩니다. 예제는 다음과 같습니다.
{
"created": 1698435368,
"error":
{
"code": "contentFilter",
"message": "Generated image was filtered as a result of our safety system."
}
}
자원을 정리하세요
Azure OpenAI 리소스를 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제할 수 있습니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.
다음 단계
- Image API 방법 가이드를 사용하여 이미지 API를 좀 더 자세히 살펴봅니다.
- Azure OpenAI 샘플 GitHub 리포지토리에서 예제를 사용해 보세요.
- API 참조를 참조하세요.
이 가이드를 사용하여 Python용 Azure OpenAI SDK를 사용하여 이미지 생성을 시작합니다.
라이브러리 소스 코드 | 패키지 | 샘플
필수 조건
- Azure 구독. 체험 계정 만들기
- Python 3.8 이상 버전
- 호환되는 지역에서 만든 Azure OpenAI 리소스입니다. 지역 가용성을 참조하세요.
- 그런 다음, Azure 리소스를 사용하여
dalle3모델을 배포해야 합니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
설치 프로그램
키 및 엔드포인트 검색
Azure OpenAI API를 성공적으로 호출하려면 Azure OpenAI 리소스에 대한 다음 정보가 필요합니다.
| 변수 | 이름 | 가치 |
|---|---|---|
| 엔드포인트 | api_base |
엔드포인트 값은 Azure Portal에서 리소스에 대한 키 및 엔드포인트 아래에 있습니다. Microsoft Foundry 포털의 배포 페이지를 통해 엔드포인트를 찾을 수도 있습니다. 예제 엔드포인트는 https://docs-test-001.openai.azure.com/입니다. |
| 키 | api_key |
키 값도 Azure Portal에서 리소스에 대한 키 및 엔드포인트 아래에 있습니다. Azure는 리소스에 대해 두 개의 키를 생성합니다. 둘 중 하나의 값을 사용할 수 있습니다. |
Azure Portal에서 해당 리소스로 이동합니다. 탐색 창의 리소스 관리 아래에서 키 및 엔드포인트를 선택합니다. 엔드포인트 값과 액세스 키 값을 복사합니다. 키 1 또는 키 2 값을 사용할 수 있습니다. 항상 두 개의 키를 사용하면 서비스 중단 없이 키를 안전하게 회전하고 다시 생성할 수 있습니다.
환경 변수
키 및 엔드포인트에 대한 영구 환경 변수를 만들고 할당합니다.
중요합니다
클라우드에서 실행되는 애플리케이션에 자격 증명을 저장하지 않으려면 Microsoft Entra ID 인증과 함께 Azure 리소스에 대한 관리 ID를 사용하는 것이 좋습니다.
주의해서 API 키를 사용합니다. API 키를 코드에 직접 포함하지 말고, 공개적으로 게시하지 마세요. API 키를 사용하는 경우 Azure Key Vault에 안전하게 저장하고, 정기적으로 키를 회전하고, 역할 기반 액세스 제어 및 네트워크 액세스 제한을 사용하여 Azure Key Vault에 대한 액세스를 제한합니다. 앱에서 API 키를 안전하게 사용하는 방법에 대한 자세한 내용은 Azure Key Vault를 사용하여 API 키를 참조하세요.
AI 서비스 보안에 대한 자세한 내용은 Azure AI 서비스에 대한 요청 인증을 참조하세요.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Python SDK 설치
명령 프롬프트를 열고 프로젝트 폴더를 찾아봅니다. 다음 명령을 사용하여 OpenAI Python SDK를 설치합니다.
pip install openai
다음 라이브러리도 설치합니다.
pip install requests
pip install pillow
DALL-E를 사용하여 이미지 생성
quickstart.py라는 새 Python 파일을 만듭니다. 선호하는 편집기 또는 IDE에서 엽니다.
quickstart.py의 내용을 다음 코드로 바꿉니다.
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()
- 해당 필드에 엔드포인트 URL 및 키를 입력합니다.
-
prompt의 값을 원하는 텍스트로 변경합니다. -
model값을 배포된 DALL-E 3 모델의 이름으로 변경합니다.
중요합니다
완료되면 코드에서 키를 제거하고 공개적으로 키를 게시하지 마세요. 프로덕션의 경우 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 자세한 내용은 Azure Key Vault를 참조하세요.
python 명령을 사용하여 애플리케이션을 실행합니다.
python quickstart.py
응답을 얻기 위해 잠시 기다립니다.
출력
Azure OpenAI는 출력 이미지를 지정된 디렉터리의 generated_image.png 파일에 저장합니다. 또한 스크립트는 기본 이미지 뷰어에도 이미지를 표시합니다.
이미지 API에는 콘텐츠 조정 필터가 함께 제공됩니다. 서비스에서 프롬프트를 유해한 콘텐츠로 인식하면 이미지를 생성하지 않습니다. 자세한 내용은 콘텐츠 필터링을 참조하세요.
자원을 정리하세요
Azure OpenAI 리소스를 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제할 수 있습니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.
다음 단계
- Image API 방법 가이드를 사용하여 이미지 API를 좀 더 자세히 살펴봅니다.
- Azure OpenAI 샘플 GitHub 리포지토리에서 예제를 사용해 보세요.
- API 참조를 참조하세요.
이 가이드를 사용하여 C#용 Azure OpenAI SDK를 사용하여 이미지 생성을 시작합니다.
라이브러리 원본 코드 | 패키지(NuGet) | 샘플
필수 조건
- Azure 구독 - 무료로 생성하기
- .NET 7 SDK
- 지원되는 지역에서 만든 Azure OpenAI 리소스(지역 가용성 참조)입니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
Microsoft Entra ID 필수 구성 요소
Microsoft Entra ID를 사용하는 권장 키 없는 인증의 경우 다음을 수행해야 합니다.
- Microsoft Entra ID를 사용하여 키 없는 인증에 사용되는 Azure CLI 를 설치합니다.
- 사용자 계정에
Cognitive Services User역할을 할당합니다. Azure Portal의 액세스 제어(IAM)할 수 있습니다.
설정
새 폴더
vision-quickstart를 만들고 다음 명령을 사용하여 빠른 시작 폴더로 이동합니다.mkdir vision-quickstart && cd vision-quickstart다음 명령을 사용하여 새 콘솔 애플리케이션을 만듭니다.
dotnet new consoledotnet add package 명령을 사용하여 OpenAI .NET 클라이언트 라이브러리를 설치합니다.
dotnet add package Azure.AI.OpenAI --version 1.0.0-beta.6Microsoft Entra ID로 권장되는 키 없는 인증의 경우 다음을 사용하여 Azure.Identity 패키지를 설치합니다.
dotnet add package Azure.IdentityMicrosoft Entra ID로 권장되는 키 없는 인증의 경우 다음 명령을 사용하여 Azure에 로그인합니다.
az login
리소스 정보 검색
Azure OpenAI 리소스를 사용하여 애플리케이션을 인증하려면 다음 정보를 검색해야 합니다.
| 변수 이름 | 가치 |
|---|---|
AZURE_OPENAI_ENDPOINT |
이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. |
AZURE_OPENAI_DEPLOYMENT_NAME |
이 값은 모델을 배포할 때 배포에 대해 선택한 사용자 지정 이름에 해당합니다. 이 값은 Azure Portal의 리소스 관리>에서 찾을 수 있습니다. |
빠른 시작 실행
이 빠른 시작의 샘플 코드는 권장되는 키 없는 인증에 Microsoft Entra ID를 사용합니다. API 키를 사용하려는 경우 개체를 DefaultAzureCredential 개체로 AzureKeyCredential 바꿀 수 있습니다.
AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
빠른 시작을 실행하려면 다음 단계를 수행합니다.
내용을
Program.cs다음 코드로 바꾸고 자리 표시자 값을 사용자 고유의 값으로 업데이트합니다.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);Visual Studio 맨 위에 있는
dotnet run명령 또는 실행 단추를 사용하여 애플리케이션을 실행합니다.dotnet run
출력
생성된 이미지의 URL이 콘솔에 인쇄됩니다.
<SAS URL>
비고
이미지 API에는 콘텐츠 조정 필터가 함께 제공됩니다. 서비스가 프롬프트를 유해한 콘텐츠로 인식하면 생성된 이미지를 반환하지 않습니다. 자세한 내용은 콘텐츠 필터 문서를 참조하세요.
자원을 정리하세요
Azure OpenAI 리소스를 정리하고 제거하려면 해당 리소스를 삭제할 수 있습니다. 리소스를 삭제하기 전에 먼저 배포된 모델을 삭제해야 합니다.
다음 단계
- Image API 방법 가이드를 사용하여 이미지 API를 좀 더 자세히 살펴봅니다.
- 더 많은 예제를 보려면 Azure OpenAI 샘플 GitHub 리포지토리를 체크 아웃합니다.
이 가이드를 사용하여 Java용 Azure OpenAI SDK를 사용하여 이미지 생성을 시작합니다.
라이브러리 원본 코드 | 아티팩트(Maven) | 샘플
필수 조건
- Azure 구독 - 무료로 생성하기
- JDK(Java Development Kit)의 현재 버전
- Apache Maven을 설치합니다.
- 지원되는 지역에서 만든 Azure OpenAI 리소스(지역 가용성 참조)입니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
Microsoft Entra ID 필수 구성 요소
Microsoft Entra ID를 사용하는 권장 키 없는 인증의 경우 다음을 수행해야 합니다.
- Microsoft Entra ID를 사용하여 키 없는 인증에 사용되는 Azure CLI 를 설치합니다.
- 사용자 계정에
Cognitive Services User역할을 할당합니다. Azure Portal의 액세스 제어(IAM)할 수 있습니다.
설정
새 폴더
vision-quickstart를 만들고 다음 명령을 사용하여 빠른 시작 폴더로 이동합니다.mkdir vision-quickstart && cd vision-quickstartApache Maven을 설치합니다. 그런 다음
mvn -v을(를) 실행하여 성공적인 설치를 확인합니다.새
pom.xml파일을 프로젝트의 루트에 만들고, 다음 코드를 복사합니다.<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>Azure OpenAI SDK 및 종속성을 설치합니다.
mvn clean dependency:copy-dependenciesMicrosoft Entra ID로 권장되는 키 없는 인증의 경우 다음 명령을 사용하여 Azure에 로그인합니다.
az login
리소스 정보 검색
Azure OpenAI 리소스를 사용하여 애플리케이션을 인증하려면 다음 정보를 검색해야 합니다.
| 변수 이름 | 가치 |
|---|---|
AZURE_OPENAI_ENDPOINT |
이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. |
AZURE_OPENAI_DEPLOYMENT_NAME |
이 값은 모델을 배포할 때 배포에 대해 선택한 사용자 지정 이름에 해당합니다. 이 값은 Azure Portal의 리소스 관리>에서 찾을 수 있습니다. |
앱 실행
이 빠른 시작의 샘플 코드는 권장되는 키 없는 인증에 Microsoft Entra ID를 사용합니다. API 키를 사용하려는 경우 개체를 DefaultAzureCredential 개체로 AzureKeyCredential 바꿀 수 있습니다.
OpenAIAsyncClient client = new OpenAIClientBuilder()
.endpoint(endpoint)
.credential(new DefaultAzureCredentialBuilder().build())
.buildAsyncClient();
음성 인식을 위한 새 콘솔 애플리케이션을 만들려면 다음 단계를 수행합니다.
동일한 프로젝트 루트 디렉터리에 Quickstart.java 새 파일을 만듭니다.
다음 코드를 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); } }새 콘솔 애플리케이션을 실행하여 이미지를 생성합니다.
javac Quickstart.java -cp ".;target\dependency\*" java -cp ".;target\dependency\*" Quickstart
출력
생성된 이미지의 URL이 콘솔에 인쇄됩니다.
Image location URL that provides temporary access to download the generated image is <SAS URL>.
Completed getImages.
비고
이미지 API에는 콘텐츠 조정 필터가 함께 제공됩니다. 서비스가 프롬프트를 유해한 콘텐츠로 인식하면 생성된 이미지를 반환하지 않습니다. 자세한 내용은 콘텐츠 필터 문서를 참조하세요.
자원을 정리하세요
Azure OpenAI 리소스를 정리하고 제거하려면 해당 리소스를 삭제할 수 있습니다. 리소스를 삭제하기 전에 먼저 배포된 모델을 삭제해야 합니다.
다음 단계
- Image API 방법 가이드를 사용하여 이미지 API를 좀 더 자세히 살펴봅니다.
- 더 많은 예제를 보려면 Azure OpenAI 샘플 GitHub 리포지토리를 체크 아웃합니다.
이 가이드를 사용하여 JavaScript용 Azure OpenAI SDK를 사용하여 이미지 생성을 시작합니다.
참조 설명서 | 소스 코드 | 패키지(npm) | 샘플
필수 조건
- Azure 구독 - 무료로 생성하기
- Node.js의 LTS 버전
- 로컬 개발 환경에서 암호 없는 인증에 사용되는 Azure CLI는 Azure CLI로 로그인하여 필요한 컨텍스트를 만듭니다.
- 지원되는 지역에서 만든 Azure OpenAI 리소스(지역 가용성 참조)입니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
Microsoft Entra ID 필수 구성 요소
Microsoft Entra ID를 사용하는 권장 키 없는 인증의 경우 다음을 수행해야 합니다.
- Microsoft Entra ID를 사용하여 키 없는 인증에 사용되는 Azure CLI 를 설치합니다.
- 사용자 계정에
Cognitive Services User역할을 할당합니다. Azure Portal의 액세스 제어(IAM)할 수 있습니다.
설정
새 폴더
image-quickstart를 만들고 다음 명령을 사용하여 빠른 시작 폴더로 이동합니다.mkdir image-quickstart && cd image-quickstart다음 명령을 사용하여
package.json만듭니다.npm init -y다음을 사용하여 JavaScript용 OpenAI 클라이언트 라이브러리를 설치합니다.
npm install openai권장하는 암호 없는 인증의 경우:
npm install @azure/identity
리소스 정보 검색
Azure OpenAI 리소스를 사용하여 애플리케이션을 인증하려면 다음 정보를 검색해야 합니다.
| 변수 이름 | 가치 |
|---|---|
AZURE_OPENAI_ENDPOINT |
이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. |
AZURE_OPENAI_DEPLOYMENT_NAME |
이 값은 모델을 배포할 때 배포에 대해 선택한 사용자 지정 이름에 해당합니다. 이 값은 Azure Portal의 리소스 관리>에서 찾을 수 있습니다. |
주의
SDK에서 권장되는 키 없는 인증을 사용하려면 환경 변수가 AZURE_OPENAI_API_KEY 설정되지 않았는지 확인합니다.
DALL-E를 사용하여 이미지 생성
다음 코드를 사용하여
index.js파일을 만듭니다.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); });다음 명령을 사용하여 Azure에 로그인합니다.
az loginJavaScript 파일을 실행합니다.
node index.js
출력
생성된 이미지의 URL이 콘솔에 인쇄됩니다.
== Batch Image Generation ==
Image generation result URL: <SAS URL>
Image generation result URL: <SAS URL>
비고
이미지 API에는 콘텐츠 조정 필터가 함께 제공됩니다. 서비스가 프롬프트를 유해한 콘텐츠로 인식하면 생성된 이미지를 반환하지 않습니다. 자세한 내용은 콘텐츠 필터 문서를 참조하세요.
자원을 정리하세요
Azure OpenAI 리소스를 정리하고 제거하려면 해당 리소스를 삭제할 수 있습니다. 리소스를 삭제하기 전에 먼저 배포된 모델을 삭제해야 합니다.
다음 단계
- Image API 방법 가이드를 사용하여 이미지 API를 좀 더 자세히 살펴봅니다.
- 더 많은 예제를 보려면 Azure OpenAI 샘플 GitHub 리포지토리를 체크 아웃합니다.
이 가이드를 사용하여 JavaScript용 Azure OpenAI SDK를 사용하여 이미지 생성을 시작합니다.
참조 설명서 | 소스 코드 | 패키지(npm) | 샘플
필수 조건
- Azure 구독 - 무료로 생성하기
- Node.js의 LTS 버전
- TypeScript
- 로컬 개발 환경에서 암호 없는 인증에 사용되는 Azure CLI는 Azure CLI로 로그인하여 필요한 컨텍스트를 만듭니다.
- 지원되는 지역에서 만든 Azure OpenAI 리소스(지역 가용성 참조)입니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
Microsoft Entra ID 필수 구성 요소
Microsoft Entra ID를 사용하는 권장 키 없는 인증의 경우 다음을 수행해야 합니다.
- Microsoft Entra ID를 사용하여 키 없는 인증에 사용되는 Azure CLI 를 설치합니다.
- 사용자 계정에
Cognitive Services User역할을 할당합니다. Azure Portal의 액세스 제어(IAM)할 수 있습니다.
설정
새 폴더
image-quickstart를 만들고 다음 명령을 사용하여 빠른 시작 폴더로 이동합니다.mkdir image-quickstart && cd image-quickstart다음 명령을 사용하여
package.json만듭니다.npm init -ypackage.json다음 명령을 사용하여 ECMAScript로 업데이트합니다.npm pkg set type=module다음을 사용하여 JavaScript용 OpenAI 클라이언트 라이브러리를 설치합니다.
npm install openai권장하는 암호 없는 인증의 경우:
npm install @azure/identity
리소스 정보 검색
Azure OpenAI 리소스를 사용하여 애플리케이션을 인증하려면 다음 정보를 검색해야 합니다.
| 변수 이름 | 가치 |
|---|---|
AZURE_OPENAI_ENDPOINT |
이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. |
AZURE_OPENAI_DEPLOYMENT_NAME |
이 값은 모델을 배포할 때 배포에 대해 선택한 사용자 지정 이름에 해당합니다. 이 값은 Azure Portal의 리소스 관리>에서 찾을 수 있습니다. |
주의
SDK에서 권장되는 키 없는 인증을 사용하려면 환경 변수가 AZURE_OPENAI_API_KEY 설정되지 않았는지 확인합니다.
DALL-E를 사용하여 이미지 생성
다음 코드를 사용하여
index.ts파일을 만듭니다.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); });tsconfig.jsonTypeScript 코드를 전환하기 위한 파일을 만들고, 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"] }TypeScript에서 JavaScript로 변환합니다.
tsc다음 명령을 사용하여 Azure에 로그인합니다.
az login다음 명령을 사용하여 코드를 실행합니다.
node index.js
출력
생성된 이미지의 URL이 콘솔에 인쇄됩니다.
== Batch Image Generation ==
Image generation result URL: <SAS URL>
Image generation result URL: <SAS URL>
비고
이미지 API에는 콘텐츠 조정 필터가 함께 제공됩니다. 서비스가 프롬프트를 유해한 콘텐츠로 인식하면 생성된 이미지를 반환하지 않습니다. 자세한 내용은 콘텐츠 필터 문서를 참조하세요.
자원을 정리하세요
Azure OpenAI 리소스를 정리하고 제거하려면 해당 리소스를 삭제할 수 있습니다. 리소스를 삭제하기 전에 먼저 배포된 모델을 삭제해야 합니다.
다음 단계
- Image API 방법 가이드를 사용하여 이미지 API를 좀 더 자세히 살펴봅니다.
- 더 많은 예제를 보려면 Azure OpenAI 샘플 GitHub 리포지토리를 체크 아웃합니다.
이 가이드를 사용하여 Go용 Azure OpenAI SDK를 사용하여 이미지 생성을 시작합니다.
라이브러리 소스 코드 | 패키지 | 샘플
필수 조건
- Azure 구독 - 무료로 생성하기
- Go 1.8+
- 지원되는 지역에서 만든 Azure OpenAI 리소스(지역 가용성 참조)입니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
Microsoft Entra ID 필수 구성 요소
Microsoft Entra ID를 사용하는 권장 키 없는 인증의 경우 다음을 수행해야 합니다.
- Microsoft Entra ID를 사용하여 키 없는 인증에 사용되는 Azure CLI 를 설치합니다.
- 사용자 계정에
Cognitive Services User역할을 할당합니다. Azure Portal의 액세스 제어(IAM)할 수 있습니다.
설정
새 폴더
dall-e-quickstart를 만들고 다음 명령을 사용하여 빠른 시작 폴더로 이동합니다.mkdir dall-e-quickstart && cd dall-e-quickstartMicrosoft Entra ID로 권장되는 키 없는 인증의 경우 다음 명령을 사용하여 Azure에 로그인합니다.
az login
리소스 정보 검색
Azure OpenAI 리소스를 사용하여 애플리케이션을 인증하려면 다음 정보를 검색해야 합니다.
| 변수 이름 | 가치 |
|---|---|
AZURE_OPENAI_ENDPOINT |
이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. |
AZURE_OPENAI_DEPLOYMENT_NAME |
이 값은 모델을 배포할 때 배포에 대해 선택한 사용자 지정 이름에 해당합니다. 이 값은 Azure Portal의 리소스 관리>에서 찾을 수 있습니다. |
빠른 시작 실행
이 빠른 시작의 샘플 코드는 권장되는 키 없는 인증에 Microsoft Entra ID를 사용합니다. API 키를 사용하려는 경우 구현을 NewDefaultAzureCredential .로 NewKeyCredential바꿀 수 있습니다.
azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
credential, err := azidentity.NewDefaultAzureCredential(nil)
client, err := azopenai.NewClient(azureOpenAIEndpoint, credential, nil)
샘플을 실행하려면 다음을 수행합니다.
quickstart.go라는 새 파일을 만듭니다. 다음 코드를 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) } }다음 명령을 실행하여 새 Go 모듈을 만듭니다.
go mod init quickstart.go실행
go mod tidy하여 필요한 종속성을 설치합니다.go mod tidy다음 명령을 실행하여 샘플을 실행합니다.
go run quickstart.go
출력
생성된 이미지의 URL이 콘솔에 인쇄됩니다.
Image generated, HEAD request on URL returned 200
Image URL: <SAS URL>
비고
이미지 API에는 콘텐츠 조정 필터가 함께 제공됩니다. 서비스가 프롬프트를 유해한 콘텐츠로 인식하면 생성된 이미지를 반환하지 않습니다. 자세한 내용은 콘텐츠 필터 문서를 참조하세요.
자원을 정리하세요
Azure OpenAI 리소스를 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제할 수 있습니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.
다음 단계
- Image API 방법 가이드를 사용하여 이미지 API를 좀 더 자세히 살펴봅니다.
- 더 많은 예제를 보려면 Azure OpenAI 샘플 GitHub 리포지토리를 체크 아웃합니다.
이 가이드를 사용하여 PowerShell을 사용하여 Microsoft Foundry Models 이미지 생성 API에서 Azure OpenAI 호출을 시작합니다.
필수 조건
- Azure 구독. 체험 계정 만들기
- 이 작업의 경우 예제에서 Windows PowerShell 5.1에서 사용할 수 없는 새로운 기능을 사용하기 때문에 최신 버전의 PowerShell 7을 사용하는 것이 좋습니다.
- 지원되는 지역에서 만든 Azure OpenAI 리소스(지역 가용성 참조)입니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
Microsoft Entra ID 필수 구성 요소
Microsoft Entra ID를 사용하는 권장 키 없는 인증의 경우 다음을 수행해야 합니다.
- Microsoft Entra ID를 사용하여 키 없는 인증에 사용되는 Azure CLI 를 설치합니다.
- 사용자 계정에
Cognitive Services User역할을 할당합니다. Azure Portal의 액세스 제어(IAM)할 수 있습니다.
리소스 정보 검색
Azure OpenAI 리소스를 사용하여 애플리케이션을 인증하려면 다음 정보를 검색해야 합니다.
| 변수 이름 | 가치 |
|---|---|
AZURE_OPENAI_ENDPOINT |
이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. |
AZURE_OPENAI_DEPLOYMENT_NAME |
이 값은 모델을 배포할 때 배포에 대해 선택한 사용자 지정 이름에 해당합니다. 이 값은 Azure Portal의 리소스 관리>에서 찾을 수 있습니다. |
이미지 생성
Microsoft Entra ID로 권장되는 키 없는 인증의 경우 다음 명령을 사용하여 Azure에 로그인합니다.
az loginquickstart.ps1라는 새 PowerShell 파일을 만듭니다. 선호하는 편집기 또는 IDE에서 이 파일을 엽니다.
quickstart.ps1의 내용을 다음 코드로 바꿉니다. 해당 필드에 엔드포인트 URL 및 키를 입력합니다.
prompt의 값을 원하는 텍스트로 변경합니다.# 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중요합니다
프로덕션의 경우 Azure Key Vault를 사용한 PowerShell 비밀 관리와 같은 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 자격 증명 보안에 대한 자세한 내용은 이 보안 문서를 참조하세요.
PowerShell을 사용하여 스크립트를 실행합니다.
./quickstart.ps1생성된 이미지가 준비될 때까지 스크립트가 반복됩니다.
출력
PowerShell은 Azure OpenAI에서 이미지를 요청하고 출력 이미지를 지정된 디렉터리의 generated_image.png 파일에 저장합니다. 편의를 위해 파일의 전체 경로는 스크립트의 끝에 반환됩니다.
이미지 API에는 콘텐츠 조정 필터가 함께 제공됩니다. 서비스에서 프롬프트를 유해한 콘텐츠로 인식하면 이미지를 생성하지 않습니다. 자세한 내용은 콘텐츠 필터링을 참조하세요.
자원을 정리하세요
Azure OpenAI 리소스를 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제할 수 있습니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.
다음 단계
- Image API 방법 가이드를 사용하여 이미지 API를 좀 더 자세히 살펴봅니다.
- Azure OpenAI 샘플 GitHub 리포지토리에서 예제를 사용해 보세요.
이 가이드를 사용하여 Microsoft Foundry를 사용하여 브라우저에서 Azure OpenAI를 사용하여 이미지 생성을 시작합니다.
필수 조건
- Azure 구독. 체험 계정 만들기
- 지원되는 지역에서 만든 Azure OpenAI 리소스입니다. 지역 가용성을 참조하세요. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
Foundry로 이동
Foundry로 이동하여 Azure OpenAI 리소스와 연결된 자격 증명으로 로그인합니다. 로그인 워크플로 도중 또는 이후에 적절한 디렉터리, Azure 구독 및 Azure OpenAI 리소스를 선택합니다.
Foundry 방문 페이지에서 새 프로젝트를 만들거나 선택합니다. 왼쪽 탐색창에서 모델 + 엔드포인트 페이지로 이동합니다. 모델 배포를 선택한 다음 목록에서 DALL-E 모델 중 하나를 선택합니다. 배포 프로세스를 완료합니다.
모델 페이지에서 플레이그라운드에서 열기를 선택합니다.
이미지 생성 사용해 보기
이미지 플레이그라운드를 통해 코드 없이 Azure OpenAI 기능을 탐색해보세요. 텍스트 상자에 이미지 프롬프트를 입력하고 생성을 선택합니다. AI 생성 이미지가 준비되면 페이지에 표시됩니다.
비고
이미지 API에는 콘텐츠 조정 필터가 함께 제공됩니다. Azure OpenAI가 프롬프트를 유해한 콘텐츠로 인식하면 생성된 이미지를 반환하지 않습니다. 자세한 내용은 콘텐츠 필터링을 참조하세요.
이미지 플레이그라운드에서는 설정에 따라 미리 채워진 Python 및 cURL 코드 샘플도 볼 수 있습니다. 페이지 위쪽 부근에서 코드 보기를 선택합니다. 이 코드를 사용하여 동일한 작업을 완료하는 애플리케이션을 작성할 수 있습니다.
자원을 정리하세요
Azure OpenAI 리소스를 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제할 수 있습니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.
다음 단계
- Image API 방법 가이드를 사용하여 이미지 API를 좀 더 자세히 살펴봅니다.
- Azure OpenAI 샘플 GitHub 리포지토리에서 예제를 사용해 보세요.
- API 참조를 참조하세요.