다음을 통해 공유


Azure OpenAI에서 차단 목록 사용

구성 가능한 콘텐츠 필터는 대부분의 콘텐츠 조정 요구 사항에 충분합니다. 그러나 사용 사례와 관련된 용어를 필터링해야 할 수 있습니다.

필수 구성 요소

  • Azure 구독 체험 계정 만들기
  • Azure 구독을 보유한 후에는 Azure Portal에서 Azure OpenAI 리소스를 만들어 토큰, 키 및 엔드포인트를 가져옵니다. 리소스의 고유한 이름을 입력하고, 신청서에 입력한 구독을 선택하고, 리소스 그룹, 지원되는 지역 및 지원되는 가격 책정 계층을 선택합니다. 다음으로 만들기를 선택합니다.
    • 리소스를 배포하는 데 몇 분 정도 걸립니다. 완료되면 리소스로 이동을 선택합니다. 왼쪽 창의 리소스 관리에서 구독 키 및 엔드포인트를 선택합니다. 엔드포인트와 키 중 하나는 API를 호출하는 데 사용됩니다.
  • Azure CLI 설치됨
  • cURL 설치

차단 목록 사용

Azure OpenAI API를 사용하여 차단 목록을 만들 수 있습니다. 다음 단계는 시작하는 데 도움이 됩니다.

토큰 가져오기

먼저 차단 목록을 만들고 편집하고 삭제하기 위해 API에 액세스하기 위한 토큰을 가져와야 합니다. 다음 Azure CLI 명령을 사용하여 이 토큰을 가져올 수 있습니다.

az account get-access-token 

차단 목록 만들기 또는 수정

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

  1. {subscriptionId}를 구독 ID로 바꿉니다.
  2. {resourceGroupName}을 리소스 그룹 이름으로 바꿉니다.
  3. {accountName}을 리소스 이름으로 바꿉니다.
  4. {raiBlocklistName}(URL)을 목록의 사용자 지정 이름으로 바꿉니다. 허용되는 문자: 0-9, A-Z, a-z, - . _ ~.
  5. {token}을 위의 "토큰 가져오기" 단계에서 얻은 토큰으로 바꿉니다.
  6. 선택적으로 "description" 필드의 값을 사용자 지정 설명으로 바꿉니다.
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiBlocklists/{raiBlocklistName}?api-version=2024-03-01-preview' \ 
--header 'Authorization: Bearer {token}' \ 
--header 'Content-Type: application/json' \ 
--data-raw '{ 
    "properties": { 
        "description": "This is a prompt blocklist"  
    } 
}' 

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

콘텐츠 필터에 차단 목록 적용

콘텐츠 필터를 아직 만들지 않은 경우 왼쪽에 있는 Studio의 콘텐츠 필터 탭에 있는 만들 수 있습니다. 차단 목록을 사용하려면 이 콘텐츠 필터가 Azure OpenAI 배포에 적용되는지 확인합니다. 왼쪽의 배포 탭에서 이 작업을 수행할 수 있습니다.

콘텐츠 필터에 완료 차단 목록을 적용하려면 다음 cURL 명령을 사용합니다.

  1. {subscriptionId}를 구독 ID로 바꿉니다.
  2. {resourceGroupName}을 리소스 그룹 이름으로 바꿉니다.
  3. {accountName}을 리소스 이름으로 바꿉니다.
  4. {raiPolicyName}을 콘텐츠 필터의 이름으로 바꿉니다.
  5. {token}을 위의 "토큰 가져오기" 단계에서 얻은 토큰으로 바꿉니다.
  6. 본문의 "raiBlocklistName"을 목록의 사용자 지정 이름으로 바꿉니다. 허용되는 문자: 0-9, A-Z, a-z, - . _ ~.
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiPolicies/{raiPolicyName}?api-version=2024-03-01-preview' \ 
--header 'Authorization: Bearer {token}' \ 
--header 'Content-Type: application/json' \ 
--data-raw '{ 
    "properties": { 
        "basePolicyName": "Microsoft.Default", 
        "completionBlocklists": [{ 
            "blocklistName": "raiBlocklistName", 
            "blocking": true 
        }], 
        "contentFilters": [ ] 
    } 
}' 

