이 문서에서는 GA 릴리스에서 Azure OpenAI 2024-10-21 에 대한 이미지 생성 및 오디오(음성) 데이터 평면 유추 REST API 작업을 설명합니다. 채팅 완료, 포함, 완료 및 기타 모든 작업은 공식 Azure OpenAI REST API 참조를 참조하세요.
API 사양
Azure OpenAI 모델과 자원을 관리하고 상호작용하는 것은 세 가지 주요 API 표면으로 나뉩니다:
- 컨트롤 플레인
- 데이터 평면 - 저작
- 데이터 평면 - 추론
각 API 서피스/명세는 서로 다른 Azure OpenAI 기능 집합을 캡슐화합니다. 각 API는 고유한 미리보기와 안정적/일반 제공(GA) API 릴리스 세트를 가지고 있습니다. 현재 미리보기 릴리스는 보통 월간 일정을 따르는 경향이 있습니다.
Important
이제 새로운 미리보기 추론 API가 추가되었습니다. 자세한 내용은 API 수명주기 가이드에서 확인하세요.
| API | 최신 미리보기 발표 | 최신 GA 릴리스 | Specifications | Description |
|---|---|---|---|---|
| 컨트롤 플레인 | 2025-07-01-preview |
2025-06-01 |
사양 파일 | 제어 평면 API는 자원 생성, 모델 배포, 기타 상위 자원 관리 작업과 같은 작업에 사용됩니다. 제어 플레인은 또한 Azure Resource Manager, Bicep, Terraform, Azure CLI 같은 기능을 수행할 수 있는 것을 관리합니다. |
| 데이터 평면 | v1 preview |
v1 |
사양 파일 | 데이터 플레인 API는 추론 및 저작 작업을 제어합니다. |
Authentication
Azure OpenAI는 두 가지 인증 방법을 제공합니다. API 키나 Microsoft Entra ID 중 하나를 사용할 수 있습니다.
API 키 인증: 이 유형의 인증에서는 모든 API 요청이 HTTP 헤더에
api-keyAPI 키를 포함해야 합니다. 퀵스타트는 이러한 인증 방식으로 전화를 걸는 방법에 대한 안내를 제공합니다.Microsoft Entra ID 인증: Microsoft Entra 토큰을 사용해 API 호출을 인증할 수 있습니다. 인증 토큰은 요청 시 헤더로
Authorization포함됩니다. 제공된 토큰은 앞에Bearer, 예를Bearer YOUR_AUTH_TOKEN들어 로 로 붙어야 한다. Microsoft Entra ID로인증하는 방법에 관한 저희 사용 가이드를 읽어보실 수 있습니다.
REST API 버전 관리
서비스 API는 쿼리 매개변수를 사용하여 api-version 버전이 지정됩니다. 모든 버전은 YYYY-MM-DD 날짜 구조를 따릅니다. 다음은 그 예입니다.
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/chat/completions?api-version=2024-06-01
데이터 평면 추론
이 문서의 나머지 부분에는 Azure OpenAI 데이터 평면 유추 사양2024-10-21의 GA 릴리스에서 이미지 및 오디오 작업이 설명되어 있습니다.
미리 보기 이미지 및 오디오 작업은 미리 보기 이미지 및 오디오 REST API 참조를 참조하세요.
전사 - 만들기
POST https://{endpoint}/openai/deployments/{deployment-id}/audio/transcriptions?api-version=2024-10-21
오디오를 입력 언어로 전사합니다.
URI 매개 변수
| Name | In | 필수 | Type | Description |
|---|---|---|---|---|
| endpoint | 경로 | 예 | string Url |
OpenAI 엔드포인트Azure 지원(프로토콜 및 호스트명, 예: https://aoairesource.openai.azure.com. "aoairesource"를 Azure OpenAI 리소스 이름으로 대체하세요. https://{your-resource-name}.openai.azure.com |
| 배포 ID | 경로 | 예 | string | 음성 변환 모델의 배포 ID. 지원되는 모델에 대한 정보는 [/azure/ai-foundry/openai/concepts/models#audio-models]를 참조하세요. |
| API 버전 | query | 예 | string | API 버전 |
요청 헤더
| Name | 필수 | Type | Description |
|---|---|---|---|
| API 키 | True | string | 여기에서 Azure OpenAI API 키 제공 |
요청 본문
콘텐츠 형식: multipart/form-data
| Name | Type | Description | 필수 | 기본값 |
|---|---|---|---|---|
| 파일 | string | 전사할 오디오 파일 객체. | 예 | |
| 프롬프트 | string | 모델의 스타일을 안내하거나 이전 오디오 세그먼트를 이어가는 선택적 텍스트. 프롬프트는 오디오 언어와 일치해야 합니다. | No | |
| 응답_형식 | audioResponseFormat | 출력 형식을 정의합니다. | No | |
| 온도 | number | 샘플링 온도는 0에서 1 사이입니다. 0.8처럼 높은 값은 출력이 더 무작위적이고, 0.2처럼 낮은 값은 더 집중되고 결정론적으로 만듭니다. 0으로 설정하면 모델은 로그 확률을 사용해 특정 임계값에 도달할 때까지 자동으로 온도를 올립니다. | No | 0 |
| language | string | 입력 오디오의 언어. 입력 언어를 ISO-639-1 형식으로 제공하면 정확도와 지연 시간이 향상됩니다. | No |
응답
상태 코드: 200
설명: 확인
| 콘텐츠-타입 | Type | 설명 |
|---|---|---|
| application/json | audioResponse 또는 audioVerboseResponse | |
| text/plain | string | 텍스트 형식(텍스트, vtt 또는 srt 중 하나일 때)response_format 전사한 텍스트. |
예제
Example
제공된 음성 데이터로부터 텍스트와 관련 메타데이터를 받아냅니다.
POST https://{endpoint}/openai/deployments/{deployment-id}/audio/transcriptions?api-version=2024-10-21
응답: 상태 코드: 200
{
"body": {
"text": "A structured object when requesting json or verbose_json"
}
}
Example
제공된 음성 데이터로부터 텍스트와 관련 메타데이터를 받아냅니다.
POST https://{endpoint}/openai/deployments/{deployment-id}/audio/transcriptions?api-version=2024-10-21
"---multipart-boundary\nContent-Disposition: form-data; name=\"file\"; filename=\"file.wav\"\nContent-Type: application/octet-stream\n\nRIFF..audio.data.omitted\n---multipart-boundary--"
응답: 상태 코드: 200
{
"type": "string",
"example": "plain text when requesting text, srt, or vtt"
}
번역 - 창조
POST https://{endpoint}/openai/deployments/{deployment-id}/audio/translations?api-version=2024-10-21
입력된 오디오를 영어 텍스트로 전사하고 번역합니다.
URI 매개 변수
| Name | In | 필수 | Type | Description |
|---|---|---|---|---|
| endpoint | 경로 | 예 | string Url |
OpenAI 엔드포인트Azure 지원(프로토콜 및 호스트명, 예: https://aoairesource.openai.azure.com. "aoairesource"를 Azure OpenAI 리소스 이름으로 대체하세요. https://{your-resource-name}.openai.azure.com |
| 배포 ID | 경로 | 예 | string | 배포된 위스퍼 모델의 배포 ID. 지원되는 모델에 대한 정보는 [/azure/ai-foundry/openai/concepts/models#audio-models]를 참조하세요. |
| API 버전 | query | 예 | string | API 버전 |
요청 헤더
| Name | 필수 | Type | Description |
|---|---|---|---|
| API 키 | True | string | 여기에서 Azure OpenAI API 키 제공 |
요청 본문
콘텐츠 형식: multipart/form-data
| Name | Type | Description | 필수 | 기본값 |
|---|---|---|---|---|
| 파일 | string | 번역할 오디오 파일. | 예 | |
| 프롬프트 | string | 모델의 스타일을 안내하거나 이전 오디오 세그먼트를 이어가는 선택적 텍스트. 프롬프트는 영어로 작성되어야 합니다. | No | |
| 응답_형식 | audioResponseFormat | 출력 형식을 정의합니다. | No | |
| 온도 | number | 샘플링 온도는 0에서 1 사이입니다. 0.8처럼 높은 값은 출력이 더 무작위적이고, 0.2처럼 낮은 값은 더 집중되고 결정론적으로 만듭니다. 0으로 설정하면 모델은 로그 확률을 사용해 특정 임계값에 도달할 때까지 자동으로 온도를 올립니다. | No | 0 |
응답
상태 코드: 200
설명: 확인
| 콘텐츠-타입 | Type | 설명 |
|---|---|---|
| application/json | audioResponse 또는 audioVerboseResponse | |
| text/plain | string | 텍스트 형식(텍스트, vtt 또는 srt 중 하나일 때)response_format 전사한 텍스트. |
예제
Example
제공된 음성 데이터로부터 영어 전사된 텍스트와 관련 메타데이터를 제공합니다.
POST https://{endpoint}/openai/deployments/{deployment-id}/audio/translations?api-version=2024-10-21
"---multipart-boundary\nContent-Disposition: form-data; name=\"file\"; filename=\"file.wav\"\nContent-Type: application/octet-stream\n\nRIFF..audio.data.omitted\n---multipart-boundary--"
응답: 상태 코드: 200
{
"body": {
"text": "A structured object when requesting json or verbose_json"
}
}
Example
제공된 음성 데이터로부터 영어 전사된 텍스트와 관련 메타데이터를 제공합니다.
POST https://{endpoint}/openai/deployments/{deployment-id}/audio/translations?api-version=2024-10-21
"---multipart-boundary\nContent-Disposition: form-data; name=\"file\"; filename=\"file.wav\"\nContent-Type: application/octet-stream\n\nRIFF..audio.data.omitted\n---multipart-boundary--"
응답: 상태 코드: 200
{
"type": "string",
"example": "plain text when requesting text, srt, or vtt"
}
이미지 생성
POST https://{endpoint}/openai/deployments/{deployment-id}/images/generations?api-version=2024-10-21
주어진 dall-e 모델 배포에서 텍스트 캡션으로부터 이미지 배치를 생성합니다
URI 매개 변수
| Name | In | 필수 | Type | Description |
|---|---|---|---|---|
| endpoint | 경로 | 예 | string Url |
OpenAI 엔드포인트Azure 지원(프로토콜 및 호스트명, 예: https://aoairesource.openai.azure.com. "aoairesource"를 Azure OpenAI 리소스 이름으로 대체하세요. https://{your-resource-name}.openai.azure.com |
| 배포 ID | 경로 | 예 | string | 배치된 dall-e 모델의 배치 ID. |
| API 버전 | query | 예 | string | API 버전 |
요청 헤더
| Name | 필수 | Type | Description |
|---|---|---|---|
| API 키 | True | string | 여기에서 Azure OpenAI API 키 제공 |
요청 본문
Content-Type: application/json
| Name | Type | Description | 필수 | 기본값 |
|---|---|---|---|---|
| 프롬프트 | string | 원하는 이미지에 대한 텍스트 설명. 최대 길이는 4,000자입니다. | 예 | |
| n | 정수 (integer) | 생성해야 할 이미지 수. | No | 1 |
| size | imageSize | 생성된 이미지의 크기. | No | 1024x1024 |
| 응답_형식 | imagesResponseFormat | 생성된 이미지가 반환되는 형식입니다. | No | Url |
| user | string | 최종 사용자를 대표하는 고유 식별자로, 남용을 모니터링하고 탐지하는 데 도움이 됩니다. | No | |
| 질 | imageQuality | 생성될 이미지의 품질입니다. | No | 표준 |
| 스타일 | imageStyle | 생성된 이미지의 스타일. | No | vivid |
응답
상태 코드: 200
설명: 확인
| 콘텐츠-타입 | Type | 설명 |
|---|---|---|
| application/json | generateImagesResponse |
상태 코드: 기본 상태
설명: 오류가 발생했습니다.
| 콘텐츠-타입 | Type | 설명 |
|---|---|---|
| application/json | dalleErrorResponse |
예제
Example
프롬프트가 주어진 이미지를 생성합니다.
POST https://{endpoint}/openai/deployments/{deployment-id}/images/generations?api-version=2024-10-21
{
"prompt": "In the style of WordArt, Microsoft Clippy wearing a cowboy hat.",
"n": 1,
"style": "natural",
"quality": "standard"
}
응답: 상태 코드: 200
{
"body": {
"created": 1698342300,
"data": [
{
"revised_prompt": "A vivid, natural representation of Microsoft Clippy wearing a cowboy hat.",
"prompt_filter_results": {
"sexual": {
"severity": "safe",
"filtered": false
},
"violence": {
"severity": "safe",
"filtered": false
},
"hate": {
"severity": "safe",
"filtered": false
},
"self_harm": {
"severity": "safe",
"filtered": false
},
"profanity": {
"detected": false,
"filtered": false
}
},
"url": "https://dalletipusw2.blob.core.windows.net/private/images/e5451cc6-b1ad-4747-bd46-b89a3a3b8bc3/generated_00.png?se=2023-10-27T17%3A45%3A09Z&...",
"content_filter_results": {
"sexual": {
"severity": "safe",
"filtered": false
},
"violence": {
"severity": "safe",
"filtered": false
},
"hate": {
"severity": "safe",
"filtered": false
},
"self_harm": {
"severity": "safe",
"filtered": false
}
}
}
]
}
}
Components
채팅, 완료, 포함 및 기타 텍스트 작업에서 사용되는 스키마 정의는 Azure OpenAI REST API 참조를 참조하세요. 다음 스키마는 이 페이지에서 이미지 및 오디오 작업을 지원합니다.
내부 오류 코드
내부 오류 객체에 대한 오류 코드.
설명: 내부 오류 객체의 오류 코드.
형식: 문자열
기본값:
열거 이름: InnerErrorCode
열거형 값:
| Value | Description |
|---|---|
| ResponsibleAIPolicyViolation | 이 프롬프트는 또 다른 콘텐츠 필터 규칙 중 하나를 위반했습니다. |
dalleErrorResponse
| Name | Type | Description | 필수 | 기본값 |
|---|---|---|---|---|
| 오류 | dalleError | No |
dalleError
| Name | Type | Description | 필수 | 기본값 |
|---|---|---|---|---|
| param | string | No | ||
| type | string | No | ||
| inner_error | dalleInnerError | 내부 오류가 추가된 세부사항입니다. | No |
dalleInnerError
내부 오류가 추가된 세부사항입니다.
| Name | Type | Description | 필수 | 기본값 |
|---|---|---|---|---|
| 코드 | innerErrorCode | 내부 오류 객체에 대한 오류 코드. | No | |
| content_filter_results | dalleFilterResults | 콘텐츠 필터링 카테고리(증오, 성적, 폭력, self_harm), 감지 여부, 심각도 수준(very_low, 낮음, 중간, 고수준, 해로운 콘텐츠의 강도와 위험 수준을 결정함), 필터링 여부에 관한 정보입니다. 탈옥 내용과 욕설에 관한 정보, 감지되었는지, 필터링되었는지 여부. 그리고 고객 차단 목록이 필터링되었는지 여부와 그 ID에 관한 정보도 알려줍니다. | No | |
| 수정된_프롬프트 | string | 이미지를 생성하는 데 사용된 프롬프트, 혹은 프롬프트에 수정된 부분이 있다면 말이죠. | No |
contentFilterSeverityResult
| Name | Type | Description | 필수 | 기본값 |
|---|---|---|---|---|
| filtered | boolean | 예 | ||
| severity | string | No |
콘텐츠 필터 감지 결과
| Name | Type | Description | 필수 | 기본값 |
|---|---|---|---|---|
| filtered | boolean | 예 | ||
| detected | boolean | No |
dalleFilterResults
콘텐츠 필터링 카테고리(증오, 성적, 폭력, self_harm), 감지 여부, 심각도 수준(very_low, 낮음, 중간, 고수준, 해로운 콘텐츠의 강도와 위험 수준을 결정함), 필터링 여부에 관한 정보입니다. 탈옥 내용과 욕설에 관한 정보, 감지되었는지, 필터링되었는지 여부. 그리고 고객 차단 목록이 필터링되었는지 여부와 그 ID에 관한 정보도 알려줍니다.
| Name | Type | Description | 필수 | 기본값 |
|---|---|---|---|---|
| sexual | 내용필터심각도결과 | No | ||
| violence | 내용필터심각도결과 | No | ||
| 증오하다 | 내용필터심각도결과 | No | ||
| self_harm | 내용필터심각도결과 | No | ||
| profanity | 컨텐츠 필터 감지 결과 | No | ||
| 제한 해제 | 컨텐츠 필터 감지 결과 | No |
audioResponse
json일 때 번역 또는 전사 응답response_format
| Name | Type | Description | 필수 | 기본값 |
|---|---|---|---|---|
| 문자 메시지 | string | 번역 또는 필사된 텍스트. | 예 |
audioVerboseResponse
response_format verbose_json 번역 또는 전사 응답
| Name | Type | Description | 필수 | 기본값 |
|---|---|---|---|---|
| 문자 메시지 | string | 번역 또는 필사된 텍스트. | 예 | |
| 작업 | string | 오디오 작업 종류. | No | |
| language | string | Language. | No | |
| duration | number | 기간. | No | |
| 세그먼트 | 배열 | No |
오디오응답형식
출력 형식을 정의합니다.
설명: 출력 형식을 정의합니다.
형식: 문자열
기본값:
열거형 값:
- Json
- 문자 메시지
- srt
- verbose_json
- vtt
imageQuality
생성될 이미지의 품질입니다.
설명: 생성될 이미지의 품질.
형식: 문자열
기본값: 표준
열구 이름: 품질
열거형 값:
| Value | Description |
|---|---|
| 표준 | 표준 품질로 이미지를 만듭니다. |
| 고화질 | HD 화질은 더 세밀하고 이미지 전반에 걸쳐 더 일관성을 가진 이미지를 만들어냅니다. |
imagesResponseFormat
생성된 이미지가 반환되는 형식입니다.
설명: 생성된 이미지가 반환되는 형식.
형식: 문자열
기본값: url
열거 이름: ImagesResponseFormat
열거형 값:
| Value | Description |
|---|---|
| Url | 생성된 이미지를 임시 다운로드할 수 있는 URL입니다. |
| b64_json | 생성된 이미지는 base64 인코딩된 문자열로 반환됩니다. |
imageSize
생성된 이미지의 크기.
설명: 생성된 이미지의 크기.
형식: 문자열
기본값: 1024x1024
열구 이름: 크기
열거형 값:
| Value | Description |
|---|---|
| 1792x1024 | 생성된 이미지의 원하는 크기는 1792x1024 픽셀입니다. |
| 1024x1792 | 생성된 이미지의 원하는 크기는 1024x1792 픽셀입니다. |
| 1024x1024 | 생성된 이미지의 원하는 크기는 1024x1024 픽셀입니다. |
imageStyle
생성된 이미지의 스타일.
설명: 생성된 이미지의 스타일.
형식: 문자열
기본값: 생생함
열거 이름: 스타일
열거형 값:
| Value | Description |
|---|---|
| vivid | Vivid는 초현실적이고 극적인 이미지를 만들어냅니다. |
| natural | 자연은 더 자연스럽고 덜 과장된 이미지를 만듭니다. |
generateImagesResponse
| Name | Type | Description | 필수 | 기본값 |
|---|---|---|---|---|
| 만든 | 정수 (integer) | 유닉스 타임스탬프가 생성된 시점입니다. | 예 | |
| 데이터 | 배열 | 성공 시 연산의 결과 데이터입니다 | 예 |
다음 단계
REST API를 사용한 모델 및 미세 조정에 대해 알아봅니다.
OpenAI를 구동하는