Share via


차단 목록 추가

주의

이 가이드의 샘플 데이터에는 불쾌한 콘텐츠가 포함되어 있을 수 있습니다. 사용자의 재량에 따라 결정하는 것이 좋습니다.

기본 AI 분류자는 대부분의 콘텐츠 조정 요구 사항에 충분합니다. 그러나 사용 사례에 특정한 항목을 선별해야 할 수도 있습니다.

필수 조건

  • Azure 구독 - 체험 구독 만들기
  • Azure 구독이 있으면 Azure Portal에서 콘텐츠 안전 리소스를 생성하여 키와 엔드포인트를 가져옵니다. 리소스의 고유한 이름을 입력하고, 구독을 선택하고, 리소스 그룹, 지원되는 지역(미국 동부 또는 서유럽) 및 지원되는 가격 책정 계층을 선택합니다. 다음으로 만들기를 선택합니다.
    • 리소스를 배포하는 데 몇 분 정도 걸립니다. 완료되면 리소스로 이동을 선택합니다. 왼쪽 창의 리소스 관리에서 구독 키 및 엔드포인트를 선택합니다. 엔드포인트와 키 중 하나는 API를 호출하는 데 사용됩니다.
  • 다음 중 하나가 설치되었습니다.
    • REST API 호출을 위한 cURL.
    • Python 3.x가 설치되었습니다.
      • Python 설치에 pip가 포함되어야 합니다. 명령줄에서 pip --version을 실행하여 pip가 설치되어 있는지 확인할 수 있습니다. 최신 버전의 Python을 설치하여 pip를 받으세요.
      • Python을 사용하는 경우 Python용 Azure AI 콘텐츠 안전 클라이언트 라이브러리를 설치해야 합니다. 프로젝트 디렉터리에서 pip install azure-ai-contentsafety 명령을 실행합니다.
    • .NET 런타임이 설치되었습니다.
      • .NET Core SDK가 설치되었습니다.
      • .NET을 사용하는 경우 .NET용 Azure AI 콘텐츠 안전 클라이언트 라이브러리를 설치해야 합니다. 프로젝트 디렉터리에서 dotnet add package Azure.AI.ContentSafety --prerelease 명령을 실행합니다.

환경 변수 만들기

이 예제에서는 애플리케이션을 실행하는 로컬 컴퓨터의 환경 변수에 자격 증명을 작성합니다.

코드에 키를 직접 포함하지 말고 공개적으로 게시하지 마세요. Azure Key Vault와 같은 추가 인증 옵션은 Azure AI 서비스 보안 문서를 참조하세요.

키 및 엔드포인트에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.

  1. CONTENT_SAFETY_KEY 환경 변수를 설정하려면 YOUR_CONTENT_SAFETY_KEY를 리소스에 대한 키 중 하나로 바꿉니다.
  2. CONTENT_SAFETY_ENDPOINT 환경 변수를 설정하려면 YOUR_CONTENT_SAFETY_ENDPOINT를 리소스에 대한 엔드포인트로 바꿉니다.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

환경 변수가 추가되면 콘솔 창을 포함하여 환경 변수를 읽는 실행 중인 프로그램을 다시 시작해야 할 수 있습니다.

차단 목록으로 텍스트 분석

텍스트 API와 함께 사용할 차단 목록을 만들 수 있습니다. 다음 단계는 시작하는 데 도움이 됩니다.

차단 목록 만들기 또는 수정

아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.

  1. <endpoint>을 엔드포인트 URL로 바꿉니다.
  2. <enter_your_key_here>를 원하는 키로 바꿉니다.
  3. <your_list_name>(URL에 있음)을 목록의 사용자 지정 이름으로 바꿉니다. 또한 REST URL의 마지막 용어를 동일한 이름으로 바꿉니다. 허용되는 문자: 0-9, A-Z, a-z, - . _ ~.
  4. 선택적으로 "description" 필드의 값을 사용자 지정 설명으로 바꿉니다.