목록에 blockItems 추가

참고 항목

한 목록에는 최대 10,000개의 용어가 허용됩니다.

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

  1. {subscriptionId}를 구독 ID로 바꿉니다.
  2. {resourceGroupName}을 리소스 그룹 이름으로 바꿉니다.
  3. {accountName}을 리소스 이름으로 바꿉니다.
  4. {raiBlocklistName}(URL)을 목록의 사용자 지정 이름으로 바꿉니다. 허용되는 문자: 0-9, A-Z, a-z, - . _ ~.
  5. {raiBlocklistItemName}을 목록 항목의 사용자 지정 이름으로 바꿉니다.
  6. {token}을 위의 "토큰 가져오기" 단계에서 얻은 토큰으로 바꿉니다.
  7. "blocking pattern" 필드의 값을 차단 목록에 추가하려는 항목으로 바꿉니다. blockItem의 최대 길이는 1000자입니다. 또한 패턴이 정규식인지 또는 정확한 일치인지를 지정합니다.
curl --location --request PUT 'https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/raiBlocklists/{raiBlocklistName}/raiBlocklistItems/{raiBlocklistItemName}?api-version=2024-03-01-preview' \ 
--header 'Authorization: Bearer {token}' \ 
--header 'Content-Type: application/json' \ 
--data-raw '{  
    "properties": {  
        "pattern": "blocking pattern",  
        "isRegex": false  
    }  
}' 

참고 항목

새 용어가 차단 목록에 추가되는 데 약 5분이 걸릴 수 있습니다. 5분 후에 테스트하세요.

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

{ 
  "name": "raiBlocklistItemName", 
  "id": "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.CognitiveServices/accounts/accountName/raiBlocklists/raiBlocklistName/raiBlocklistItems/raiBlocklistItemName", 
  "properties": { 
    "pattern": "blocking pattern", 
    "isRegex": false 
  } 
} 

차단 목록으로 텍스트 분석

이제 차단 목록이 있는 배포를 테스트할 수 있습니다. 이 작업을 수행하는 가장 쉬운 방법은 Azure OpenAI Studio입니다. 프롬프트 또는 완료 시에 콘텐츠가 차단된 경우 콘텐츠 필터링 시스템이 트리거되었다는 오류 메시지가 표시됩니다.

Azure OpenAI 엔드포인트 호출에 대한 지침은 빠른 시작을 참조하세요.

아래 예제에서는 차단 목록이 있는 GPT-35-Turbo 배포가 프롬프트를 차단하고 있습니다. 응답은 400 오류를 반환합니다.

{ 
    "error": { 
        "message": "The response was filtered due to the prompt triggering Azure OpenAI’s content management policy. Please modify your prompt and retry. To learn more about our content filtering policies please read our documentation: https://go.microsoft.com/fwlink/?linkid=2198766", 
        "type": null, 
        "param": "prompt", 
        "code": "content_filter", 
        "status": 400, 
        "innererror": { 
            "code": "ResponsibleAIPolicyViolation", 
            "content_filter_result": { 
                "custom_blocklists": [ 
                    { 
                        "filtered": true, 
                        "id": "raiBlocklistName" 
                    } 
                ], 
                "hate": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "self_harm": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "sexual": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "violence": { 
                    "filtered": false, 
                    "severity": "safe" 
                } 
            } 
        } 
    } 
} 

완료 자체가 차단되면 차단 목록 콘텐츠가 일치할 때만 완료가 차단되므로 응답이 200을 반환합니다. 주석은 차단 목록이 일치했음을 보여 줍니다.

