Udostępnij za pośrednictwem


Korzystanie z listy zablokowanych

Uwaga

Przykładowe dane w tym przewodniku mogą zawierać obraźliwą zawartość. Zaleca się, aby użytkownik był dyskrecjonalne.

Domyślne klasyfikatory sztucznej inteligencji są wystarczające dla większości potrzeb con tryb namiotu ration. Może być jednak konieczne wyświetlanie ekranu elementów specyficznych dla danego przypadku użycia.

Wymagania wstępne

  • Subskrypcja platformy Azure — utwórz bezpłatnie
  • Po utworzeniu subskrypcji platformy Azure utwórz zasób Content Sejf ty w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Wprowadź unikatową nazwę zasobu, wybierz subskrypcję i wybierz grupę zasobów, obsługiwany region (zobacz Dostępność regionu) i obsługiwaną warstwę cenową. Następnie wybierz Utwórz.
    • Wdrożenie zasobu trwa kilka minut. Po zakończeniu wybierz pozycję Przejdź do zasobu. W okienku po lewej stronie w obszarze Zarządzanie zasobami wybierz pozycję Klucz subskrypcji i punkt końcowy. Punkt końcowy i jeden z kluczy są używane do wywoływania interfejsów API.
  • Zainstalowano jedną z następujących opcji:
    • cURL dla wywołań interfejsu API REST.
    • Zainstalowany język Python 3.x
      • Instalacja języka Python powinna zawierać narzędzie pip. Możesz sprawdzić, czy masz zainstalowane narzędzie pip, uruchamiając polecenie pip --version w wierszu polecenia. Pobierz narzędzie pip, instalując najnowszą wersję języka Python.
      • Jeśli używasz języka Python, musisz zainstalować bibliotekę klienta azure AI content Sejf ty dla języka Python. Uruchom polecenie pip install azure-ai-contentsafety w katalogu projektu.
    • Zainstalowane środowisko uruchomieniowe .NET.
      • Zainstalowany zestaw .NET Core SDK.
      • Jeśli używasz platformy .NET, musisz zainstalować bibliotekę klienta azure AI content Sejf ty dla platformy .NET. Uruchom polecenie dotnet add package Azure.AI.ContentSafety --prerelease w katalogu projektu.

Tworzenie zmiennych środowiskowych

W tym przykładzie napiszesz poświadczenia do zmiennych środowiskowych na komputerze lokalnym z uruchomioną aplikacją.

Napiwek

Nie dołączaj klucza bezpośrednio do kodu i nigdy nie publikuj go publicznie. Aby uzyskać więcej opcji uwierzytelniania, takich jak usługa Azure Key Vault, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.

Aby ustawić zmienną środowiskową dla klucza i punktu końcowego, otwórz okno konsoli i postępuj zgodnie z instrukcjami dotyczącymi systemu operacyjnego i środowiska programistycznego.

  1. Aby ustawić zmienną CONTENT_SAFETY_KEY środowiskową, zastąp YOUR_CONTENT_SAFETY_KEY element jednym z kluczy zasobu.
  2. Aby ustawić zmienną CONTENT_SAFETY_ENDPOINT środowiskową, zastąp YOUR_CONTENT_SAFETY_ENDPOINT element punktem końcowym zasobu.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

Po dodaniu zmiennych środowiskowych może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą odczytywać zmienne środowiskowe, w tym okno konsoli.

Analizowanie tekstu przy użyciu listy zablokowanych

Listy blokowe można tworzyć do użycia z interfejsem API tekstu. Poniższe kroki ułatwiają rozpoczęcie pracy.

Tworzenie lub modyfikowanie listy zablokowanych

Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:

  1. Zastąp <endpoint> ciąg adresem URL punktu końcowego.
  2. Zastąp element <enter_your_key_here> swoim kluczem.
  3. Zastąp <your_list_name> ciąg (w adresie URL) nazwą niestandardową listy. Zastąp również ostatni termin adresu URL REST tą samą nazwą. Dozwolone znaki: 0-9, A-Z, a-z, - . _ ~.
  4. Opcjonalnie zastąp wartość "description" pola opisem niestandardowym.
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"
}'

Kod odpowiedzi powinien być 201(utworzona nowa lista) lub 200(zaktualizowana istniejąca lista).

Dodawanie elementu blocklistItems do listy

Uwaga

Istnieje maksymalny limit wynoszący 10 000 terminów łącznie na wszystkich listach. W jednym żądaniu można dodać co najwyżej 100 elementów blocklistItems.

Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:

  1. Zastąp <endpoint> ciąg adresem URL punktu końcowego.
  2. Zastąp element <enter_your_key_here> swoim kluczem.
  3. Zastąp <your_list_name> ciąg (w adresie URL) nazwą użytą w kroku tworzenia listy.
  4. Opcjonalnie zastąp wartość "description" pola opisem niestandardowym.
  5. Zastąp wartość "text" pola elementem, który chcesz dodać do listy zablokowanych. Maksymalna długość elementu blocklistItem wynosi 128 znaków.
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"
}]'

Napiwek

Możesz dodać wiele elementów blocklistItems w jednym wywołaniu interfejsu API. Prześlij treść żądania do tablicy JSON grup danych:

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

Kod odpowiedzi powinien mieć wartość 200.

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

Uwaga

Po dodaniu lub edytowaniu elementu blockItem nastąpi opóźnienie, zanim zacznie obowiązywać analiza tekstu, zwykle nie więcej niż pięć minut.