curl --location --request PATCH '<endpoint>/contentsafety/text/blocklists/<your_list_name>?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "description": "This is a violence list"
}'

응답 코드는 201(새 목록 만들기) 또는 200(기존 목록 업데이트)이어야 합니다.

목록에 blocklistItems 추가

참고 항목

모든 목록에 걸쳐 총 10,000개의 용어로 제한됩니다. 한 요청에 최대 100개의 blocklistItem을 추가할 수 있습니다.

아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.

  1. <endpoint>을 엔드포인트 URL로 바꿉니다.
  2. <enter_your_key_here>를 원하는 키로 바꿉니다.
  3. URL의 <your_list_name>을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
  4. 선택적으로 "description" 필드의 값을 사용자 지정 설명으로 바꿉니다.
  5. "text" 필드의 값을 차단 목록에 추가하려는 항목으로 바꿉니다. blocklistItem의 최대 길이는 128자입니다.
curl --location --request POST '<endpoint>/contentsafety/text/blocklists/<your_list_name>:addOrUpdateBlocklistItems?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \
--data-raw '"blocklistItems": [{
    "description": "string",
    "text": "bleed"
}]'

한 번의 API 호출로 여러 blocklistItem을 추가할 수 있습니다. 요청 본문을 데이터 그룹의 JSON 배열로 만듭니다.

{
   "blocklistItems": [
       {
           "description": "string",
           "text": "bleed"
       },
       {
           "description": "string",
           "text": "blood"
       }
   ]
}

응답 코드는 200이어야 합니다.

{
"blocklistItems:"[
  {
  "blocklistItemId": "string",
  "description": "string",
  "text": "bleed"
  
   }
 ]
}

참고 항목

blockItem을 추가하거나 편집한 후 텍스트 분석에 적용되기까지 약간의 지연이 발생합니다(보통 5분 이내).

차단 목록으로 텍스트 분석

아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.

  1. <endpoint>을 엔드포인트 URL로 바꿉니다.
  2. <enter_your_key_here>를 원하는 키로 바꿉니다.
  3. <your_list_name>을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다. "blocklistNames" 필드에는 여러 목록 ID의 배열이 포함될 수 있습니다.
  4. 필요에 따라 "breakByBlocklists" 값을 변경합니다. true는 차단 목록이 일치하면 모델 출력 없이 즉시 분석이 반환됨을 나타냅니다. false는 모델이 기본 범주에서 계속 분석을 수행하도록 합니다.
  5. 선택적으로 "text" 필드의 값을 분석하려는 텍스트로 변경합니다.
curl --location --request POST '<endpoint>/contentsafety/text:analyze?api-version=2023-10-01&' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "text": "I want to beat you till you bleed",
  "categories": [
    "Hate",
    "Sexual",
    "SelfHarm",
    "Violence"
  ],
  "blocklistNames":["<your_list_name>"],
  "haltOnBlocklistHit": false,
  "outputType": "FourSeverityLevels"
}'

JSON 응답에는 차단 목록과 일치하는 항목을 나타내는 "blocklistMatchResults"가 포함됩니다. 일치 항목이 발견된 텍스트 문자열의 위치를 보고합니다.

{
  "blocklistsMatch": [
    {
      "blocklistName": "string",
      "blocklistItemId": "string",
      "blocklistItemText": "bleed"
    }
  ],
  "categoriesAnalysis": [
    {
      "category": "Hate",
      "severity": 0
    }
  ]
}

기타 차단 목록 작업

이 섹션에는 차단 목록 기능을 관리하고 사용하는 데 도움이 되는 추가 작업이 포함되어 있습니다.

목록의 모든 blocklistItem 나열

아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.

  1. <endpoint>을 엔드포인트 URL로 바꿉니다.
  2. <enter_your_key_here>를 원하는 키로 바꿉니다.
  3. 요청 URL의 <your_list_name>을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
curl --location --request GET '<endpoint>/contentsafety/text/blocklists/<your_list_name>/blocklistItems?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json'

