차단 목록 추가
이 문서의 내용
주의
이 가이드의 샘플 데이터에는 불쾌한 콘텐츠가 포함되어 있을 수 있습니다. 사용자의 재량에 따라 결정하는 것이 좋습니다.
기본 AI 분류자는 대부분의 콘텐츠 조정 요구 사항에 충분합니다. 그러나 사용 사례에 특정한 항목을 선별해야 할 수도 있습니다. 차단 목록을 사용하면 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
명령을 실행합니다.
환경 변수 만들기
이 예제에서는 애플리케이션을 실행하는 로컬 컴퓨터의 환경 변수에 자격 증명을 작성합니다.
키 및 엔드포인트에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.
CONTENT_SAFETY_KEY
환경 변수를 설정하려면 YOUR_CONTENT_SAFETY_KEY
를 리소스에 대한 키 중 하나로 바꿉니다.
CONTENT_SAFETY_ENDPOINT
환경 변수를 설정하려면 YOUR_CONTENT_SAFETY_ENDPOINT
를 리소스에 대한 엔드포인트로 바꿉니다.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
환경 변수가 추가되면 콘솔 창을 포함하여 환경 변수를 읽는 실행 중인 프로그램을 다시 시작해야 할 수 있습니다.
export CONTENT_SAFETY_KEY='YOUR_CONTENT_SAFETY_KEY'
export CONTENT_SAFETY_ENDPOINT='YOUR_CONTENT_SAFETY_ENDPOINT'
환경 변수를 추가한 후 콘솔 창에서 source ~/.bashrc
명령을 실행하여 변경 내용을 적용합니다.
차단 목록으로 텍스트 분석
텍스트 API와 함께 사용할 차단 목록을 만들 수 있습니다. 다음 단계는 시작하는 데 도움이 됩니다.
차단 목록 만들기 또는 수정
아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.
<endpoint>
을 엔드포인트 URL로 바꿉니다.
<enter_your_key_here>
를 원하는 키로 바꿉니다.
<your_list_name>
(URL에 있음)을 목록의 사용자 지정 이름으로 바꿉니다. 또한 REST URL의 마지막 용어를 동일한 이름으로 바꿉니다. 허용되는 문자: 0-9, A-Z, a-z, - . _ ~
.
선택적으로 "description"
필드의 값을 사용자 지정 설명으로 바꿉니다.
curl --location --request PATCH '<endpoint>/contentsafety/text/blocklists/<your_list_name>?api-version=2024-09-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
(기존 목록 업데이트)이어야 합니다.
새 C# 콘솔 앱을 만들고 원하는 편집기나 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
string endpoint = Environment.GetEnvironmentVariable("CONTENT_SAFETY_ENDPOINT");
string key = Environment.GetEnvironmentVariable("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklistName = "<your_list_name>";
var blocklistDescription = "<description>";
var data = new
{
description = blocklistDescription,
};
var createResponse = blocklistClient.CreateOrUpdateTextBlocklist(blocklistName, RequestContent.Create(data));
if (createResponse.Status == 201)
{
Console.WriteLine("\nBlocklist {0} created.", blocklistName);
}
else if (createResponse.Status == 200)
{
Console.WriteLine("\nBlocklist {0} updated.", blocklistName);
}
<your_list_name>
을 목록의 사용자 지정 이름으로 바꿉니다. 허용되는 문자: 0-9, A-Z, a-z, - . _ ~
.
선택적으로 <description>
을 사용자 지정 설명으로 바꿉니다.
코드를 실행합니다.
Java 애플리케이션을 만들고 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
String blocklistName = "<your_list_name>";
Map<String, String> description = new HashMap<>();
description.put("description", "<description>");
BinaryData resource = BinaryData.fromObject(description);
RequestOptions requestOptions = new RequestOptions();
Response<BinaryData> response =
blocklistClient.createOrUpdateTextBlocklistWithResponse(blocklistName, resource, requestOptions);
if (response.getStatusCode() == 201) {
System.out.println("\nBlocklist " + blocklistName + " created.");
} else if (response.getStatusCode() == 200) {
System.out.println("\nBlocklist " + blocklistName + " updated.");
}
<your_list_name>
을 목록의 사용자 지정 이름으로 바꿉니다. 허용되는 문자: 0-9, A-Z, a-z, - . _ ~
.
선택적으로 <description>
을 사용자 지정 설명으로 바꿉니다.
코드를 실행합니다.
새 Python 스크립트를 만들어 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
import os
from azure.ai.contentsafety import BlocklistClient
from azure.core.credentials import AzureKeyCredential
from azure.ai.contentsafety.models import TextBlocklist
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Blocklist client
client = BlocklistClient(endpoint, AzureKeyCredential(key))
blocklist_name = "<your_list_name>"
blocklist_description = "<description>"
try:
blocklist = client.create_or_update_text_blocklist(
blocklist_name=blocklist_name,
options=TextBlocklist(blocklist_name=blocklist_name, description=blocklist_description),
)
if blocklist:
print("\nBlocklist created or updated: ")
print(f"Name: {blocklist.blocklist_name}, Description: {blocklist.description}")
except HttpResponseError as e:
print("\nCreate or update text blocklist failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
<your_list_name>
을 목록의 사용자 지정 이름으로 바꿉니다. 허용되는 문자: 0-9, A-Z, a-z, - . _ ~
.
<description>
을 사용자 지정 설명으로 바꿉니다.
스크립트를 실행합니다.
새 JavaScript 스크립트를 만들어 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
async function createOrUpdateTextBlocklist() {
const blocklistName = "<your_list_name>";
const blocklistDescription = "<description>";
const createOrUpdateTextBlocklistParameters = {
contentType: "application/merge-patch+json",
body: {
description: blocklistDescription,
},
};
const result = await client
.path("/text/blocklists/{blocklistName}", blocklistName)
.patch(createOrUpdateTextBlocklistParameters);
if (isUnexpected(result)) {
throw result;
}
console.log(
"Blocklist created or updated. Name: ",
result.body.blocklistName,
", Description: ",
result.body.description
);
}
(async () => {
await createOrUpdateTextBlocklist();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
<your_list_name>
을 목록의 사용자 지정 이름으로 바꿉니다. 허용되는 문자: 0-9, A-Z, a-z, - . _ ~
.
선택적으로 <description>
을 사용자 지정 설명으로 바꿉니다.
스크립트를 실행합니다.
목록에 blocklistItems 추가
참고 항목
모든 목록에 걸쳐 총 10,000개의 용어 로 제한됩니다. 한 요청에 최대 100개의 blocklistItem을 추가할 수 있습니다.
아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.
<endpoint>
을 엔드포인트 URL로 바꿉니다.
<enter_your_key_here>
를 원하는 키로 바꿉니다.
URL의 <your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
선택적으로 "description"
필드의 값을 사용자 지정 설명으로 바꿉니다.
"text"
필드의 값을 차단 목록에 추가하려는 항목으로 바꿉니다. blocklistItem의 최대 길이는 128자입니다.
curl --location --request POST '<endpoint>/contentsafety/text/blocklists/<your_list_name>:addOrUpdateBlocklistItems?api-version=2024-09-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"
}
]
}
새 C# 콘솔 앱을 만들고 원하는 편집기나 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
string endpoint = Environment.GetEnvironmentVariable("CONTENT_SAFETY_ENDPOINT");
string key = Environment.GetEnvironmentVariable("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklistName = "<your_list_name>";
string blocklistItemText1 = "<block_item_text_1>";
string blocklistItemText2 = "<block_item_text_2>";
var blocklistItems = new TextBlocklistItem[] { new TextBlocklistItem(blocklistItemText1), new TextBlocklistItem(blocklistItemText2) };
var addedBlocklistItems = blocklistClient.AddOrUpdateBlocklistItems(blocklistName, new AddOrUpdateTextBlocklistItemsOptions(blocklistItems));
if (addedBlocklistItems != null && addedBlocklistItems.Value != null)
{
Console.WriteLine("\nBlocklistItems added:");
foreach (var addedBlocklistItem in addedBlocklistItems.Value.BlocklistItems)
{
Console.WriteLine("BlocklistItemId: {0}, Text: {1}, Description: {2}", addedBlocklistItem.BlocklistItemId, addedBlocklistItem.Text, addedBlocklistItem.Description);
}
}
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
blocklistItemText1
및 blocklistItemText2
필드의 값을 차단 목록에 추가하려는 항목으로 바꿉니다. blockItem의 최대 길이는 128자입니다.
선택적으로 blockItems
매개 변수에 더 많은 blockItem 문자열을 추가합니다.
코드를 실행합니다.
Java 애플리케이션을 만들고 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
String blocklistName = "<your_list_name>";
String blockItemText1 = "<block_item_text_1>";
String blockItemText2 = "<block_item_text_2>";
List<TextBlocklistItem> blockItems = Arrays.asList(new TextBlocklistItem(blockItemText1).setDescription("Kill word"),
new TextBlocklistItem(blockItemText2).setDescription("Hate word"));
AddOrUpdateTextBlocklistItemsResult addedBlockItems = blocklistClient.addOrUpdateBlocklistItems(blocklistName,
new AddOrUpdateTextBlocklistItemsOptions(blockItems));
if (addedBlockItems != null && addedBlockItems.getBlocklistItems() != null) {
System.out.println("\nBlockItems added:");
for (TextBlocklistItem addedBlockItem : addedBlockItems.getBlocklistItems()) {
System.out.println("BlockItemId: " + addedBlockItem.getBlocklistItemId() + ", Text: " + addedBlockItem.getText() + ", Description: " + addedBlockItem.getDescription());
}
}
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
blockItemText1
및 blockItemText2
필드의 값을 차단 목록에 추가하려는 항목으로 바꿉니다. blockItem의 최대 길이는 128자입니다.
선택적으로 blockItems
매개 변수에 더 많은 blockItem 문자열을 추가합니다.
코드를 실행합니다.
새 Python 스크립트를 만들어 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
import os
from azure.ai.contentsafety import BlocklistClient
from azure.core.credentials import AzureKeyCredential
from azure.ai.contentsafety.models import (
AddOrUpdateTextBlocklistItemsOptions, TextBlocklistItem
)
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Blocklist client
client = BlocklistClient(endpoint, AzureKeyCredential(key))
blocklist_name = "<your_list_name>"
blocklist_item_text_1 = "<block_item_text_1>"
blocklist_item_text_2 = "<block_item_text_2>"
blocklist_items = [TextBlocklistItem(text=blocklist_item_text_1), TextBlocklistItem(text=blocklist_item_text_2)]
try:
result = client.add_or_update_blocklist_items(
blocklist_name=blocklist_name, options=AddOrUpdateTextBlocklistItemsOptions(blocklist_items=blocklist_items)
for blocklist_item in result.blocklist_items:
print(
f"BlocklistItemId: {blocklist_item.blocklist_item_id}, Text: {blocklist_item.text}, Description: {blocklist_item.description}"
)
except HttpResponseError as e:
print("\nAdd blocklistItems failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
blocklist_item_text_1
및 blocklist_item_text_2
필드의 값을 차단 목록에 추가하려는 항목으로 바꿉니다. blockItem의 최대 길이는 128자입니다.
선택적으로 block_items
매개 변수에 더 많은 blockItem 문자열을 추가합니다.
스크립트를 실행합니다.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
async function addBlocklistItems() {
const blocklistName = "<your_list_name>";
const blocklistItemText1 = "<block_item_text_1>";
const blocklistItemText2 = "<block_item_text_2>";
const addOrUpdateBlocklistItemsParameters = {
body: {
blocklistItems: [
{
description: "Test blocklist item 1",
text: blocklistItemText1,
},
{
description: "Test blocklist item 2",
text: blocklistItemText2,
},
],
},
};
const result = await client
.path("/text/blocklists/{blocklistName}:addOrUpdateBlocklistItems", blocklistName)
.post(addOrUpdateBlocklistItemsParameters);
if (isUnexpected(result)) {
throw result;
}
console.log("Blocklist items added: ");
if (result.body.blocklistItems) {
for (const blocklistItem of result.body.blocklistItems) {
console.log(
"BlocklistItemId: ",
blocklistItem.blocklistItemId,
", Text: ",
blocklistItem.text,
", Description: ",
blocklistItem.description
);
}
}
}
(async () => {
await addBlocklistItems();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
block_item_text_1
및 block_item_text_2
필드의 값을 차단 목록에 추가하려는 항목으로 바꿉니다. blockItem의 최대 길이는 128자입니다.
선택적으로 blocklistItems
매개 변수에 더 많은 blockItem 문자열을 추가합니다.
스크립트를 실행합니다.
참고 항목
blockItem을 추가하거나 편집한 후 텍스트 분석에 적용되기까지 약간의 지연이 발생합니다(보통 5분 이내 ).
차단 목록으로 텍스트 분석
아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.
<endpoint>
을 엔드포인트 URL로 바꿉니다.
<enter_your_key_here>
를 원하는 키로 바꿉니다.
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다. "blocklistNames"
필드에는 여러 목록 ID의 배열이 포함될 수 있습니다.
필요에 따라 "breakByBlocklists"
값을 변경합니다. true
는 차단 목록이 일치하면 모델 출력 없이 즉시 분석이 반환됨을 나타냅니다. false
는 모델이 기본 범주에서 계속 분석을 수행하도록 합니다.
선택적으로 "text"
필드의 값을 분석하려는 텍스트로 변경합니다.
curl --location --request POST '<endpoint>/contentsafety/text:analyze?api-version=2024-09-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
}
]
}
새 C# 콘솔 앱을 만들고 원하는 편집기나 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
string endpoint = Environment.GetEnvironmentVariable("CONTENT_SAFETY_ENDPOINT");
string key = Environment.GetEnvironmentVariable("CONTENT_SAFETY_KEY");
ContentSafetyClient client = new ContentSafetyClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklistName = "<your_list_name>";
// After you edit your blocklist, it usually takes effect in 5 minutes, please wait some time before analyzing with blocklist after editing.
var request = new AnalyzeTextOptions("<your_input_text>");
request.BlocklistNames.Add(blocklistName);
request.HaltOnBlocklistHit = true;
Response<AnalyzeTextResult> response;
try
{
response = client.AnalyzeText(request);
}
catch (RequestFailedException ex)
{
Console.WriteLine("Analyze text failed.\nStatus code: {0}, Error code: {1}, Error message: {2}", ex.Status, ex.ErrorCode, ex.Message);
throw;
}
if (response.Value.BlocklistsMatch != null)
{
Console.WriteLine("\nBlocklist match result:");
foreach (var matchResult in response.Value.BlocklistsMatch)
{
Console.WriteLine("BlocklistName: {0}, BlocklistItemId: {1}, BlocklistText: {2}, ", matchResult.BlocklistName, matchResult.BlocklistItemId, matchResult.BlocklistItemText);
}
}
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
request
입력 텍스트를 분석하려는 텍스트로 바꿉니다.
스크립트를 실행합니다.
Java 애플리케이션을 만들고 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
ContentSafetyClient contentSafetyClient = new ContentSafetyClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
String blocklistName = "<your_list_name>";
AnalyzeTextOptions request = new AnalyzeTextOptions("<sample_text>");
request.setBlocklistNames(Arrays.asList(blocklistName));
request.setHaltOnBlocklistHit(true);
AnalyzeTextResult analyzeTextResult;
try {
analyzeTextResult = contentSafetyClient.analyzeText(request);
} catch (HttpResponseException ex) {
System.out.println("Analyze text failed.\nStatus code: " + ex.getResponse().getStatusCode() + ", Error message: " + ex.getMessage());
throw ex;
}
if (analyzeTextResult.getBlocklistsMatch() != null) {
System.out.println("\nBlocklist match result:");
for (TextBlocklistMatch matchResult : analyzeTextResult.getBlocklistsMatch()) {
System.out.println("BlocklistName: " + matchResult.getBlocklistName() + ", BlockItemId: " + matchResult.getBlocklistItemId() + ", BlockItemText: " + matchResult.getBlocklistItemText());
}
}
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
request
입력 텍스트를 분석하려는 텍스트로 바꿉니다.
스크립트를 실행합니다.
새 Python 스크립트를 만들어 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
import os
from azure.ai.contentsafety import ContentSafetyClient
from azure.core.credentials import AzureKeyCredential
from azure.ai.contentsafety.models import AnalyzeTextOptions
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Content Safety client
client = ContentSafetyClient(endpoint, AzureKeyCredential(key))
blocklist_name = "<your_list_name>"
input_text = "<your_input_text>"
try:
# After you edit your blocklist, it usually takes effect in 5 minutes, please wait some time before analyzing
# with blocklist after editing.
analysis_result = client.analyze_text(
AnalyzeTextOptions(text=input_text, blocklist_names=[blocklist_name], halt_on_blocklist_hit=False)
)
if analysis_result and analysis_result.blocklists_match:
print("\nBlocklist match results: ")
for match_result in analysis_result.blocklists_match:
print(
f"BlocklistName: {match_result.blocklist_name}, BlocklistItemId: {match_result.blocklist_item_id}, "
f"BlocklistItemText: {match_result.blocklist_item_text}"
)
except HttpResponseError as e:
print("\nAnalyze text failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
input_text
변수를 분석하려는 텍스트로 바꿉니다.
스크립트를 실행합니다.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
async function analyzeTextWithBlocklists() {
const blocklistName = "<your_list_name>";
const inputText = "<your_input_text>";
const analyzeTextParameters = {
body: {
text: inputText,
blocklistNames: [blocklistName],
haltOnBlocklistHit: false,
},
};
const result = await client.path("/text:analyze").post(analyzeTextParameters);
if (isUnexpected(result)) {
throw result;
}
console.log("Blocklist match results: ");
if (result.body.blocklistsMatch) {
for (const blocklistMatchResult of result.body.blocklistsMatch) {
console.log(
"BlocklistName: ",
blocklistMatchResult.blocklistName,
", BlocklistItemId: ",
blocklistMatchResult.blocklistItemId,
", BlocklistItemText: ",
blocklistMatchResult.blocklistItemText
);
}
}
}
(async () => {
await analyzeTextWithBlocklists();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
inputText
변수를 분석하려는 텍스트로 바꿉니다.
스크립트를 실행합니다.
기타 차단 목록 작업
이 섹션에는 차단 목록 기능을 관리하고 사용하는 데 도움이 되는 추가 작업이 포함되어 있습니다.
목록의 모든 blocklistItem 나열
아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.
<endpoint>
을 엔드포인트 URL로 바꿉니다.
<enter_your_key_here>
를 원하는 키로 바꿉니다.
요청 URL의 <your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
curl --location --request GET '<endpoint>/contentsafety/text/blocklists/<your_list_name>/blocklistItems?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json'
상태 코드는 200
이어야 하며 응답 본문은 다음과 같아야 합니다.
{
"values": [
{
"blocklistItemId": "string",
"description": "string",
"text": "bleed",
}
]
}
새 C# 콘솔 앱을 만들고 원하는 편집기나 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
string endpoint = Environment.GetEnvironmentVariable("CONTENT_SAFETY_ENDPOINT");
string key = Environment.GetEnvironmentVariable("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklistName = "<your_list_name>";
var allBlocklistitems = blocklistClient.GetTextBlocklistItems(blocklistName);
Console.WriteLine("\nList BlocklistItems:");
foreach (var blocklistItem in allBlocklistitems)
{
Console.WriteLine("BlocklistItemId: {0}, Text: {1}, Description: {2}", blocklistItem.BlocklistItemId, blocklistItem.Text, blocklistItem.Description);
}
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
스크립트를 실행합니다.
Java 애플리케이션을 만들고 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
String blocklistName = "<your_list_name>";
PagedIterable<TextBlocklistItem> allBlockitems = blocklistClient.listTextBlocklistItems(blocklistName);
System.out.println("\nList BlockItems:");
for (TextBlocklistItem blocklistItem : allBlockitems) {
System.out.println("BlockItemId: " + blocklistItem.getBlocklistItemId() + ", Text: " + blocklistItem.getText() + ", Description: " + blocklistItem.getDescription());
}
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
스크립트를 실행합니다.
새 Python 스크립트를 만들어 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
import os
from azure.ai.contentsafety import BlocklistClient
from azure.core.credentials import AzureKeyCredential
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Blocklist client
client = BlocklistClient(endpoint, AzureKeyCredential(key))
blocklist_name = "<your_list_name>"
try:
blocklist_items = client.list_text_blocklist_items(blocklist_name=blocklist_name)
if blocklist_items:
print("\nList blocklist items: ")
for blocklist_item in blocklist_items:
print(
f"BlocklistItemId: {blocklist_item.blocklist_item_id}, Text: {blocklist_item.text}, "
f"Description: {blocklist_item.description}"
)
except HttpResponseError as e:
print("\nList blocklist items failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
스크립트를 실행합니다.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
async function listBlocklistItems() {
const blocklistName = "<your_list_name>";
const result = await client
.path("/text/blocklists/{blocklistName}/blocklistItems", blocklistName)
.get();
if (isUnexpected(result)) {
throw result;
}
console.log("List blocklist items: ");
if (result.body.value) {
for (const blocklistItem of result.body.value) {
console.log(
"BlocklistItemId: ",
blocklistItem.blocklistItemId,
", Text: ",
blocklistItem.text,
", Description: ",
blocklistItem.description
);
}
}
}
(async () => {
await listBlocklistItems();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
스크립트를 실행합니다.
모든 차단 목록 나열
아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.
<endpoint>
을 엔드포인트 URL로 바꿉니다.
<enter_your_key_here>
를 원하는 키로 바꿉니다.
curl --location --request GET '<endpoint>/contentsafety/text/blocklists?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json'
상태 코드는 200
이어야 합니다. JSON 응답은 다음과 같습니다.
"value": [
{
"blocklistName": "string",
"description": "string"
}
]
새 C# 콘솔 앱을 만들고 원하는 편집기나 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
string endpoint = Environment.GetEnvironmentVariable("CONTENT_SAFETY_ENDPOINT");
string key = Environment.GetEnvironmentVariable("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklists = blocklistClient.GetTextBlocklists();
Console.WriteLine("\nList blocklists:");
foreach (var blocklist in blocklists)
{
Console.WriteLine("BlocklistName: {0}, Description: {1}", blocklist.Name, blocklist.Description);
}
스크립트를 실행합니다.
Java 애플리케이션을 만들고 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
PagedIterable<TextBlocklist> allTextBlocklists = blocklistClient.listTextBlocklists();
System.out.println("\nList Blocklist:");
for (TextBlocklist blocklist : allTextBlocklists) {
System.out.println("Blocklist: " + blocklist.getName() + ", Description: " + blocklist.getDescription());
}
스크립트를 실행합니다.
새 Python 스크립트를 만들어 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
import os
from azure.ai.contentsafety import BlocklistClient
from azure.core.credentials import AzureKeyCredential
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Blocklist client
client = BlocklistClient(endpoint, AzureKeyCredential(key))
try:
blocklists = client.list_text_blocklists()
if blocklists:
print("\nList blocklists: ")
for blocklist in blocklists:
print(f"Name: {blocklist.blocklist_name}, Description: {blocklist.description}")
except HttpResponseError as e:
print("\nList text blocklists failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
스크립트를 실행합니다.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
async function listTextBlocklists() {
const result = await client.path("/text/blocklists").get();
if (isUnexpected(result)) {
throw result;
}
console.log("List blocklists: ");
if (result.body.value) {
for (const blocklist of result.body.value) {
console.log(
"BlocklistName: ",
blocklist.blocklistName,
", Description: ",
blocklist.description
);
}
}
}
(async () => {
await listTextBlocklists();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
스크립트를 실행합니다.
blocklistName으로 차단 목록 가져오기
아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.
<endpoint>
을 엔드포인트 URL로 바꿉니다.
<enter_your_key_here>
를 원하는 키로 바꿉니다.
요청 URL의 <your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
cURL --location '<endpoint>contentsafety/text/blocklists/<your_list_name>?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--data ''
상태 코드는 200
이어야 합니다. JSON 응답은 다음과 같습니다.
{
"blocklistName": "string",
"description": "string"
}
새 C# 콘솔 앱을 만들고 원하는 편집기나 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
string endpoint = Environment.GetEnvironmentVariable("CONTENT_SAFETY_ENDPOINT");
string key = Environment.GetEnvironmentVariable("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklistName = "<your_list_name>";
var getBlocklist = blocklistClient.GetTextBlocklist(blocklistName);
if (getBlocklist != null && getBlocklist.Value != null)
{
Console.WriteLine("\nGet blocklist:");
Console.WriteLine("BlocklistName: {0}, Description: {1}", getBlocklist.Value.Name, getBlocklist.Value.Description);
}
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
스크립트를 실행합니다.
Java 애플리케이션을 만들고 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
String blocklistName = "<your_list_name>";
TextBlocklist getBlocklist = blocklistClient.getTextBlocklist(blocklistName);
if (getBlocklist != null) {
System.out.println("\nGet blocklist:");
System.out.println("BlocklistName: " + getBlocklist.getName() + ", Description: " + getBlocklist.getDescription());
}
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
스크립트를 실행합니다.
새 Python 스크립트를 만들어 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
import os
from azure.ai.contentsafety import BlocklistClient
from azure.core.credentials import AzureKeyCredential
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Blocklist client
client = BlocklistClient(endpoint, AzureKeyCredential(key))
blocklist_name = "<your_list_name>"
try:
blocklist = client.get_text_blocklist(blocklist_name=blocklist_name)
if blocklist:
print("\nGet blocklist: ")
print(f"Name: {blocklist.blocklist_name}, Description: {blocklist.description}")
except HttpResponseError as e:
print("\nGet text blocklist failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
스크립트를 실행합니다.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
async function getTextBlocklist() {
const blocklistName = "<your_list_name>";
const result = await client.path("/text/blocklists/{blocklistName}", blocklistName).get();
if (isUnexpected(result)) {
throw result;
}
console.log("Get blocklist: ");
console.log("Name: ", result.body.blocklistName, ", Description: ", result.body.description);
}
(async () => {
await getTextBlocklist();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
스크립트를 실행합니다.
blocklistName 및 blocklistItemId로 blocklistItem 가져오기
아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.
<endpoint>
을 엔드포인트 URL로 바꿉니다.
<enter_your_key_here>
를 원하는 키로 바꿉니다.
요청 URL의 <your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
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=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--data ''
상태 코드는 200
이어야 합니다. JSON 응답은 다음과 같습니다.
{
"blocklistItemId": "string",
"description": "string",
"text": "string"
}
새 C# 콘솔 앱을 만들고 원하는 편집기나 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
string endpoint = Environment.GetEnvironmentVariable("CONTENT_SAFETY_ENDPOINT");
string key = Environment.GetEnvironmentVariable("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklistName = "<your_list_name>";
var getBlocklistItemId = "<your_block_item_id>";
var getBlocklistItem = blocklistClient.GetTextBlocklistItem(blocklistName, getBlocklistItemId);
Console.WriteLine("\nGet BlocklistItem:");
Console.WriteLine("BlocklistItemId: {0}, Text: {1}, Description: {2}", getBlocklistItem.Value.BlocklistItemId, getBlocklistItem.Value.Text, getBlocklistItem.Value.Description);
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
<your_block_item_id>
를 이전에 추가된 항목의 ID로 바꿉니다.
스크립트를 실행합니다.
Java 애플리케이션을 만들고 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
String blocklistName = "<your_list_name>";
String getBlockItemId = "<your_block_item_id>";
TextBlocklistItem getBlockItem = blocklistClient.getTextBlocklistItem(blocklistName, getBlockItemId);
System.out.println("\nGet BlockItem:");
System.out.println("BlockItemId: " + getBlockItem.getBlocklistItemId() + ", Text: " + getBlockItem.getText() + ", Description: " + getBlockItem.getDescription());
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
<your_block_item_id>
를 이전에 추가된 항목의 ID로 바꿉니다.
스크립트를 실행합니다.
새 Python 스크립트를 만들어 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
import os
from azure.ai.contentsafety import BlocklistClient
from azure.core.credentials import AzureKeyCredential
from azure.ai.contentsafety.models import TextBlocklistItem, AddOrUpdateTextBlocklistItemsOptions
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Blocklist client
client = BlocklistClient(endpoint, AzureKeyCredential(key))
blocklist_name = "<your_list_name>"
blocklist_item_text_1 = "<block_item_text>"
try:
# Add a blocklistItem
add_result = client.add_or_update_blocklist_items(
blocklist_name=blocklist_name,
options=AddOrUpdateTextBlocklistItemsOptions(blocklist_items=[TextBlocklistItem(text=blocklist_item_text_1)]),
)
if not add_result or not add_result.blocklist_items or len(add_result.blocklist_items) <= 0:
raise RuntimeError("BlocklistItem not created.")
blocklist_item_id = add_result.blocklist_items[0].blocklist_item_id
# Get this blocklistItem by blocklistItemId
blocklist_item = client.get_text_blocklist_item(blocklist_name=blocklist_name, blocklist_item_id=blocklist_item_id)
print("\nGet blocklistItem: ")
print(
f"BlocklistItemId: {blocklist_item.blocklist_item_id}, Text: {blocklist_item.text}, Description: {blocklist_item.description}"
)
except HttpResponseError as e:
print("\nGet blocklist item failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
<block_item_text>
를 블록 항목 텍스트로 바꿉니다.
스크립트를 실행합니다.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
async function getBlocklistItem() {
const blocklistName = "<your_list_name>";
const blocklistItemId = "<your_block_item_id>";
// Get this blocklistItem by blocklistItemId
const blocklistItem = await client
.path(
"/text/blocklists/{blocklistName}/blocklistItems/{blocklistItemId}",
blocklistName,
blocklistItemId
)
.get();
if (isUnexpected(blocklistItem)) {
throw blocklistItem;
}
console.log("Get blocklistitem: ");
console.log(
"BlocklistItemId: ",
blocklistItem.body.blocklistItemId,
", Text: ",
blocklistItem.body.text,
", Description: ",
blocklistItem.body.description
);
}
(async () => {
await getBlocklistItem();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
삭제하려는 항목의 ID로 <your_block_item_id>
를 바꿉니다.
스크립트를 실행합니다.
차단 목록에서 blocklistItems를 제거합니다.
참고 항목
항목을 삭제한 후 텍스트 분석에 적용되기까지 약간의 지연이 발생하며 일반적으로 5분 이내 가 소요됩니다.
아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.
<endpoint>
을 엔드포인트 URL로 바꿉니다.
<enter_your_key_here>
를 원하는 키로 바꿉니다.
요청 URL의 <your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
blocklistItem의 ID 값으로 <item_id>
을 바꿉니다. 이는 Add blocklistItems 또는 모든 blocklistItems 가져오기 API 호출의 "blocklistItemId"
필드 값입니다.
curl --location --request POST '<endpoint>/contentsafety/text/blocklists/<your_list_name>:removeBlocklistItems?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json'
--data-raw '"blocklistItemIds":[
"<item_id>"
]'
팁
한 번의 API 호출로 여러 blocklistItem을 삭제할 수 있습니다. 요청 본문을 blocklistItemId
값의 배열로 만듭니다.
응답 코드는 204
여야 합니다.
새 C# 콘솔 앱을 만들고 원하는 편집기나 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
string endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"];
string key = os.environ["CONTENT_SAFETY_KEY"];
BlocklistClient blocklistClient = new BlocklistClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklistName = "<your_list_name>";
var removeBlocklistItemId = "<your_block_item_id>";
var removeBlocklistItemIds = new List<string> { removeBlocklistItemId };
var removeResult = blocklistClient.RemoveBlocklistItems(blocklistName, new RemoveTextBlocklistItemsOptions(removeBlocklistItemIds));
if (removeResult != null && removeResult.Status == 204)
{
Console.WriteLine("\nBlocklistItem removed: {0}.", removeBlocklistItemId);
}
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
<your_block_item_id>
를 이전에 추가된 항목의 ID로 바꿉니다.
스크립트를 실행합니다.
Java 애플리케이션을 만들고 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
String blocklistName = "<your_list_name>";
String removeBlockItemId = "<your_block_item_id>";
List<String> removeBlockItemIds = new ArrayList<>();
removeBlockItemIds.add(removeBlockItemId);
blocklistClient.removeBlocklistItems(blocklistName, new RemoveTextBlocklistItemsOptions(removeBlockItemIds));
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
<your_block_item_id>
를 이전에 추가된 항목의 ID로 바꿉니다.
스크립트를 실행합니다.
새 Python 스크립트를 만들어 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
import os
from azure.ai.contentsafety import BlocklistClient
from azure.core.credentials import AzureKeyCredential
from azure.ai.contentsafety.models import (
TextBlocklistItem,
AddOrUpdateTextBlocklistItemsOptions,
RemoveTextBlocklistItemsOptions,
)
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Blocklist client
client = BlocklistClient(endpoint, AzureKeyCredential(key))
blocklist_name = "<your_list_name>"
blocklist_item_text_1 = "<block_item_text>"
try:
# Add a blocklistItem
add_result = client.add_or_update_blocklist_items(
blocklist_name=blocklist_name,
options=AddOrUpdateTextBlocklistItemsOptions(blocklist_items=[TextBlocklistItem(text=blocklist_item_text_1)]),
)
if not add_result or not add_result.blocklist_items or len(add_result.blocklist_items) <= 0:
raise RuntimeError("BlocklistItem not created.")
blocklist_item_id = add_result.blocklist_items[0].blocklist_item_id
# Remove this blocklistItem by blocklistItemId
client.remove_blocklist_items(
blocklist_name=blocklist_name, options=RemoveTextBlocklistItemsOptions(blocklist_item_ids=[blocklist_item_id])
)
print(f"\nRemoved blocklistItem: {add_result.blocklist_items[0].blocklist_item_id}")
except HttpResponseError as e:
print("\nRemove blocklist item failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
<block_item_text>
를 블록 항목 텍스트로 바꿉니다.
스크립트를 실행합니다.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
// Sample: Remove blocklistItems from a blocklist
async function removeBlocklistItems() {
const blocklistName = "<your_list_name>";
const blocklistItemId = "<your_block_item_id>";
// Remove this blocklistItem by blocklistItemId
const removeBlocklistItemsParameters = {
body: {
blocklistItemIds: [blocklistItemId],
},
};
const removeBlocklistItem = await client
.path("/text/blocklists/{blocklistName}:removeBlocklistItems", blocklistName)
.post(removeBlocklistItemsParameters);
if (isUnexpected(removeBlocklistItem)) {
throw removeBlocklistItem;
}
console.log("Removed blocklistItem: ", blocklistItemText);
}
(async () => {
await removeBlocklistItems();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
<your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
제거하려는 항목의 노드 ID로 <your_block_item_id
를 바꿉니다.
스크립트를 실행합니다.
목록 및 모든 해당 콘텐츠를 삭제합니다.
참고 항목
목록을 삭제한 후 텍스트 분석에 적용되기까지 약간의 지연이 발생하며 일반적으로 5분 이내 가 소요됩니다.
아래 cURL 명령을 텍스트 편집기에 복사하고 다음과 같이 변경합니다.
<endpoint>
을 엔드포인트 URL로 바꿉니다.
<enter_your_key_here>
를 원하는 키로 바꿉니다.
요청 URL의 <your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
curl --location --request DELETE '<endpoint>/contentsafety/text/blocklists/<your_list_name>?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--header 'Content-Type: application/json' \
응답 코드는 204
여야 합니다.
새 C# 콘솔 앱을 만들고 원하는 편집기나 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
string endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"];
string key = os.environ["CONTENT_SAFETY_KEY"];
BlocklistClient blocklistClient = new BlocklistClient(new Uri(endpoint), new AzureKeyCredential(key));
var blocklistName = "<your_list_name>";
var deleteResult = blocklistClient.DeleteTextBlocklist(blocklistName);
if (deleteResult != null && deleteResult.Status == 204)
{
Console.WriteLine("\nDeleted blocklist.");
}
요청 URL의 <your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
스크립트를 실행합니다.
Java 애플리케이션을 만들고 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
String endpoint = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_ENDPOINT");
String key = Configuration.getGlobalConfiguration().get("CONTENT_SAFETY_KEY");
BlocklistClient blocklistClient = new BlocklistClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
String blocklistName = "<your_list_name>";
blocklistClient.deleteTextBlocklist(blocklistName);
요청 URL의 <your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
스크립트를 실행합니다.
새 Python 스크립트를 만들어 원하는 편집기 또는 IDE에서 엽니다. 다음 코드를 붙여넣습니다.
import os
from azure.ai.contentsafety import BlocklistClient
from azure.core.credentials import AzureKeyCredential
from azure.core.exceptions import HttpResponseError
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Blocklist client
client = BlocklistClient(endpoint, AzureKeyCredential(key))
blocklist_name = "<your_list_name>"
try:
client.delete_text_blocklist(blocklist_name=blocklist_name)
print(f"\nDeleted blocklist: {blocklist_name}")
except HttpResponseError as e:
print("\nDelete blocklist failed:")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
요청 URL의 <your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
스크립트를 실행합니다.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
// Load the .env file if it exists
require("dotenv").config();
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"] || "<endpoint>";
const key = process.env["CONTENT_SAFETY_API_KEY"] || "<key>";
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
async function deleteBlocklist() {
const blocklistName = "<your_list_name>";
const result = await client.path("/text/blocklists/{blocklistName}", blocklistName).delete();
if (isUnexpected(result)) {
throw result;
}
console.log("Deleted blocklist: ", blocklistName);
}
(async () => {
await deleteBlocklist();
})().catch((err) => {
console.error("The sample encountered an error:", err);
});
요청 URL의 <your_list_name>
을 목록 생성 스크립트 단계에서 사용한 이름으로 바꿉니다.
스크립트를 실행합니다.
다음 단계
이 가이드에 사용된 API에 대해 자세히 알아보려면 API 참조 설명서를 참조하세요.