{ 
    "id": "chatcmpl-85NkyY0AkeBMunOjyxivQSiTaxGAl", 
    "object": "chat.completion", 
    "created": 1696293652, 
    "model": "gpt-35-turbo", 
    "prompt_filter_results": [ 
        { 
            "prompt_index": 0, 
            "content_filter_results": { 
                "hate": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "self_harm": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "sexual": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "violence": { 
                    "filtered": false, 
                    "severity": "safe" 
                } 
            } 
        } 
    ], 
    "choices": [ 
        { 
            "index": 0, 
            "finish_reason": "content_filter", 
            "message": { 
                "role": "assistant" 
            }, 
            "content_filter_results": { 
                "custom_blocklists": [ 
                    { 
                        "filtered": true, 
                        "id": "myBlocklistName" 
                    } 
                ], 
                "hate": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "self_harm": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "sexual": { 
                    "filtered": false, 
                    "severity": "safe" 
                }, 
                "violence": { 
                    "filtered": false, 
                    "severity": "safe" 
                } 
            } 
        } 
    ], 
    "usage": { 
        "completion_tokens": 75, 
        "prompt_tokens": 27, 
        "total_tokens": 102 
    } 
} 

Azure OpenAI Studio에서 차단 목록 사용

콘텐츠 필터링 구성(공개 미리 보기)의 일부로 Azure OpenAI Studio에서 사용자 지정 차단 목록을 만들 수도 있습니다. 사용자 지정 콘텐츠 필터를 만드는 방법에 대한 지침은 여기에서 찾을 수 있습니다. 다음 단계에서는 Azure OpenAI Studio를 통해 콘텐츠 필터의 일부로 사용자 지정 차단 목록을 만드는 방법을 보여 줍니다.

  1. 콘텐츠 필터 탭 옆에 있는 차단 목록 탭을 선택합니다. screenshot of blocklist selection.
  2. 차단 목록 만들기를 선택합니다. Screenshot of blocklist create selection.
  3. 차단 목록의 이름을 만들고, 설명을 추가하고, 만들기를 선택합니다. Screenshot of blocklist naming.
  4. 만든 사용자 지정 차단 목록을 선택하고 용어 추가를 선택합니다. Screenshot of custom blocklist add term.
  5. 필터링해야 하는 용어를 추가하고 만들기를 선택합니다. 정규식을 만들 수도 있습니다. Screenshot of custom blocklist add item.
  6. 차단 목록의 모든 용어를 편집 및 삭제할 수 있습니다. Screenshot of custom blocklist edit.
  7. 차단 목록이 준비되면 콘텐츠 필터(미리 보기) 섹션으로 이동하여 사용자 지정된 새 콘텐츠 필터 구성을 만듭니다. 그러면 여러 AI 콘텐츠 안전 구성 요소가 있는 마법사가 열립니다. 기본 필터 및 선택적 모델을 구성하는 방법에 대한 자세한 내용은 여기에서 확인할 수 있습니다. 차단 목록 추가(선택 사항)로 이동합니다.
  8. 이제 사용 가능한 모든 차단 목록이 표시됩니다. 차단 목록에는 두 가지 유형, 즉 사용자가 만든 차단 목록과 Microsoft에서 제공하는 미리 빌드된 차단 목록(이 경우 욕설 차단 목록(영어))이 있습니다.
  9. 이제 콘텐츠 필터링 구성에 포함할 사용 가능한 차단 목록을 결정할 수 있으며 프롬프트나 완료 또는 둘 다에 적용하고 필터링할지를 선택할 수 있습니다. 아래 예제에서는 방금 만든 CustomBlocklist1을 프롬프트 및 완료에 적용하고 욕설 차단 목록을 완료에만 적용합니다. 마지막 단계는 다음을 클릭하여 콘텐츠 필터링 구성을 검토하고 완료하는 것입니다. Screenshot of filtering configuration management.
  10. 언제든지 돌아가서 구성을 편집할 수 있습니다. 준비가 되면 콘텐츠 필터 만들기를 선택합니다. 이제 차단 목록을 포함하는 새 구성을 배포에 적용할 수 있습니다. 여기에서 자세한 지침을 찾을 수 있습니다.

다음 단계