상태 코드는 200이어야 하며 응답 본문은 다음과 같아야 합니다.

{
 "values": [
  {
   "blocklistItemId": "string",
   "description": "string",
   "text": "bleed",
  }
 ]
}

모든 차단 목록 나열

아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.

  1. <endpoint>을 엔드포인트 URL로 바꿉니다.
  2. <enter_your_key_here>를 원하는 키로 바꿉니다.
curl --location --request GET '<endpoint>/contentsafety/text/blocklists?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json'

상태 코드는 200이어야 합니다. JSON 응답은 다음과 같습니다.

"value": [
  {
    "blocklistName": "string",
    "description": "string"
  }
]

blocklistName으로 차단 목록 가져오기

아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.

  1. <endpoint>을 엔드포인트 URL로 바꿉니다.
  2. <enter_your_key_here>를 원하는 키로 바꿉니다.
  3. 요청 URL의 <your_list_name>을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
cURL --location '<endpoint>contentsafety/text/blocklists/<your_list_name>?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--data ''

상태 코드는 200이어야 합니다. JSON 응답은 다음과 같습니다.

{
  "blocklistName": "string",
  "description": "string"
}

blocklistName 및 blocklistItemId로 blocklistItem 가져오기

아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.

  1. <endpoint>을 엔드포인트 URL로 바꿉니다.
  2. <enter_your_key_here>를 원하는 키로 바꿉니다.
  3. 요청 URL의 <your_list_name>을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
  4. blocklistItem의 ID 값으로 <your_item_id>을 바꿉니다. 이는 Add blocklistItems 또는 모든 blocklistItems 가져오기 API 호출의 "blocklistItemId" 필드 값입니다.
cURL --location '<endpoint>contentsafety/text/blocklists/<your_list_name>/blocklistItems/<your_item_id>?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--data ''

상태 코드는 200이어야 합니다. JSON 응답은 다음과 같습니다.

{
  "blocklistItemId": "string",
  "description": "string",
  "text": "string"
}
  1. <your_list_name>을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
  2. 삭제하려는 항목의 ID로 <your_block_item_id>를 바꿉니다.
  3. 스크립트를 실행합니다.

차단 목록에서 blocklistItems를 제거합니다.

참고 항목

항목을 삭제한 후 텍스트 분석에 적용되기까지 약간의 지연이 발생하며 일반적으로 5분 이내가 소요됩니다.

아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.

  1. <endpoint>을 엔드포인트 URL로 바꿉니다.
  2. <enter_your_key_here>를 원하는 키로 바꿉니다.
  3. 요청 URL의 <your_list_name>을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
  4. blocklistItem의 ID 값으로 <item_id>을 바꿉니다. 이는 Add blocklistItems 또는 모든 blocklistItems 가져오기 API 호출의 "blocklistItemId" 필드 값입니다.
curl --location --request DELETE '<endpoint>/contentsafety/text/blocklists/<your_list_name>:removeBlocklistItems?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json'
--data-raw '"blocklistItemIds":[
    "<item_id>"
]'

한 번의 API 호출로 여러 blocklistItem을 삭제할 수 있습니다. 요청 본문을 blocklistItemId 값의 배열로 만듭니다.

응답 코드는 204여야 합니다.

목록 및 모든 해당 콘텐츠를 삭제합니다.

참고 항목

목록을 삭제한 후 텍스트 분석에 적용되기까지 약간의 지연이 발생하며 일반적으로 5분 이내가 소요됩니다.

아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.

  1. <endpoint>을 엔드포인트 URL로 바꿉니다.
  2. <enter_your_key_here>를 원하는 키로 바꿉니다.
  3. 요청 URL의 <your_list_name>을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
curl --location --request DELETE '<endpoint>/contentsafety/text/blocklists/<your_list_name>?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \

응답 코드는 204여야 합니다.

다음 단계

이 가이드에 사용된 API에 대해 자세히 알아보려면 API 참조 설명서를 참조하세요.