Blok listesi kullanma
Makale 09/02/2024
4 katılımcı
Geri Bildirim
Bu makalede
Dikkat
Bu kılavuzdaki örnek veriler rahatsız edici içerik içerebilir. Kullanıcının takdirine bağlı olması tavsiye edilir.
Varsayılan yapay zeka sınıflandırıcıları çoğu con çadır modu ration gereksinimi için yeterlidir. Ancak, kullanım örneğiniz için özel öğeleri filtrelemeniz gerekebilir. Blok listeleri, yapay zeka sınıflandırıcılarına özel terimler eklemenize olanak sağlar. İçeriğinizde bayrak eklemek istediğiniz belirli terimleri veya tümcecikleri filtrelemek için blok listelerini kullanabilirsiniz.
Önkoşullar
Azure aboneliği - Ücretsiz bir abonelik oluşturun
Azure aboneliğinizi aldıktan sonra anahtarınızı ve uç noktanızı almak için Azure portalında bir İçerik Güvenliği kaynağı oluşturun. Kaynağınız için benzersiz bir ad girin, aboneliğinizi seçin ve bir kaynak grubu, desteklenen bölge (bkz . Bölge kullanılabilirliği ) ve desteklenen fiyatlandırma katmanı. Daha sonra, Oluştur 'u seçin.
Kaynağın dağıtılması birkaç dakika sürer. Tamamlandıktan sonra Kaynağa git'i seçin . Sol bölmedeki Kaynak Yönetimi'nin altında Abonelik Anahtarı ve Uç Nokta'yı seçin . Uç nokta ve anahtarlardan biri API'leri çağırmak için kullanılır.
Aşağıdakilerden biri yüklendi:
REST API çağrıları için cURL .
Python 3.x yüklü
Python yüklemeniz pip içermelidir . Pip'in yüklü olup olmadığını denetlemek için komut satırında komutunu çalıştırabilirsiniz pip --version
. Python'ın en son sürümünü yükleyerek pip alın.
Python kullanıyorsanız Python için Azure AI Content Safety istemci kitaplığını yüklemeniz gerekir. pip install azure-ai-contentsafety
Komutunu proje dizininizde çalıştırın.
.NET Çalışma Zamanı yüklü.
.NET Core SDK'sı yüklü.
.NET kullanıyorsanız .NET için Azure AI Content Safety istemci kitaplığını yüklemeniz gerekir. dotnet add package Azure.AI.ContentSafety --prerelease
Komutunu proje dizininizde çalıştırın.
Ortam değişkenlerini oluşturma
Bu örnekte, kimlik bilgilerinizi uygulamayı çalıştıran yerel makinedeki ortam değişkenlerine yazacaksınız.
Anahtarınızın ve uç noktanızın ortam değişkenini ayarlamak için bir konsol penceresi açın ve işletim sisteminiz ve geliştirme ortamınıza yönelik yönergeleri izleyin.
Ortam değişkenini CONTENT_SAFETY_KEY
ayarlamak için değerini kaynağınızın anahtarlarından biriyle değiştirin YOUR_CONTENT_SAFETY_KEY
.
Ortam değişkenini CONTENT_SAFETY_ENDPOINT
ayarlamak için değerini kaynağınızın uç noktasıyla değiştirin YOUR_CONTENT_SAFETY_ENDPOINT
.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
Ortam değişkenlerini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenlerini okuyacak tüm çalışan programları yeniden başlatmanız gerekebilir.
export CONTENT_SAFETY_KEY='YOUR_CONTENT_SAFETY_KEY'
export CONTENT_SAFETY_ENDPOINT='YOUR_CONTENT_SAFETY_ENDPOINT'
Ortam değişkenlerini ekledikten sonra, değişiklikleri etkili hale getirmek için konsol pencerenizden komutunu çalıştırın source ~/.bashrc
.
Blok listesiyle metni analiz etme
Metin API'siyle kullanmak için blok listeleri oluşturabilirsiniz. Aşağıdaki adımlar kullanmaya başlamanıza yardımcı olur.
Blok listesi oluşturma veya değiştirme
Aşağıdaki cURL komutunu bir metin düzenleyicisine kopyalayın ve aşağıdaki değişiklikleri yapın:
değerini uç nokta URL'nizle değiştirin <endpoint>
.
<enter_your_key_here>
yerine anahtarınızı yazın.
(URL'de) öğesini listenize özel bir adla değiştirin <your_list_name>
. Ayrıca REST URL'sinin son terimini de aynı adla değiştirin. İzin verilen karakterler: 0-9, A-Z, a-z, - . _ ~
.
İsteğe bağlı olarak alanın değerini "description"
özel bir açıklamayla değiştirin.
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"
}'
Yanıt kodu (yeni bir liste oluşturulmalıdır) veya 200
(var olan bir liste güncelleştirildi) olmalıdır201
.
Yeni bir C# konsol uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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);
}
öğesini listenize özel bir adla değiştirin <your_list_name>
. İzin verilen karakterler: 0-9, A-Z, a-z, - . _ ~
.
İsteğe bağlı olarak değerini özel bir açıklamayla değiştirin <description>
.
Kodu çalıştırın.
Bir Java uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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.");
}
öğesini listenize özel bir adla değiştirin <your_list_name>
. İzin verilen karakterler: 0-9, A-Z, a-z, - . _ ~
.
İsteğe bağlı olarak değerini özel bir açıklamayla değiştirin <description>
.
Kodu çalıştırın.
Yeni bir Python betiği oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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
öğesini listenize özel bir adla değiştirin <your_list_name>
. İzin verilen karakterler: 0-9, A-Z, a-z, - . _ ~
.
değerini özel bir açıklamayla değiştirin <description>
.
Betiği çalıştırın.
Yeni bir JavaScript betiği oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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);
});
öğesini listenize özel bir adla değiştirin <your_list_name>
. İzin verilen karakterler: 0-9, A-Z, a-z, - . _ ~
.
İsteğe bağlı olarak değerini özel bir açıklamayla değiştirin <description>
.
Betiği çalıştırın.
Listeye blocklistItems ekleme
Not
Tüm listelerde toplam en fazla 10.000 terim sınırı vardır. Bir istekte en fazla 100 engellenenler listesi öğesini ekleyebilirsiniz.
Aşağıdaki cURL komutunu bir metin düzenleyicisine kopyalayın ve aşağıdaki değişiklikleri yapın:
değerini uç nokta URL'nizle değiştirin <endpoint>
.
<enter_your_key_here>
yerine anahtarınızı yazın.
öğesini (URL'de) liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
İsteğe bağlı olarak alanın değerini "description"
özel bir açıklamayla değiştirin.
alanının değerini "text"
, blok listenize eklemek istediğiniz öğeyle değiştirin. BlocklistItem'in uzunluk üst sınırı 128 karakterdir.
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"
}]'
İpucu
Bir API çağrısına birden çok blocklistItem ekleyebilirsiniz. İstek gövdesini bir JSON veri grubu dizisi yapın:
{
"blocklistItems": [
{
"description": "string",
"text": "bleed"
},
{
"description": "string",
"text": "blood"
}
]
}
Yanıt kodu olmalıdır 200
.
{
"blocklistItems:"[
{
"blocklistItemId": "string",
"description": "string",
"text": "bleed"
}
]
}
Yeni bir C# konsol uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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);
}
}
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
ve blocklistItemText2
alanlarının blocklistItemText1
değerlerini, blok listenize eklemek istediğiniz öğelerle değiştirin. BlockItem'ın uzunluk üst sınırı 128 karakterdir.
İsteğe bağlı olarak parametresine blockItems
daha fazla blockItem dizesi ekleyin.
Kodu çalıştırın.
Bir Java uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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());
}
}
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
ve blockItemText2
alanlarının blockItemText1
değerlerini, blok listenize eklemek istediğiniz öğelerle değiştirin. BlockItem'ın uzunluk üst sınırı 128 karakterdir.
İsteğe bağlı olarak parametresine blockItems
daha fazla blockItem dizesi ekleyin.
Kodu çalıştırın.
Yeni bir Python betiği oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
ve blocklist_item_text_2
alanlarının blocklist_item_text_1
değerlerini, blok listenize eklemek istediğiniz öğelerle değiştirin. BlockItem'ın uzunluk üst sınırı 128 karakterdir.
İsteğe bağlı olarak parametresine block_items
daha fazla blockItem dizesi ekleyin.
Betiği çalıştırın.
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);
});
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
ve block_item_text_2
alanlarının block_item_text_1
değerlerini, blok listenize eklemek istediğiniz öğelerle değiştirin. BlockItem'ın uzunluk üst sınırı 128 karakterdir.
İsteğe bağlı olarak parametresine blocklistItems
daha fazla blockItem dizesi ekleyin.
Betiği çalıştırın.
Not
BlockItem metin analizini etkilemeden önce ekledikten veya düzenledikten sonra , genellikle beş dakikadan uzun olmayan bir gecikme olacaktır.
Blok listesiyle metni analiz etme
Aşağıdaki cURL komutunu bir metin düzenleyicisine kopyalayın ve aşağıdaki değişiklikleri yapın:
değerini uç nokta URL'nizle değiştirin <endpoint>
.
<enter_your_key_here>
yerine anahtarınızı yazın.
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
. Bu "blocklistNames"
alan, birden çok liste kimliği içeren bir dizi içerebilir.
İsteğe bağlı olarak değerini "breakByBlocklists"
değiştirin. true
bir blok listesi eşleştirildikten sonra çözümlemenin model çıkışı olmadan hemen döndürüleceğini gösterir. false
modelin varsayılan kategorilerde analiz yapmaya devam etmesine neden olur.
İsteğe bağlı olarak, alanın değerini "text"
çözümlemek istediğiniz metinle değiştirin.
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 yanıtı, blok listenizle tüm eşleşmeleri gösteren bir "blocklistMatchResults"
içerir. Metin dizesinde eşleşmenin bulunduğu konumu bildirir.
{
"blocklistsMatch": [
{
"blocklistName": "string",
"blocklistItemId": "string",
"blocklistItemText": "bleed"
}
],
"categoriesAnalysis": [
{
"category": "Hate",
"severity": 0
}
]
}
Yeni bir C# konsol uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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);
}
}
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
request
Giriş metnini analiz etmek istediğiniz metinle değiştirin.
Betiği çalıştırın.
Bir Java uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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());
}
}
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
request
Giriş metnini analiz etmek istediğiniz metinle değiştirin.
Betiği çalıştırın.
Yeni bir Python betiği oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
değişkenini input_text
analiz etmek istediğiniz metinle değiştirin.
Betiği çalıştırın.
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);
});
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
değişkenini inputText
analiz etmek istediğiniz metinle değiştirin.
Betiği çalıştırın.
Diğer blok listesi işlemleri
Bu bölüm, blok listesi özelliğini yönetmenize ve kullanmanıza yardımcı olacak daha fazla işlem içerir.
Listedeki tüm blocklistItem'leri listeleme
Aşağıdaki cURL komutunu bir metin düzenleyicisine kopyalayın ve aşağıdaki değişiklikleri yapın:
değerini uç nokta URL'nizle değiştirin <endpoint>
.
<enter_your_key_here>
yerine anahtarınızı yazın.
öğesini (istek URL'sinde) liste oluşturma adımında kullandığınız adla değiştirin <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'
Durum kodu olmalıdır 200
ve yanıt gövdesi şöyle görünmelidir:
{
"values": [
{
"blocklistItemId": "string",
"description": "string",
"text": "bleed",
}
]
}
Yeni bir C# konsol uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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);
}
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
Betiği çalıştırın.
Bir Java uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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());
}
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
Betiği çalıştırın.
Yeni bir Python betiği oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
Betiği çalıştırın.
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);
});
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
Betiği çalıştırın.
Tüm blok listelerini listeleme
Aşağıdaki cURL komutunu bir metin düzenleyicisine kopyalayın ve aşağıdaki değişiklikleri yapın:
değerini uç nokta URL'nizle değiştirin <endpoint>
.
<enter_your_key_here>
yerine anahtarınızı yazın.
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'
Durum kodu olmalıdır 200
. JSON yanıtı şöyle görünür:
"value": [
{
"blocklistName": "string",
"description": "string"
}
]
Yeni bir C# konsol uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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);
}
Betiği çalıştırın.
Bir Java uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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());
}
Betiği çalıştırın.
Yeni bir Python betiği oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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
Betiği çalıştırın.
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);
});
Betiği çalıştırın.
blocklistName ile blok listesi alma
Aşağıdaki cURL komutunu bir metin düzenleyicisine kopyalayın ve aşağıdaki değişiklikleri yapın:
değerini uç nokta URL'nizle değiştirin <endpoint>
.
<enter_your_key_here>
yerine anahtarınızı yazın.
öğesini (istek URL'sinde) liste oluşturma adımında kullandığınız adla değiştirin <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 ''
Durum kodu olmalıdır 200
. JSON yanıtı şöyle görünür:
{
"blocklistName": "string",
"description": "string"
}
Yeni bir C# konsol uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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);
}
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
Betiği çalıştırın.
Bir Java uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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());
}
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
Betiği çalıştırın.
Yeni bir Python betiği oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
Betiği çalıştırın.
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);
});
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
Betiği çalıştırın.
blocklistName ve blocklistItemId ile blocklistItem alma
Aşağıdaki cURL komutunu bir metin düzenleyicisine kopyalayın ve aşağıdaki değişiklikleri yapın:
değerini uç nokta URL'nizle değiştirin <endpoint>
.
<enter_your_key_here>
yerine anahtarınızı yazın.
öğesini (istek URL'sinde) liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
değerini blocklistItem kimlik değeriyle değiştirin <your_item_id>
. Bu, Add blocklistItem veya Get all blocklistItems API çağrılarının alanının değeridir"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 ''
Durum kodu olmalıdır 200
. JSON yanıtı şöyle görünür:
{
"blocklistItemId": "string",
"description": "string",
"text": "string"
}
Yeni bir C# konsol uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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);
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
değerini, daha önce eklenen bir öğenin kimliğiyle değiştirin <your_block_item_id>
.
Betiği çalıştırın.
Bir Java uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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());
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
değerini, daha önce eklenen bir öğenin kimliğiyle değiştirin <your_block_item_id>
.
Betiği çalıştırın.
Yeni bir Python betiği oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
öğesini blok öğesi metninizle değiştirin <block_item_text>
.
Betiği çalıştırın.
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);
});
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
değerini almak istediğiniz öğenin kimliğiyle değiştirin <your_block_item_id>
.
Betiği çalıştırın.
Blok listesinden blocklistItems öğesini kaldırın.
Not
Bir öğe, metin analizini etkilemeden önce silindikten sonra genellikle beş dakikadan uzun olmayan bir gecikme olur.
Aşağıdaki cURL komutunu bir metin düzenleyicisine kopyalayın ve aşağıdaki değişiklikleri yapın:
değerini uç nokta URL'nizle değiştirin <endpoint>
.
<enter_your_key_here>
yerine anahtarınızı yazın.
öğesini (istek URL'sinde) liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
değerini blocklistItem kimlik değeriyle değiştirin <item_id>
. Bu, Add blocklistItem veya Get all blocklistItems API çağrılarının alanının değeridir"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>"
]'
İpucu
Bir API çağrısında birden çok blocklistItems silebilirsiniz. İstek gövdesini bir değer dizisi blocklistItemId
yapın.
Yanıt kodu olmalıdır 204
.
Yeni bir C# konsol uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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);
}
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
değerini, daha önce eklenen bir öğenin kimliğiyle değiştirin <your_block_item_id>
.
Betiği çalıştırın.
Bir Java uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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));
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
değerini, daha önce eklenen bir öğenin kimliğiyle değiştirin <your_block_item_id>
.
Betiği çalıştırın.
Yeni bir Python betiği oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
öğesini blok öğesi metninizle değiştirin <block_item_text>
.
Betiği çalıştırın.
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);
});
değerini, liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
öğesini kaldırmak istediğiniz öğenin kimliğiyle değiştirin <your_block_item_id
.
Betiği çalıştırın.
Listeyi ve tüm içeriğini silme
Not
Bir listeyi metin çözümlemesi üzerinde etkili olmadan önce sildikten sonra genellikle beş dakikadan uzun olmayan bir gecikme olur.
Aşağıdaki cURL komutunu bir metin düzenleyicisine kopyalayın ve aşağıdaki değişiklikleri yapın:
değerini uç nokta URL'nizle değiştirin <endpoint>
.
<enter_your_key_here>
yerine anahtarınızı yazın.
öğesini (istek URL'sinde) liste oluşturma adımında kullandığınız adla değiştirin <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' \
Yanıt kodu olmalıdır 204
.
Yeni bir C# konsol uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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.");
}
öğesini (istek URL'sinde) liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
Betiği çalıştırın.
Bir Java uygulaması oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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);
öğesini (istek URL'sinde) liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
Betiği çalıştırın.
Yeni bir Python betiği oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki kodu yapıştırın.
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
öğesini (istek URL'sinde) liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
Betiği çalıştırın.
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);
});
öğesini (istek URL'sinde) liste oluşturma adımında kullandığınız adla değiştirin <your_list_name>
.
Betiği çalıştırın.
Sonraki adımlar
Bu kılavuzda kullanılan API'ler hakkında daha fazla bilgi edinmek için API başvurusu belgelerine bakın.