Analizowanie tekstu przy użyciu listy zablokowanych

Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:

  1. Zastąp <endpoint> ciąg adresem URL punktu końcowego.
  2. Zastąp element <enter_your_key_here> swoim kluczem.
  3. Zastąp <your_list_name> ciąg nazwą użytą w kroku tworzenia listy. Pole "blocklistNames" może zawierać tablicę wielu identyfikatorów listy.
  4. Opcjonalnie zmień wartość ."breakByBlocklists" true wskazuje, że po dopasowaniu listy zablokowanych analiza zwróci natychmiast bez danych wyjściowych modelu. false spowoduje, że model będzie nadal wykonywać analizę w kategoriach domyślnych.
  5. Opcjonalnie zmień wartość "text" pola na dowolny tekst, który chcesz przeanalizować.
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"
}'

Odpowiedź JSON będzie zawierać wartość wskazującą "blocklistMatchResults" wszystkie dopasowania z listą zablokowanych. Raportuje lokalizację w ciągu tekstowym, w którym znaleziono dopasowanie.

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

Inne operacje listy bloków

Ta sekcja zawiera więcej operacji ułatwiacych zarządzanie funkcją listy zablokowanych i korzystanie z nich.

Wyświetlanie listy wszystkich elementów blocklistItems na liście

Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:

  1. Zastąp <endpoint> ciąg adresem URL punktu końcowego.
  2. Zastąp element <enter_your_key_here> swoim kluczem.
  3. Zastąp <your_list_name> ciąg (w adresie URL żądania) nazwą użytą w kroku tworzenia listy.
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'

Powinien to być 200 kod stanu, a treść odpowiedzi powinna wyglądać następująco:

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

Wyświetl listę wszystkich list zablokowanych

Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:

  1. Zastąp <endpoint> ciąg adresem URL punktu końcowego.
  2. Zastąp element <enter_your_key_here> swoim kluczem.
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'

Kod stanu powinien mieć wartość 200. Odpowiedź JSON wygląda następująco:

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

Pobieranie listy zablokowanych według blocklistName

Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:

  1. Zastąp <endpoint> ciąg adresem URL punktu końcowego.
  2. Zastąp element <enter_your_key_here> swoim kluczem.
  3. Zastąp <your_list_name> ciąg (w adresie URL żądania) nazwą użytą w kroku tworzenia listy.
cURL --location '<endpoint>contentsafety/text/blocklists/<your_list_name>?api-version=2023-10-01' \
--header 'Ocp-Apim-Subscription-Key: <enter_your_key_here>' \
--data ''

Kod stanu powinien mieć wartość 200. Odpowiedź JSON wygląda następująco:

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

Pobieranie elementu blocklistItem według właściwości blocklistName i blocklistItemId

Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:

  1. Zastąp <endpoint> ciąg adresem URL punktu końcowego.
  2. Zastąp element <enter_your_key_here> swoim kluczem.
  3. Zastąp <your_list_name> ciąg (w adresie URL żądania) nazwą użytą w kroku tworzenia listy.
  4. Zastąp <your_item_id> ciąg wartością ID elementu blocklistItem. Jest to wartość "blocklistItemId" pola z pola Dodaj blocklistItem lub Pobierz wszystkie wywołania interfejsu API blocklistItems.
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 ''

Kod stanu powinien mieć wartość 200. Odpowiedź JSON wygląda następująco:

{
  "blocklistItemId": "string",
  "description": "string",
  "text": "string"
}
  1. Zastąp <your_list_name> ciąg nazwą użytą w kroku tworzenia listy.
  2. Zastąp <your_block_item_id> element identyfikatorem elementu, który chcesz pobrać.
  3. Uruchom skrypt.

Usuń element blocklistItems z listy zablokowanych.

Uwaga

Po usunięciu elementu nastąpi opóźnienie, zanim zacznie obowiązywać analiza tekstu, zwykle nie więcej niż pięć minut.

Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:

  1. Zastąp <endpoint> ciąg adresem URL punktu końcowego.
  2. Zastąp element <enter_your_key_here> swoim kluczem.
  3. Zastąp <your_list_name> ciąg (w adresie URL żądania) nazwą użytą w kroku tworzenia listy.
  4. Zastąp <item_id> ciąg wartością ID elementu blocklistItem. Jest to wartość "blocklistItemId" pola z pola Dodaj blocklistItem lub Pobierz wszystkie wywołania interfejsu API blocklistItems.
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>"
]'

Napiwek

Można usunąć wiele elementów blocklistItems w jednym wywołaniu interfejsu API. Ustaw treść żądania jako tablicę blocklistItemId wartości.

Kod odpowiedzi powinien mieć wartość 204.

Usuwanie listy i całej jej zawartości

Uwaga

Po usunięciu listy przed rozpoczęciem analizy tekstu nastąpi opóźnienie, zwykle nie więcej niż pięć minut.

Skopiuj poniższe polecenie cURL do edytora tekstów i wprowadź następujące zmiany:

  1. Zastąp <endpoint> ciąg adresem URL punktu końcowego.
  2. Zastąp element <enter_your_key_here> swoim kluczem.
  3. Zastąp <your_list_name> ciąg (w adresie URL żądania) nazwą użytą w kroku tworzenia listy.
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' \

Kod odpowiedzi powinien mieć wartość 204.

Następne kroki

Zapoznaj się z dokumentacją referencyjną interfejsu API, aby dowiedzieć się więcej o interfejsach API używanych w tym przewodniku.