Použití seznamu blokovaných položek

Upozornění

Ukázková data v této příručce můžou obsahovat urážlivý obsah. Doporučuje se, aby uživatel rozhodoval.

Výchozí klasifikátory AI jsou dostatečné pro většinu potřeb kon režim stanu race. Možná ale budete muset zobrazit položky, které jsou specifické pro váš případ použití. Seznamy bloků umožňují přidat vlastní termíny do klasifikátorů AI. Seznamy blokování můžete použít k zobrazení konkrétních termínů nebo frází, které chcete v obsahu označit příznakem.

Požadavky

  • Předplatné Azure – Vytvoření předplatného zdarma
  • Jakmile budete mít předplatné Azure, vytvořte na webu Azure Portal prostředek zabezpečení obsahu, abyste získali svůj klíč a koncový bod. Zadejte jedinečný název vašeho prostředku, vyberte své předplatné a vyberte skupinu prostředků, podporovanou oblast (viz Dostupnost oblastí) a podporovanou cenovou úroveň. Pak vyberte Vytvořit.
    • Nasazení prostředku trvá několik minut. Po dokončení vyberte přejít k prostředku. V levém podokně v části Správa prostředků vyberte Klíč předplatného a koncový bod. Koncový bod a jeden z klíčů se používají k volání rozhraní API.
  • Nainstalujte jednu z následujících instalací:
    • cURL pro volání rozhraní REST API.
    • Nainstalovaný Python 3.x
      • Vaše instalace Pythonu by měla obsahovat pip. Spuštěním na příkazovém pip --version řádku můžete zkontrolovat, jestli máte nainstalovaný pip. Získejte pip instalací nejnovější verze Pythonu.
      • Pokud používáte Python, budete muset nainstalovat klientskou knihovnu Azure AI Content Safety pro Python. Spusťte příkaz pip install azure-ai-contentsafety v adresáři projektu.
    • Nainstalovaný modul runtime .NET.
      • Nainstalovaná sada .NET Core SDK
      • Pokud používáte .NET, budete muset nainstalovat klientskou knihovnu Azure AI Content Safety pro .NET. Spusťte příkaz dotnet add package Azure.AI.ContentSafety --prerelease v adresáři projektu.

Vytvoření proměnných prostředí

V tomto příkladu napíšete přihlašovací údaje do proměnných prostředí na místním počítači, na kterém běží aplikace.

Pokud chcete nastavit proměnnou prostředí pro klíč a koncový bod, otevřete okno konzoly a postupujte podle pokynů pro operační systém a vývojové prostředí.

  • Pokud chcete nastavit proměnnou CONTENT_SAFETY_KEY prostředí, nahraďte YOUR_CONTENT_SAFETY_KEY jedním z klíčů pro váš prostředek.
  • Pokud chcete nastavit proměnnou CONTENT_SAFETY_ENDPOINT prostředí, nahraďte YOUR_CONTENT_SAFETY_ENDPOINT koncovým bodem vašeho prostředku.

Důležité

Pokud používáte klíč rozhraní API, uložte ho bezpečně někam jinam, například ve službě Azure Key Vault. Nezahrnujte klíč rozhraní API přímo do kódu a nikdy ho nevštěvujte veřejně.

Další informace o zabezpečení služeb AI najdete v tématu Ověřování požadavků na služby Azure AI.

setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

Po přidání proměnných prostředí budete možná muset restartovat všechny spuštěné programy, které budou číst proměnné prostředí, včetně okna konzoly.

Analýza textu pomocí seznamu blokovaných položek

Můžete vytvořit seznamy blokovaných adres pro použití s textovým rozhraním API. Následující kroky vám pomůžou začít.

Vytvoření nebo úprava seznamu blokovaných položek

Zkopírujte následující příkaz cURL do textového editoru a proveďte následující změny:

  1. Nahraďte <endpoint> adresou URL koncového bodu.
  2. <enter_your_key_here> nahraďte tímto klíčem.
  3. Nahraďte <your_list_name> (v adrese URL) vlastním názvem seznamu. Nahraďte také poslední termín adresy URL REST stejným názvem. Povolené znaky: 0-9, A-Z, a-z, - . _ ~.
  4. Volitelně nahraďte hodnotu "description" pole vlastním popisem.
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"
}'

Kód odpovědi by měl být 201(vytvořen nový seznam) nebo 200(aktualizovaný existující seznam).

Přidání blocklistItems do seznamu

Poznámka:

Maximální limit je 10 000 výrazů celkem ve všech seznamech. Do jednoho požadavku můžete přidat maximálně 100 položek seznamu blokovaných.

Zkopírujte následující příkaz cURL do textového editoru a proveďte následující změny:

  1. Nahraďte <endpoint> adresou URL koncového bodu.
  2. <enter_your_key_here> nahraďte tímto klíčem.
  3. Nahraďte <your_list_name> (v adrese URL) názvem, který jste použili v kroku vytvoření seznamu.
  4. Volitelně nahraďte hodnotu "description" pole vlastním popisem.
  5. Nahraďte hodnotu "text" pole položkou, kterou chcete přidat do seznamu blokovaných položek. Maximální délka blocklistItem je 128 znaků.
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"
}]'

Tip

Do jednoho volání rozhraní API můžete přidat několik blocklistItems. Nastavte text požadavku jako pole JSON skupin dat:

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

Kód odpovědi by měl být 200.

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

Poznámka:

Po přidání nebo úpravě blockItem dojde ke zpoždění, než se projeví při analýze textu, obvykle ne více než pět minut.

Analýza textu pomocí seznamu blokovaných položek

Zkopírujte následující příkaz cURL do textového editoru a proveďte následující změny:

  1. Nahraďte <endpoint> adresou URL koncového bodu.
  2. <enter_your_key_here> nahraďte tímto klíčem.
  3. Nahraďte <your_list_name> názvem, který jste použili v kroku vytvoření seznamu. Pole "blocklistNames" může obsahovat pole s více ID seznamu.
  4. Volitelně můžete změnit hodnotu ."breakByBlocklists" true označuje, že jakmile je seznam blokovaných položek spárován, analýza se vrátí okamžitě bez výstupu modelu. false způsobí, že model bude pokračovat v analýze ve výchozích kategoriích.
  5. Volitelně můžete změnit hodnotu "text" pole na jakýkoli text, který chcete analyzovat.
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"
}'

Odpověď JSON bude obsahovat "blocklistMatchResults" , která označuje všechny shody se seznamem blokovaných položek. Hlásí umístění v textovém řetězci, kde byla nalezena shoda.

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

Další operace seznamu blokovaných položek

Tato část obsahuje další operace, které vám pomůžou spravovat a používat funkci seznamu blokovaných položek.

Výpis všech položek blocklistItems v seznamu

Zkopírujte následující příkaz cURL do textového editoru a proveďte následující změny:

  1. Nahraďte <endpoint> adresou URL koncového bodu.
  2. <enter_your_key_here> nahraďte tímto klíčem.
  3. Nahraďte <your_list_name> (v adrese URL požadavku) názvem, který jste použili v kroku vytvoření seznamu.
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'

Stavový kód by měl být 200 a text odpovědi by měl vypadat takto:

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

Výpis všech seznamů blokovaných položek

Zkopírujte následující příkaz cURL do textového editoru a proveďte následující změny:

  1. Nahraďte <endpoint> adresou URL koncového bodu.
  2. <enter_your_key_here> nahraďte tímto klíčem.
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'

Stavový kód by měl být 200. Odpověď JSON vypadá takto:

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

Získání seznamu blokovaných podle blocklistName

Zkopírujte následující příkaz cURL do textového editoru a proveďte následující změny:

  1. Nahraďte <endpoint> adresou URL koncového bodu.
  2. <enter_your_key_here> nahraďte tímto klíčem.
  3. Nahraďte <your_list_name> (v adrese URL požadavku) názvem, který jste použili v kroku vytvoření seznamu.
cURL --location '<endpoint>contentsafety/text/blocklists/<your_list_name>?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--data ''

Stavový kód by měl být 200. Odpověď JSON vypadá takto:

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

Získání blocklistItem podle blocklistName a blocklistItemId

Zkopírujte následující příkaz cURL do textového editoru a proveďte následující změny:

  1. Nahraďte <endpoint> adresou URL koncového bodu.
  2. <enter_your_key_here> nahraďte tímto klíčem.
  3. Nahraďte <your_list_name> (v adrese URL požadavku) názvem, který jste použili v kroku vytvoření seznamu.
  4. Nahraďte <your_item_id> hodnotou ID pro blocklistItem. Toto je hodnota "blocklistItemId" pole z add blocklistItem nebo Get all blocklistItems API volání.
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 ''

Stavový kód by měl být 200. Odpověď JSON vypadá takto:

{
  "blocklistItemId": "string",
  "description": "string",
  "text": "string"
}
  1. Nahraďte <your_list_name> názvem, který jste použili v kroku vytvoření seznamu.
  2. Nahraďte <your_block_item_id> ID položky, kterou chcete získat.
  3. Spusťte skript.

Odeberte položku blocklistItems ze seznamu blokovaných položek.

Poznámka:

Po odstranění položky dojde k určitému zpoždění, než se projeví při analýze textu, obvykle ne více než pět minut.

Zkopírujte následující příkaz cURL do textového editoru a proveďte následující změny:

  1. Nahraďte <endpoint> adresou URL koncového bodu.
  2. <enter_your_key_here> nahraďte tímto klíčem.
  3. Nahraďte <your_list_name> (v adrese URL požadavku) názvem, který jste použili v kroku vytvoření seznamu.
  4. Nahraďte <item_id> hodnotou ID pro blocklistItem. Toto je hodnota "blocklistItemId" pole z add blocklistItem nebo Get all blocklistItems API volání.
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>"
]'

Tip

V jednom volání rozhraní API můžete odstranit několik blocklistItems. Nastavte text požadavku jako pole blocklistItemId hodnot.

Kód odpovědi by měl být 204.

Odstranění seznamu a veškerého jeho obsahu

Poznámka:

Po odstranění seznamu dojde k určitému zpoždění, než se projeví při analýze textu, obvykle ne více než pět minut.

Zkopírujte následující příkaz cURL do textového editoru a proveďte následující změny:

  1. Nahraďte <endpoint> adresou URL koncového bodu.
  2. <enter_your_key_here> nahraďte tímto klíčem.
  3. Nahraďte <your_list_name> (v adrese URL požadavku) názvem, který jste použili v kroku vytvoření seznamu.
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' \

Kód odpovědi by měl být 204.

Další kroky

Další informace o rozhraních API používaných v této příručce najdete v referenční dokumentaci k rozhraním API.