빠른 시작: Azure OpenAI Service를 사용하여 이미지 생성
참고 항목
이미지 생성 API는 텍스트 프롬프트에서 이미지를 만듭니다. 기존 이미지를 편집하거나 변형하지 않습니다.
이 가이드를 사용하여 브라우저에서 Azure OpenAI를 사용하여 이미지 생성을 시작합니다.
필수 조건
- Azure 구독 체험 계정 만들기
- 지원되는 지역에서 만든 Azure OpenAI 리소스입니다. 지역 가용성을 참조하세요.
- 그런 다음, Azure 리소스를 사용하여
dalle3
모델을 배포해야 합니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
Azure OpenAI Studio로 이동
Azure OpenAI Studio를 찾아보고 Azure OpenAI 리소스와 연결된 자격 증명으로 로그인합니다. 로그인 워크플로 도중 또는 이후에 적절한 디렉터리, Azure 구독 및 Azure OpenAI 리소스를 선택합니다.
Azure OpenAI Studio 방문 페이지에서 이미지 플레이그라운드를 선택하여 이미지 생성 API를 사용합니다. 페이지 위쪽의 설정을 선택하고 배포 드롭다운에 DALL-E 3 배포가 선택되어 있음을 확인합니다.
이미지 생성 사용해 보기
이미지 플레이그라운드를 통해 코드 없이 Azure OpenAI 기능을 탐색해보세요. 텍스트 상자에 이미지 프롬프트를 입력하고 생성을 선택합니다. AI 생성 이미지가 준비되면 페이지에 표시됩니다.
참고 항목
이미지 생성 API에는 콘텐츠 조정 필터가 제공되어 있습니다. Azure OpenAI가 프롬프트를 유해한 콘텐츠로 인식하면 생성된 이미지를 반환하지 않습니다. 자세한 내용은 콘텐츠 필터링을 참조하세요.
이미지 플레이그라운드에서는 설정에 따라 미리 채워진 Python 및 cURL 코드 샘플도 볼 수 있습니다. 페이지 위쪽 부근에서 코드 보기를 선택합니다. 이 코드를 사용하여 동일한 작업을 완료하는 애플리케이션을 작성할 수 있습니다.
리소스 정리
Azure OpenAI 리소스를 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제하면 됩니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.
다음 단계
- DALL-E 방법 가이드를 사용하여 이미지 생성 API를 더 자세히 살펴봅니다.
- Azure OpenAI 샘플 GitHub 리포지토리에서 예제를 사용해 보세요.
- API 참조를 참조하세요.
이 가이드에 따라 Python을 사용하여 Azure OpenAI Service 이미지 생성 REST API 호출을 시작합니다.
필수 조건
- Azure 구독 체험 계정 만들기
- Python 3.8 이상 버전
- 설치된 Python 라이브러리는
os
,requests
,json
입니다. - 지원되는 지역에서 만든 Azure OpenAI 리소스입니다. 지역 가용성을 참조하세요.
- 그런 다음, Azure 리소스를 사용하여
dalle3
모델을 배포해야 합니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
설정
키 및 엔드포인트 검색
Azure OpenAI API를 성공적으로 호출하려면 Azure OpenAI 리소스에 대한 다음 정보가 필요합니다.
변수 | 속성 | 값 |
---|---|---|
엔드포인트 | api_base |
엔드포인트 값은 Azure Portal에서 리소스에 대한 키 및 엔드포인트 아래에 있습니다. Azure AI Studio의 배포 페이지를 통해 엔드포인트를 찾을 수도 있습니다. 예제 엔드포인트는 https://docs-test-001.openai.azure.com/ 입니다. |
Key | api_key |
키 값도 Azure Portal에서 리소스에 대한 키 및 엔드포인트 아래에 있습니다. Azure는 리소스에 대해 두 개의 키를 생성합니다. 둘 중 하나의 값을 사용할 수 있습니다. |
Azure Portal에서 해당 리소스로 이동합니다. 탐색 창의 리소스 관리 아래에서 키 및 엔드포인트를 선택합니다. 엔드포인트 값과 액세스 키 값을 복사합니다. 키 1 또는 키 2 값을 사용할 수 있습니다. 항상 두 개의 키를 사용하면 서비스 중단 없이 키를 안전하게 회전하고 다시 생성할 수 있습니다.
환경 변수
키 및 엔드포인트에 대한 영구 환경 변수를 만들고 할당합니다.
Important
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
의 값을 원하는 텍스트로 변경합니다.또한 DALL-E 3 모델을 배포한 경우 URL의
<dalle3>
를 선택한 배포 이름으로 바꿔야 합니다. 기본 모델 이름과 동일한 배포 이름을 선택하지 않으면 모델 이름을 입력할 때 오류가 발생합니다. 오류가 발생하면 엔드포인트와/openai/deployments
사이의 구분에서/
이 두 배로 늘어나지 않았는지 다시 확인하세요.import requests import time import os api_base = os.environ['AZURE_OPENAI_ENDPOINT'] # Enter your endpoint here api_key = os.environ['AZURE_OPENAI_API_KEY'] # Enter your API key here api_version = '2024-02-01' url = f"{api_base}/openai/deployments/<dalle3>/images/generations?api-version={api_version}" headers= { "api-key": api_key, "Content-Type": "application/json" } body = { # Enter your prompt text here "prompt": "A multi-colored umbrella on the beach, disposable camera", "size": "1024x1024", # supported values are “1792x1024”, “1024x1024” and “1024x1792” "n": 1, #The number of images to generate. Only n=1 is supported for DALL-E 3. "quality": "hd", # Options are “hd” and “standard”; defaults to standard "style": "vivid" # Options are “natural” and “vivid”; defaults to “vivid” } submission = requests.post(url, headers=headers, json=body) image_url = submission.json()['data'][0]['url'] print(image_url)
스크립트는 동기 이미지 생성 API 호출을 만듭니다.
Important
완료되면 코드에서 키를 제거하고 공개적으로 키를 게시하지 마세요. 프로덕션의 경우 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 자세한 내용은 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에는 콘텐츠 조정 필터가 제공되어 있습니다. 서비스에서 프롬프트를 유해한 콘텐츠로 인식하면 이미지를 생성하지 않습니다. 자세한 내용은 콘텐츠 필터링을 참조하세요. 오류 응답의 예는 DALL-E 방법 가이드를 참조하세요.
시스템은 작업 상태를 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 리소스를 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제하면 됩니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.
다음 단계
- DALL-E 방법 가이드를 사용하여 이미지 생성 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에서 리소스에 대한 키 및 엔드포인트 아래에 있습니다. Azure AI Studio의 배포 페이지를 통해 엔드포인트를 찾을 수도 있습니다. 예제 엔드포인트는 https://docs-test-001.openai.azure.com/ 입니다. |
Key | api_key |
키 값도 Azure Portal에서 리소스에 대한 키 및 엔드포인트 아래에 있습니다. Azure는 리소스에 대해 두 개의 키를 생성합니다. 둘 중 하나의 값을 사용할 수 있습니다. |
Azure Portal에서 해당 리소스로 이동합니다. 탐색 창의 리소스 관리 아래에서 키 및 엔드포인트를 선택합니다. 엔드포인트 값과 액세스 키 값을 복사합니다. 키 1 또는 키 2 값을 사용할 수 있습니다. 항상 두 개의 키를 사용하면 서비스 중단 없이 키를 안전하게 회전하고 다시 생성할 수 있습니다.
환경 변수
키 및 엔드포인트에 대한 영구 환경 변수를 만들고 할당합니다.
Important
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 모델의 이름으로 변경합니다.
Important
완료되면 코드에서 키를 제거하고 공개적으로 키를 게시하지 마세요. 프로덕션의 경우 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 자세한 내용은 Azure Key Vault를 참조하세요.
python
명령을 사용하여 애플리케이션을 실행합니다.
python quickstart.py
응답을 얻기 위해 잠시 기다립니다.
출력
Azure OpenAI는 출력 이미지를 지정된 디렉터리의 generated_image.png 파일에 저장합니다. 또한 스크립트는 기본 이미지 뷰어에도 이미지를 표시합니다.
이미지 생성 API에는 콘텐츠 조정 필터가 제공되어 있습니다. 서비스에서 프롬프트를 유해한 콘텐츠로 인식하면 이미지를 생성하지 않습니다. 자세한 내용은 콘텐츠 필터링을 참조하세요.
리소스 정리
Azure OpenAI 리소스를 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제하면 됩니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.
다음 단계
- DALL-E 방법 가이드를 사용하여 이미지 생성 API를 더 자세히 살펴봅니다.
- Azure OpenAI 샘플 GitHub 리포지토리에서 예제를 사용해 보세요.
- API 참조를 참조하세요.
이 가이드를 사용하여 C#용 Azure OpenAI SDK를 사용하여 이미지 생성을 시작합니다.
라이브러리 원본 코드 | 패키지(NuGet) | 샘플
필수 조건
- Azure 구독 - 체험 구독 만들기
- .NET 7 SDK
- 지원되는 지역에서 만든 Azure OpenAI 리소스(지역 가용성 참조)입니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
설정
키 및 엔드포인트 검색
Azure OpenAI에 대해 성공적으로 호출하려면 엔드포인트와 키가 필요합니다.
변수 이름 | 값 |
---|---|
ENDPOINT |
서비스 엔드포인트는 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. 또는 Azure AI Studio의 배포 페이지를 통해 엔드포인트를 찾을 수 있습니다. 예제 엔드포인트는 https://docs-test-001.openai.azure.com/ 입니다. |
API-KEY |
이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. KEY1 또는 KEY2 를 사용할 수 있습니다. |
Azure Portal에서 해당 리소스로 이동합니다. 키 및 엔드포인트 섹션은 리소스 관리 섹션에서 찾을 수 있습니다. 엔드포인트 및 액세스 키를 복사합니다. API 호출을 인증하는 데 모두 필요합니다. KEY1
또는 KEY2
를 사용할 수 있습니다. 항상 두 개의 키를 사용하면 서비스 중단 없이 키를 안전하게 회전하고 다시 생성할 수 있습니다.
환경 변수
키 및 엔드포인트에 대한 영구 환경 변수를 만들고 할당합니다.
Important
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"
새 .NET Core 애플리케이션 만들기
콘솔 창(예: cmd, PowerShell 또는 Bash)에서 dotnet new
명령을 사용하여 azure-openai-quickstart
라는 새 콘솔 앱을 만듭니다. 이 명령은 program.cs라는 단일 C# 원본 파일을 사용하여 간단한 "Hello World" 프로젝트를 만듭니다.
dotnet new console -n azure-openai-quickstart
새로 만든 앱 폴더로 디렉터리를 변경합니다. 다음을 통해 애플리케이션을 빌드할 수 있습니다.
dotnet build
빌드 출력에 경고나 오류가 포함되지 않아야 합니다.
...
Build succeeded.
0 Warning(s)
0 Error(s)
...
OpenAI .NET SDK 설치
다음을 사용하여 클라이언트 라이브러리 설치:
dotnet add package Azure.AI.OpenAI --version 1.0.0-beta.6
DALL-E를 사용하여 이미지 생성
프로젝트 디렉터리에서 Program.cs 파일을 열고, 해당 내용을 다음 코드로 바꿉니다.
using Azure;
using Azure.AI.OpenAI;
using OpenAI.Images;
using static System.Environment;
string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");
AzureOpenAIClient azureClient = new(
new Uri(endpoint),
new AzureKeyCredential(key));
// This must match the custom deployment name you chose for your model
ImageClient chatClient = azureClient.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);
다음 명령을 사용하여 애플리케이션 디렉터리에서 애플리케이션을 빌드하고 실행합니다.
dotnet build
dotnet run
출력
생성된 이미지의 URL이 콘솔에 인쇄됩니다.
https://dalleproduse.blob.core.windows.net/private/images/b7ac5e55-f1f8-497a-8d0e-8f51446bf538/generated_00.png?se=2024-07-12T13%3A47%3A56Z&sig=Zri37iYVTVtc52qzTFBOqPgSHvXwEhcO86Smv2ojB%2FE%3D&ske=2024-07-17T12%3A15%3A44Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2024-07-10T12%3A15%3A44Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02
참고 항목
이미지 생성 API에는 콘텐츠 조정 필터가 제공되어 있습니다. 서비스가 메시지를 유해한 콘텐츠로 인식하면 생성된 이미지를 반환하지 않습니다. 자세한 내용은 콘텐츠 필터 문서를 참조하세요.
리소스 정리
Azure OpenAI 리소스를 정리하고 제거하려면 해당 리소스를 삭제할 수 있습니다. 리소스를 삭제하기 전에 먼저 배포된 모델을 삭제해야 합니다.
다음 단계
- DALL-E 방법 가이드를 사용하여 이미지 생성 API를 더 자세히 살펴봅니다.
- 더 많은 예제를 보려면 Azure OpenAI 샘플 GitHub 리포지토리를 체크 아웃합니다.
이 가이드를 사용하여 Java용 Azure OpenAI SDK를 사용하여 이미지 생성을 시작합니다.
라이브러리 원본 코드 | 아티팩트(Maven) | 샘플
필수 조건
- Azure 구독 - 체험 구독 만들기
- JDK(Java Development Kit)의 현재 버전
- Gradle 빌드 도구 또는 다른 종속성 관리자
- 지원되는 지역에서 만든 Azure OpenAI 리소스(지역 가용성 참조)입니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
설정
키 및 엔드포인트 검색
Azure OpenAI에 대해 성공적으로 호출하려면 엔드포인트와 키가 필요합니다.
변수 이름 | 값 |
---|---|
ENDPOINT |
서비스 엔드포인트는 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. 또는 Azure AI Studio의 배포 페이지를 통해 엔드포인트를 찾을 수 있습니다. 예제 엔드포인트는 https://docs-test-001.openai.azure.com/ 입니다. |
API-KEY |
이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. KEY1 또는 KEY2 를 사용할 수 있습니다. |
Azure Portal에서 해당 리소스로 이동합니다. 키 및 엔드포인트 섹션은 리소스 관리 섹션에서 찾을 수 있습니다. 엔드포인트 및 액세스 키를 복사합니다. API 호출을 인증하는 데 모두 필요합니다. KEY1
또는 KEY2
를 사용할 수 있습니다. 항상 두 개의 키를 사용하면 서비스 중단 없이 키를 안전하게 회전하고 다시 생성할 수 있습니다.
환경 변수
키 및 엔드포인트에 대한 영구 환경 변수를 만들고 할당합니다.
Important
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"
새 Java 애플리케이션 만들기
새 Gradle 프로젝트를 만듭니다.
콘솔 창(예: cmd, PowerShell 또는 Bash)에서 앱에 대한 새 디렉터리를 만들고 이 디렉터리로 이동합니다.
mkdir myapp && cd myapp
작업 디렉터리에서 gradle init
명령을 실행합니다. 이 명령은 build.gradle.kts를 포함하여 런타임에 애플리케이션을 만들고 구성하는 데 사용되는 Gradle용 필수 빌드 파일을 만듭니다.
gradle init --type basic
DSL을 선택하라는 메시지가 표시되면 Kotlin을 선택합니다.
Java SDK 설치
이 빠른 시작에서는 Gradle 종속성 관리자를 사용합니다. 다른 종속성 관리자에 대한 클라이언트 라이브러리 및 정보는 Maven 중앙 리포지토리에서 찾을 수 있습니다.
build.gradle.kts를 찾고, 원하는 IDE 또는 텍스트 편집기에서 엽니다. 그런 다음, 다음 빌드 구성을 복사합니다. 이 구성은 프로젝트를 진입점이 OpenAI빠른 시작 클래스인 Java 애플리케이션으로 정의합니다. Azure AI Vision 라이브러리를 가져옵니다.
plugins {
java
application
}
application {
mainClass.set("OpenAIQuickstart")
}
repositories {
mavenCentral()
}
dependencies {
implementation(group = "com.azure", name = "azure-ai-openai", version = "1.0.0-beta.3")
implementation("org.slf4j:slf4j-simple:1.7.9")
}
DALL-E를 사용하여 이미지 생성
Java 파일을 만듭니다.
작업 디렉터리에서 다음 명령을 실행하여 프로젝트 원본 폴더를 만듭니다.
mkdir -p src/main/java
새 폴더로 이동하여 OpenAIQuickstart.java라는 파일을 만듭니다.
선호하는 편집기 또는 IDE에서 OpenAIQuickstart.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; /** * Sample demonstrates how to get the images for a given prompt. */ public class OpenAIQuickstart { /** * Runs the sample algorithm and demonstrates how to get the images for a given prompt. * * @param args Unused. Arguments to the program. */ public static void main(String[] args) throws InterruptedException { // Get key and endpoint from environment variables: String azureOpenaiKey = System.getenv("AZURE_OPENAI_API_KEY"); String endpoint = System.getenv("AZURE_OPENAI_ENDPOINT"); OpenAIAsyncClient client = new OpenAIClientBuilder() .endpoint(endpoint) .credential(new AzureKeyCredential(azureOpenaiKey)) .buildAsyncClient(); ImageGenerationOptions imageGenerationOptions = new ImageGenerationOptions( "A drawing of the Seattle skyline in the style of Van Gogh"); client.getImages(imageGenerationOptions).subscribe( images -> { for (ImageLocation imageLocation : images.getData()) { ResponseError error = imageLocation.getError(); if (error != null) { System.out.printf("Image generation operation failed. Error code: %s, error message: %s.%n", error.getCode(), error.getMessage()); } else { System.out.printf( "Image location URL that provides temporary access to download the generated image is %s.%n", imageLocation.getUrl()); } } }, error -> System.err.println("There was an error getting images." + error), () -> System.out.println("Completed getImages.")); // The .subscribe() creation and assignment is not a blocking call. For the purpose of this example, we sleep // the thread so the program does not end before the send operation is complete. Using .block() instead of // .subscribe() will turn this into a synchronous call. TimeUnit.SECONDS.sleep(10); } }
프로젝트 루트 폴더로 돌아가서 다음을 사용하여 앱을 빌드합니다.
gradle build
그런 다음,
gradle run
명령을 사용하여 실행합니다.gradle run
출력
생성된 이미지의 URL이 콘솔에 인쇄됩니다.
Image location URL that provides temporary access to download the generated image is https://dalleproduse.blob.core.windows.net/private/images/d2ea917f-8802-4ad6-8ef6-3fb7a15c8482/generated_00.png?se=2023-08-25T23%3A11%3A28Z&sig=%2BKa5Mkb9U88DfvxoBpyAjamYRzwb7aVCEucM6XJC3wQ%3D&ske=2023-08-31T15%3A27%3A47Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-24T15%3A27%3A47Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02.
Completed getImages.
참고 항목
이미지 생성 API에는 콘텐츠 조정 필터가 제공되어 있습니다. 서비스가 메시지를 유해한 콘텐츠로 인식하면 생성된 이미지를 반환하지 않습니다. 자세한 내용은 콘텐츠 필터 문서를 참조하세요.
리소스 정리
Azure OpenAI 리소스를 정리하고 제거하려면 해당 리소스를 삭제할 수 있습니다. 리소스를 삭제하기 전에 먼저 배포된 모델을 삭제해야 합니다.
다음 단계
- DALL-E 방법 가이드를 사용하여 이미지 생성 API를 더 자세히 살펴봅니다.
- 더 많은 예제를 보려면 Azure OpenAI 샘플 GitHub 리포지토리를 체크 아웃합니다.
이 가이드를 사용하여 JavaScript용 Azure OpenAI SDK를 사용하여 이미지 생성을 시작합니다.
참조 설명서 | 소스 코드 | 패키지(npm) | 샘플
필수 조건
- Azure 구독 - 체험 구독 만들기
- Node.js의 LTS 버전
- 로컬 개발 환경에서 암호 없는 인증에 사용되는 Azure CLI는 Azure CLI로 로그인하여 필요한 컨텍스트를 만듭니다.
- 지원되는 지역에서 만든 Azure OpenAI 리소스(지역 가용성 참조)입니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
설정
키 및 엔드포인트 검색
Azure OpenAI에 대해 성공적으로 호출하려면 엔드포인트와 키가 필요합니다.
변수 이름 | 값 |
---|---|
ENDPOINT |
서비스 엔드포인트는 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. 또는 Azure AI Studio의 배포 페이지를 통해 엔드포인트를 찾을 수 있습니다. 예제 엔드포인트는 https://docs-test-001.openai.azure.com/ 입니다. |
API-KEY |
이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. KEY1 또는 KEY2 를 사용할 수 있습니다. |
Azure Portal에서 해당 리소스로 이동합니다. 키 및 엔드포인트 섹션은 리소스 관리 섹션에서 찾을 수 있습니다. 엔드포인트 및 액세스 키를 복사합니다. API 호출을 인증하는 데 모두 필요합니다. KEY1
또는 KEY2
를 사용할 수 있습니다. 항상 두 개의 키를 사용하면 서비스 중단 없이 키를 안전하게 회전하고 다시 생성할 수 있습니다.
환경 변수
키 및 엔드포인트에 대한 영구 환경 변수를 만들고 할당합니다.
Important
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"
노드 애플리케이션 만들기
콘솔 창(예: cmd, PowerShell 또는 Bash)에서 앱에 대한 새 디렉터리를 만들고 이 디렉터리로 이동합니다. 그런 다음 npm init
명령을 실행하여 package.json 파일이 있는 노드 애플리케이션을 만듭니다.
npm init
클라이언트 라이브러리 설치
다음을 사용하여 클라이언트 라이브러리 설치:
npm install openai @azure/identity
종속성이 있는 앱의 package.json 파일이 업데이트됩니다.
DALL-E를 사용하여 이미지 생성
ImageGeneration.js라는 이름의 새 파일을 만들고 원하는 코드 편집기에서 엽니다. 다음 코드를 ImageGeneration.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"];
// Required Azure OpenAI deployment name and API version
const apiVersion = "2024-07-01";
const deploymentName = "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);
});
다음 명령을 사용하여 스크립트를 실행합니다.
node ImageGeneration.js
출력
생성된 이미지의 URL이 콘솔에 인쇄됩니다.
== Batch Image Generation ==
Image generation result URL: https://dalleproduse.blob.core.windows.net/private/images/5e7536a9-a0b5-4260-8769-2d54106f2913/generated_00.png?se=2023-08-29T19%3A12%3A57Z&sig=655GkWajOZ9ALjFykZF%2FBMZRPQALRhf4UPDImWCQoGI%3D&ske=2023-09-02T18%3A53%3A23Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-26T18%3A53%3A23Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02
Image generation result URL: https://dalleproduse.blob.core.windows.net/private/images/5e7536a9-a0b5-4260-8769-2d54106f2913/generated_01.png?se=2023-08-29T19%3A12%3A57Z&sig=B24ymPLSZ3HfG23uojOD9VlRFGxjvgcNmvFo4yPUbEc%3D&ske=2023-09-02T18%3A53%3A23Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-26T18%3A53%3A23Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02
참고 항목
이미지 생성 API에는 콘텐츠 조정 필터가 제공되어 있습니다. 서비스가 메시지를 유해한 콘텐츠로 인식하면 생성된 이미지를 반환하지 않습니다. 자세한 내용은 콘텐츠 필터 문서를 참조하세요.
리소스 정리
Azure OpenAI 리소스를 정리하고 제거하려면 해당 리소스를 삭제할 수 있습니다. 리소스를 삭제하기 전에 먼저 배포된 모델을 삭제해야 합니다.
다음 단계
- DALL-E 방법 가이드를 사용하여 이미지 생성 API를 더 자세히 살펴봅니다.
- 더 많은 예제를 보려면 Azure OpenAI 샘플 GitHub 리포지토리를 체크 아웃합니다.
이 가이드를 사용하여 JavaScript용 Azure OpenAI SDK를 사용하여 이미지 생성을 시작합니다.
참조 설명서 | 소스 코드 | 패키지(npm) | 샘플
필수 조건
- Azure 구독 - 체험 구독 만들기
- Node.js의 LTS 버전
- TypeScript
- 로컬 개발 환경에서 암호 없는 인증에 사용되는 Azure CLI는 Azure CLI로 로그인하여 필요한 컨텍스트를 만듭니다.
- 지원되는 지역에서 만든 Azure OpenAI 리소스(지역 가용성 참조)입니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
설정
키 및 엔드포인트 검색
Azure OpenAI에 대해 성공적으로 호출하려면 엔드포인트와 키가 필요합니다.
변수 이름 | 값 |
---|---|
ENDPOINT |
서비스 엔드포인트는 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. 또는 Azure AI Studio의 배포 페이지를 통해 엔드포인트를 찾을 수 있습니다. 예제 엔드포인트는 https://docs-test-001.openai.azure.com/ 입니다. |
API-KEY |
이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. KEY1 또는 KEY2 를 사용할 수 있습니다. |
Azure Portal에서 해당 리소스로 이동합니다. 키 및 엔드포인트 섹션은 리소스 관리 섹션에서 찾을 수 있습니다. 엔드포인트 및 액세스 키를 복사합니다. API 호출을 인증하는 데 모두 필요합니다. KEY1
또는 KEY2
를 사용할 수 있습니다. 항상 두 개의 키를 사용하면 서비스 중단 없이 키를 안전하게 회전하고 다시 생성할 수 있습니다.
환경 변수
키 및 엔드포인트에 대한 영구 환경 변수를 만들고 할당합니다.
Important
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"
노드 애플리케이션 만들기
콘솔 창(예: cmd, PowerShell 또는 Bash)에서 앱에 대한 새 디렉터리를 만들고 이 디렉터리로 이동합니다. 그런 다음 npm init
명령을 실행하여 package.json 파일이 있는 노드 애플리케이션을 만듭니다.
npm init
클라이언트 라이브러리 설치
다음을 사용하여 클라이언트 라이브러리 설치:
npm install openai @azure/identity
종속성이 있는 앱의 package.json 파일이 업데이트됩니다.
DALL-E를 사용하여 이미지 생성
ImageGeneration.ts 새 파일을 만들고 기본 코드 편집기에서 엽니다. 다음 코드를 ImageGeneration.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"];
// Required Azure OpenAI deployment name and API version
const apiVersion = "2024-07-01";
const deploymentName = "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);
});
다음 명령을 사용하여 애플리케이션 빌드:
tsc
다음 명령을 사용하여 애플리케이션을 실행합니다.
node ImageGeneration.js
출력
생성된 이미지의 URL이 콘솔에 인쇄됩니다.
== Batch Image Generation ==
Image generation result URL: https://dalleproduse.blob.core.windows.net/private/images/5e7536a9-a0b5-4260-8769-2d54106f2913/generated_00.png?se=2023-08-29T19%3A12%3A57Z&sig=655GkWajOZ9ALjFykZF%2FBMZRPQALRhf4UPDImWCQoGI%3D&ske=2023-09-02T18%3A53%3A23Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-26T18%3A53%3A23Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02
Image generation result URL: https://dalleproduse.blob.core.windows.net/private/images/5e7536a9-a0b5-4260-8769-2d54106f2913/generated_01.png?se=2023-08-29T19%3A12%3A57Z&sig=B24ymPLSZ3HfG23uojOD9VlRFGxjvgcNmvFo4yPUbEc%3D&ske=2023-09-02T18%3A53%3A23Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-26T18%3A53%3A23Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02
참고 항목
이미지 생성 API에는 콘텐츠 조정 필터가 제공되어 있습니다. 서비스가 메시지를 유해한 콘텐츠로 인식하면 생성된 이미지를 반환하지 않습니다. 자세한 내용은 콘텐츠 필터 문서를 참조하세요.
리소스 정리
Azure OpenAI 리소스를 정리하고 제거하려면 해당 리소스를 삭제할 수 있습니다. 리소스를 삭제하기 전에 먼저 배포된 모델을 삭제해야 합니다.
다음 단계
- DALL-E 방법 가이드를 사용하여 이미지 생성 API를 더 자세히 살펴봅니다.
- 더 많은 예제를 보려면 Azure OpenAI 샘플 GitHub 리포지토리를 체크 아웃합니다.
이 가이드를 사용하여 Go용 Azure OpenAI SDK를 사용하여 이미지 생성을 시작합니다.
라이브러리 소스 코드 | 패키지 | 샘플
필수 조건
- Azure 구독 - 체험 구독 만들기
- Go 1.8+
- 지원되는 지역에서 만든 Azure OpenAI 리소스(지역 가용성 참조)입니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
설정
키 및 엔드포인트 검색
Azure OpenAI에 대해 성공적으로 호출하려면 엔드포인트와 키가 필요합니다.
변수 이름 | 값 |
---|---|
ENDPOINT |
서비스 엔드포인트는 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. 또는 Azure AI Studio의 배포 페이지를 통해 엔드포인트를 찾을 수 있습니다. 예제 엔드포인트는 https://docs-test-001.openai.azure.com/ 입니다. |
API-KEY |
이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. KEY1 또는 KEY2 를 사용할 수 있습니다. |
Azure Portal에서 해당 리소스로 이동합니다. 키 및 엔드포인트 섹션은 리소스 관리 섹션에서 찾을 수 있습니다. 엔드포인트 및 액세스 키를 복사합니다. API 호출을 인증하는 데 모두 필요합니다. KEY1
또는 KEY2
를 사용할 수 있습니다. 항상 두 개의 키를 사용하면 서비스 중단 없이 키를 안전하게 회전하고 다시 생성할 수 있습니다.
환경 변수
키 및 엔드포인트에 대한 영구 환경 변수를 만들고 할당합니다.
Important
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"
새 Go 애플리케이션 만들기
명령 프롬프트를 열고 프로젝트 폴더로 이동합니다. 새 파일 sample.go를 만듭니다.
Go SDK 설치
다음 명령을 사용하여 OpenAI Go SDK를 설치합니다.
go get github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai@latest
dep
를 사용하는 경우에는 리포지토리 내에서 다음을 실행합니다.
dep ensure -add github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai
DALL-E를 사용하여 이미지 생성
기본 코드 편집기에서 sample.go를 엽니다.
스크립트에 다음 코드를 추가합니다.
package main
import (
"context"
"fmt"
"net/http"
"os"
"github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
"github.com/Azure/azure-sdk-for-go/sdk/azcore"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
)
func main() {
azureOpenAIKey := os.Getenv("AZURE_OPENAI_API_KEY")
// Ex: "https://<your-azure-openai-host>.openai.azure.com"
azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
if azureOpenAIKey == "" || azureOpenAIEndpoint == "" {
fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n")
return
}
keyCredential := azcore.NewKeyCredential(azureOpenAIKey)
client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)
if err != nil {
// handle error
}
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),
}, nil)
if err != nil {
// handle error
}
for _, generatedImage := range resp.Data {
// the underlying type for the generatedImage is dictated by the value of
// ImageGenerationOptions.ResponseFormat. In this example we used `azopenai.ImageGenerationResponseFormatURL`,
// so the underlying type will be ImageLocation.
resp, err := http.Head(*generatedImage.URL)
if err != nil {
// handle error
}
fmt.Fprintf(os.Stderr, "Image generated, HEAD request on URL returned %d\nImage URL: %s\n", resp.StatusCode, *generatedImage.URL)
}
}
go run
명령을 사용하여 스크립트를 실행합니다.
go run sample.go
출력
생성된 이미지의 URL이 콘솔에 인쇄됩니다.
Image generated, HEAD request on URL returned 200
Image URL: https://dalleproduse.blob.core.windows.net/private/images/d7b28a5c-ca32-4792-8c2a-6a5d8d8e5e45/generated_00.png?se=2023-08-29T17%3A05%3A37Z&sig=loqntaPypYVr9VTT5vpbsjsCz31g1GsdoQi0smbGkks%3D&ske=2023-09-02T18%3A53%3A23Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-26T18%3A53%3A23Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02
참고 항목
이미지 생성 API에는 콘텐츠 조정 필터가 제공되어 있습니다. 서비스가 메시지를 유해한 콘텐츠로 인식하면 생성된 이미지를 반환하지 않습니다. 자세한 내용은 콘텐츠 필터 문서를 참조하세요.
리소스 정리
Azure OpenAI 리소스를 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제하면 됩니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.
다음 단계
- DALL-E 방법 가이드를 사용하여 이미지 생성 API를 더 자세히 살펴봅니다.
- 더 많은 예제를 보려면 Azure OpenAI 샘플 GitHub 리포지토리를 체크 아웃합니다.
이 가이드에 따라 PowerShell을 사용하여 Azure OpenAI Service 이미지 생성 API 호출을 시작합니다.
참고 항목
이미지 생성 API는 텍스트 프롬프트에서 이미지를 만듭니다. 기존 이미지를 편집하거나 변형하여 만들지 않습니다.
필수 구성 요소
- Azure 구독 체험 계정 만들기
- 이 작업의 경우 예제에서 Windows PowerShell 5.1에서 사용할 수 없는 새로운 기능을 사용하기 때문에 최신 버전의 PowerShell 7을 사용하는 것이 좋습니다.
- 지원되는 지역에서 만든 Azure OpenAI 리소스(지역 가용성 참조)입니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
설정
키 및 엔드포인트 검색
Azure OpenAI에 대해 성공적으로 호출하려면 엔드포인트와 키가 필요합니다.
변수 이름 | 값 |
---|---|
ENDPOINT |
서비스 엔드포인트는 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. 또는 Azure AI Studio의 배포 페이지를 통해 엔드포인트를 찾을 수 있습니다. 예제 엔드포인트는 https://docs-test-001.openai.azure.com/ 입니다. |
API-KEY |
이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. KEY1 또는 KEY2 를 사용할 수 있습니다. |
Azure Portal에서 해당 리소스로 이동합니다. 키 및 엔드포인트 섹션은 리소스 관리 섹션에서 찾을 수 있습니다. 엔드포인트 및 액세스 키를 복사합니다. API 호출을 인증하는 데 모두 필요합니다. KEY1
또는 KEY2
를 사용할 수 있습니다. 항상 두 개의 키를 사용하면 서비스 중단 없이 키를 안전하게 회전하고 다시 생성할 수 있습니다.
환경 변수
키 및 엔드포인트에 대한 영구 환경 변수를 만들고 할당합니다.
Important
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"
DALL-E2를 사용하여 이미지 생성
quickstart.ps1이라는 새 PowerShell 파일을 만듭니다. 선호하는 편집기 또는 IDE에서 새 파일을 엽니다.
quickstart.ps1의 내용을 다음 코드로 바꿉니다. 해당 필드에 엔드포인트 URL 및 키를 입력합니다.
prompt
의 값을 원하는 텍스트로 변경합니다.# Azure OpenAI metadata variables $openai = @{ api_key = $Env:AZURE_OPENAI_API_KEY api_base = $Env:AZURE_OPENAI_ENDPOINT # your endpoint should look like the following https://YOUR_RESOURCE_NAME.openai.azure.com/ api_version = '2023-06-01-preview' # this may change in the future } # Text to describe image $prompt = 'A painting of a dog' # Header for authentication $headers = [ordered]@{ 'api-key' = $openai.api_key } # Adjust these values to fine-tune completions $body = [ordered]@{ prompt = $prompt size = '1024x1024' n = 1 } | ConvertTo-Json # Call the API to generate the image and retrieve the response $url = "$($openai.api_base)/openai/images/generations:submit?api-version=$($openai.api_version)" $submission = Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Post -ContentType 'application/json' -ResponseHeadersVariable submissionHeaders $operation_location = $submissionHeaders['operation-location'][0] $status = '' while ($status -ne 'succeeded') { Start-Sleep -Seconds 1 $response = Invoke-RestMethod -Uri $operation_location -Headers $headers $status = $response.status } # Set the directory for the stored image $image_dir = Join-Path -Path $pwd -ChildPath 'images' # If the directory doesn't exist, create it if (-not(Resolve-Path $image_dir -ErrorAction Ignore)) { New-Item -Path $image_dir -ItemType Directory } # Initialize the image path (note the filetype should be png) $image_path = Join-Path -Path $image_dir -ChildPath 'generated_image.png' # Retrieve the generated image $image_url = $response.result.data[0].url # extract image URL from response $generated_image = Invoke-WebRequest -Uri $image_url -OutFile $image_path # download the image return $image_path
Important
프로덕션의 경우 Azure Key Vault를 사용한 PowerShell 비밀 관리와 같은 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 자격 증명 보안에 대한 자세한 내용은 Azure AI 서비스 보안 문서를 참조하세요.
PowerShell을 사용하여 스크립트를 실행합니다.
./quickstart.ps1
생성된 이미지가 준비될 때까지 스크립트가 반복됩니다.
출력
PowerShell은 Azure OpenAI에서 이미지를 요청하고 출력 이미지를 지정된 디렉터리의 generated_image.png 파일에 저장합니다. 편의를 위해 파일의 전체 경로는 스크립트의 끝에 반환됩니다.
이미지 생성 API에는 콘텐츠 조정 필터가 제공되어 있습니다. 서비스에서 프롬프트를 유해한 콘텐츠로 인식하면 이미지를 생성하지 않습니다. 자세한 내용은 콘텐츠 필터링을 참조하세요.
리소스 정리
Azure OpenAI 리소스를 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제하면 됩니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.
다음 단계
- DALL-E 방법 가이드를 사용하여 이미지 생성 API를 더 자세히 살펴봅니다.
- Azure OpenAI 샘플 GitHub 리포지토리에서 예제를 사용해 보세요.