빠른 시작: 다중 모달 콘텐츠 분석(미리 보기)
다중 모달 API는 이미지 콘텐츠와 텍스트 콘텐츠가 모두 포함된 자료를 분석하여 사용자가 생성했거나 AI가 생성한 유해한 콘텐츠로부터 애플리케이션과 서비스를 더 안전하게 만듭니다. 이미지 및 관련 텍스트 콘텐츠를 함께 분석하면 컨텍스트를 유지하고 콘텐츠를 보다 포괄적으로 이해할 수 있습니다.
콘텐츠 필터링 방식에 대한 자세한 내용은 피해 범주 개념 페이지를 참조하세요. API 입력 제한에 대해서는 개요의 입력 요구 사항 섹션을 참조하세요.
Important
이 기능은 특정 Azure 지역에서만 사용할 수 있습니다. 지역 가용성을 참조하세요.
필수 조건
- Azure 구독 - 체험 구독 만들기
- Azure 구독이 있으면 Azure Portal에서 콘텐츠 안전 리소스를 생성하여 키와 엔드포인트를 가져옵니다. 리소스의 고유한 이름을 입력하고, 구독을 선택하고, 리소스 그룹과 지원되는 지역, 지원되는 가격 책정 계층을 선택합니다. 다음으로 만들기를 선택합니다.
- 리소스를 배포하는 데 몇 분 정도 걸립니다. 완료되면 리소스로 이동을 선택합니다. 왼쪽 창의 리소스 관리에서 구독 키 및 엔드포인트를 선택합니다. 나중에 사용할 수 있도록 엔드포인트와 키 값 중 하나를 임시 위치에 복사합니다.
- 다음 중 하나가 설치되었습니다.
- REST API 호출을 위한 cURL.
- Python 3.x가 설치되었습니다.
텍스트로 이미지 분석
다음 섹션에서는 cURL을 사용한 샘플 이미지 조정 요청을 살펴봅니다.
샘플 이미지 준비
분석할 샘플 이미지를 선택한 뒤 이를 디바이스에 다운로드합니다.
이미지 제한 사항은 입력 요구 사항을 참조하세요. 애니메이션이 적용된 형식에서는 서비스가 분석할 첫 번째 프레임을 추출합니다.
로컬 파일 스트림 또는 Blob Storage URL의 두 가지 방법 중 하나로 이미지를 입력할 수 있습니다.
- 로컬 파일 스트림(권장): 이미지를 base64로 인코딩합니다. codebeautify 등의 웹 사이트를 사용하여 인코딩을 수행할 수 있습니다. 그런 다음 인코딩된 문자열을 임시 위치에 저장합니다.
- Blob Storage URL: Azure Blob Storage 계정에 이미지를 업로드합니다. Blob Storage 빠른 시작에 따라 이 작업을 수행하는 방법을 알아봅니다. 그런 다음 Azure Storage Explorer 열어 이미지로 연결되는 URL을 가져옵니다. 임시 위치에 저장합니다.
텍스트로 이미지 분석
아래 명령을 텍스트 편집기에 붙여넣고 다음과 같이 변경합니다.
<endpoint>
를 리소스 엔드포인트 URL로 바꿉니다.<your_subscription_key>
를 원하는 키로 바꿉니다.- 본문의
"image"
필드를"content"
필드나"blobUrl"
필드로 채웁니다. 예를 들어{"image": {"content": "<base_64_string>"}
또는{"image": {"blobUrl": "<your_storage_url>"}
입니다. - 선택적으로
"text"
필드의 값을 분석하려는 자체 텍스트로 바꿉니다.
curl --location '<endpoint>/contentsafety/imageWithText:analyze?api-version=2024-09-15-preview ' \
--header 'Ocp-Apim-Subscription-Key: <your_subscription_key>' \
--header 'Content-Type: application/json' \
--data '{
"image": {
"content": "<base_64_string>"
},
"categories": ["Hate","Sexual","Violence","SelfHarm"],
"enableOcr": true,
"text": "I want to kill you"
}'
참고 항목
Blob Storage URL을 사용하는 경우 요청 본문은 다음과 같습니다.
{
"image": {
"blobUrl": "<your_storage_url>"
}
}
아래 필드가 URL에 포함되어야 합니다.
이름 | 필수 여부 | 설명 | Type |
---|---|---|---|
API 버전 | Required | 확인할 API 버전입니다. 현재 버전은 api-version=2024-09-15 입니다. 예: <endpoint>/contentsafety/imageWithText:analyze?api-version=2024-09-15 |
문자열 |
요청 본문의 매개 변수는 다음 표에 정의되어 있습니다.
속성 | Description | Type |
---|---|---|
콘텐츠 또는 blobUrl | (필수) 이미지의 콘텐츠 또는 BLOB URL입니다. base64로 인코딩된 바이트 또는 BLOB URL일 수 있습니다. 둘 다 제공되면 요청이 거부됩니다. 허용되는 최대 이미지 크기는 7,200 x 7,200픽셀이고, 최대 파일 크기는 4MB입니다. 이미지의 최소 크기는 50픽셀 x 50픽셀입니다. | 문자열 |
text | (선택 사항) 이미지에 연결된 텍스트입니다. 한 텍스트 요청에서 최대 1,000자(유니코드 코드 포인트)를 지원합니다. | 문자열 |
enableOcr | (필수) true로 설정하면 서비스에서 OCR을 수행하고 입력 이미지를 사용하여 검색된 텍스트를 동시에 분석합니다. 입력 이미지에서 최대 1000자(유니코드 코드 포인트)를 인식합니다. 다른 내용은 잘립니다. | Boolean |
범주 | (선택 사항) 이는 범주 이름의 배열로 간주됩니다. 사용 가능한 범주 이름 목록은 위험 범주 가이드를 참조하세요. 범주를 지정하지 않으면 네 가지 범주가 모두 사용됩니다. 단일 요청으로 점수를 얻기 위해 여러 범주를 사용합니다. | 열거형 |
명령 프롬프트 창을 열고 cURL 명령을 실행합니다.
출력
콘솔에 이미지 및 텍스트 조정 결과가 JSON 데이터로 표시됩니다. 예시:
{
"categoriesAnalysis": [
{
"category": "Hate",
"severity": 2
},
{
"category": "SelfHarm",
"severity": 0
},
{
"category": "Sexual",
"severity": 0
},
{
"category": "Violence",
"severity": 0
}
]
}
출력의 JSON 필드는 다음과 같이 정의됩니다.
이름 | Description | Type |
---|---|---|
categoriesAnalysis | API가 예측하는 각 출력 클래스입니다. 분류에는 다중 레이블이 지정될 수 있습니다. 예를 들어, 이미지 조정 모델에 이미지가 업로드되면 성적인 콘텐츠와 폭력으로 분류될 수 있습니다. 유해 범주 | 문자열 |
심각도 | 각 피해 범주에 대한 플래그의 심각도 수준입니다. 유해 범주 | 정수 |