Azure KI Inhaltssicherheit Clientbibliothek für Python – Version 1.0.0
Azure KI Inhaltssicherheit erkennt schädliche benutzergenerierte und KI-generierte Inhalte in Anwendungen und Diensten. Content Safety umfasst Text- und Bild-APIs, mit denen Sie schädliches Material erkennen können:
- Textanalyse-API: Scannt Text auf sexuelle Inhalte, Gewalt, Hass und Selbstverletzung mit mehreren Schweregraden.
- Bildanalyse-API: Scannt Bilder auf sexuelle Inhalte, Gewalt, Hass und Selbstverletzung mit mehreren Schweregraden.
- Textblocklist-Verwaltungs-APIs: Die standardmäßigen KI-Klassifizierer reichen für die meisten Anforderungen an die Inhaltssicherheit aus. Möglicherweise müssen Sie jedoch nach Begriffen suchen, die für Ihren Anwendungsfall spezifisch sind. Sie können Blocklisten mit Begriffen erstellen, die mit der Text-API verwendet werden sollen.
Dokumentation
Es stehen verschiedene Dokumentationen zur Verfügung, die Ihnen den Einstieg erleichtern
Erste Schritte
Voraussetzungen
- Für die Verwendung dieses Pakets ist Python 3.7 oder höher erforderlich.
- Sie benötigen ein Azure-Abonnement , um dieses Paket verwenden zu können.
- Eine Azure KI Inhaltssicherheit Ressource, falls keine ressource vorhanden ist, können Sie eine neue Ressource erstellen.
Installieren des Pakets
pip install azure-ai-contentsafety
Authentifizieren des Clients
Abrufen des Endpunkts
Sie können den Endpunkt für Ihre Azure KI Inhaltssicherheit-Dienstressource über das Azure-Portal oder die Azure CLI finden:
# Get the endpoint for the Azure AI Content Safety service resource
az cognitiveservices account show --name "resource-name" --resource-group "resource-group-name" --query "properties.endpoint"
Erstellen eines ContentSafetyClient/BlocklistClient mit API-Schlüssel
So verwenden Sie einen API-Schlüssel als credential
Parameter.
Schritt 1: Abrufen des API-Schlüssels. Den API-Schlüssel finden Sie im Azure-Portal oder indem Sie den folgenden Azure CLI-Befehl ausführen:
az cognitiveservices account keys list --name "<resource-name>" --resource-group "<resource-group-name>"
Schritt 2: Übergeben Sie den Schlüssel als Zeichenfolge an eine instance von
AzureKeyCredential
.from azure.core.credentials import AzureKeyCredential from azure.ai.contentsafety import ContentSafetyClient, BlocklistClient endpoint = "https://<my-custom-subdomain>.cognitiveservices.azure.com/" credential = AzureKeyCredential("<api_key>") content_safety_client = ContentSafetyClient(endpoint, credential) blocklist_client = BlocklistClient(endpoint, credential)
Erstellen eines ContentSafetyClient/BlocklistClient mit Microsoft Entra ID-Tokenanmeldeinformationen
Schritt 1: Aktivieren Sie Microsoft Entra-ID für Ihre Ressource. Die Schritte zum Aktivieren Microsoft Entra-ID für Ihre Ressource finden Sie in diesem Dokument Authentifizieren mit Microsoft Entra ID.
Die Standard Schritte sind:
- Erstellen Sie eine Ressource mit einer benutzerdefinierten Unterdomäne.
- Erstellen Sie den Dienstprinzipal, und weisen Sie ihr die Cognitive Services-Benutzerrolle zu.
Schritt 2: Legen Sie die Werte der Client-ID, der Mandanten-ID und des geheimen Clientschlüssels der Microsoft Entra Anwendung als Umgebungsvariablen fest:
AZURE_CLIENT_ID
,AZURE_TENANT_ID
, .AZURE_CLIENT_SECRET
DefaultAzureCredential verwendet die Werte aus diesen Umgebungsvariablen.
from azure.identity import DefaultAzureCredential from azure.ai.contentsafety import ContentSafetyClient, BlocklistClient endpoint = "https://<my-custom-subdomain>.cognitiveservices.azure.com/" credential = DefaultAzureCredential() content_safety_client = ContentSafetyClient(endpoint, credential) blocklist_client = BlocklistClient(endpoint, credential)
Wichtige Begriffe
Verfügbare Features
In diesem Dienst stehen verschiedene Analysetypen zur Verfügung. In der folgenden Tabelle werden die derzeit verfügbaren APIs beschrieben.
Funktion | BESCHREIBUNG |
---|---|
Textanalyse-API | Scannt Text auf sexuelle Inhalte, Gewalt, Hass und Selbstverletzung mit mehreren Schweregraden. |
Bildanalyse-API | Scannt Bilder auf sexuelle Inhalte, Gewalt, Hass und Selbstverletzung mit mehreren Schweregraden. |
Textblocklist-Verwaltungs-APIs | Die standardmäßigen KI-Klassifizierer sind für die meisten Anforderungen an die Inhaltssicherheit ausreichend. Möglicherweise müssen Sie jedoch nach Begriffen suchen, die für Ihren Anwendungsfall spezifisch sind. Sie können Blocklisten mit Begriffen erstellen, die mit der Text-API verwendet werden sollen. |
Schadenskategorien
Content Safety erkennt vier verschiedene Kategorien anstößiger Inhalte.
Category | BESCHREIBUNG |
---|---|
Hass | Hass- und Fairnessschäden beziehen sich auf alle Inhalte, die eine abwertende oder diskriminierende Sprache mit Bezug auf eine Person oder Identitätsgruppe auf der Grundlage bestimmter differenzierender Attribute dieser Gruppen angreifen oder verwenden, einschließlich, aber nicht beschränkt auf Rasse, ethnische Zugehörigkeit, Nationalität, Geschlechtsidentität und Ausdruck, sexuelle Orientierung, Religion, Einwanderung status, Fähigkeit status, persönliches Aussehen und Körpergröße. |
Sexuell | Sexuell beschreibt Sprache im Zusammenhang mit anatomischen Organen und Genitalien, romantische Beziehungen, erotisch oder liebevoll dargestellte Handlungen, Schwangerschaft, körperliche sexuelle Handlungen, einschließlich solcher, die als Übergriff oder erzwungene sexuelle Gewalt gegen den Willen dargestellt werden, Prostitution, Pornografie und Missbrauch. |
Gewalt | Gewalt beschreibt Sprache im Zusammenhang mit körperlichen Handlungen, die dazu dienen, jemanden oder etwas zu verletzen, zu verletzen, zu beschädigen oder zu töten; beschreibt Waffen, Waffen und verwandte Entitäten wie Hersteller, Verbände, Gesetzgebung usw. |
Selbstverletzung | Selbstverletzung beschreibt Sprache im Zusammenhang mit körperlichen Handlungen, die dazu dienen, den eigenen Körper absichtlich zu verletzen, zu verletzen oder sich selbst zu töten. |
Die Klassifizierung kann mit mehreren Bezeichnungen versehen werden. Wenn z. B. ein Textbeispiel das Textmoderationsmodell durchläuft, kann es sowohl als sexueller als auch als gewalttätiger Inhalt eingestuft werden.
Schweregrade
Jede Schadenskategorie des Diensts verfügt auch über eine Bewertung des Schweregrads. Der Schweregrad gibt an, wie schwerwiegend die Folgen des Zeigens des gekennzeichneten Inhalts sind.
Text: Die aktuelle Version des Textmodells unterstützt den vollständigen Schweregrad 0 bis 7. Standardmäßig gibt die Antwort 4 Werte aus: 0, 2, 4 und 6. Jede zwei benachbarten Ebenen wird einer einzelnen Ebene zugeordnet. Benutzer können "outputType" in der Anforderung verwenden und auf "EightSeverityLevels" festlegen, um 8 Werte in der Ausgabe abzurufen: 0,1,2,3,4,5,6,7. Ausführliche Informationen finden Sie unter Definitionen von Schweregraden für Textinhalt .
- [0,1] -> 0
- [2,3] -> 2
- [4,5] -> 4
- [6,7] -> 6
Bild: Die aktuelle Version des Imagemodells unterstützt die gekürzte Version des vollständigen Schweregrads von 0 bis 7. Der Klassifizierer gibt nur die Schweregrade 0, 2, 4 und 6 zurück. jede zwei benachbarten Ebenen werden einer einzelnen Ebene zugeordnet. Ausführliche Informationen finden Sie unter Definitionen der Schweregrade von Bildinhalten .
- [0,1] -> 0
- [2,3] -> 2
- [4,5] -> 4
- [6,7] -> 6
Verwaltung von Textblocklisten
Folgende Vorgänge werden unterstützt, um Ihre Textblockliste zu verwalten:
- Erstellen oder Ändern einer Sperrliste
- Auflisten aller Sperrlisten
- Abrufen einer Blockliste nach blocklistName
- Hinzufügen von blocklistItems zu einer Blockliste
- Entfernen von blocklistItems aus einer Blockliste
- Auflisten aller blocklistItems in einer Blockliste nach blocklistName
- Abrufen eines blocklistItem in einer Blockliste nach blocklistItemId und blocklistName
- Löschen einer Blockliste und aller zugehörigen blocklistItems
Sie können die Blocklisten festlegen, die Sie beim Analysieren von Text verwenden möchten, und dann können Sie das Ergebnis der Blocklisteneinstimmung aus der zurückgegebenen Antwort abrufen.
Beispiele
Der folgende Abschnitt enthält mehrere Codeausschnitte, die einige der häufigsten Aufgaben des Inhaltssicherheitsdiensts behandeln, einschließlich:
Die hier verwendeten Daten finden Sie unter Beispieldaten . Weitere Beispiele finden Sie unter Beispiele.
Analysieren von Text
Analysieren von Text ohne Blocklisten
import os
from azure.ai.contentsafety import ContentSafetyClient
from azure.ai.contentsafety.models import TextCategory
from azure.core.credentials import AzureKeyCredential
from azure.core.exceptions import HttpResponseError
from azure.ai.contentsafety.models import AnalyzeTextOptions
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
# Create a Content Safety client
client = ContentSafetyClient(endpoint, AzureKeyCredential(key))
# Construct a request
request = AnalyzeTextOptions(text="You are an idiot")
# Analyze text
try:
response = client.analyze_text(request)
except HttpResponseError as e:
print("Analyze text failed.")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
hate_result = next(item for item in response.categories_analysis if item.category == TextCategory.HATE)
self_harm_result = next(item for item in response.categories_analysis if item.category == TextCategory.SELF_HARM)
sexual_result = next(item for item in response.categories_analysis if item.category == TextCategory.SEXUAL)
violence_result = next(item for item in response.categories_analysis if item.category == TextCategory.VIOLENCE)
if hate_result:
print(f"Hate severity: {hate_result.severity}")
if self_harm_result:
print(f"SelfHarm severity: {self_harm_result.severity}")
if sexual_result:
print(f"Sexual severity: {sexual_result.severity}")
if violence_result:
print(f"Violence severity: {violence_result.severity}")
Analysieren von Text mit Blocklisten
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 = "TestBlocklist"
input_text = "I h*te you and I want to k*ll you."
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}, BlockItemId: {match_result.blocklist_item_id}, "
f"BlockItemText: {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
Bild analysieren
import os
from azure.ai.contentsafety import ContentSafetyClient
from azure.ai.contentsafety.models import ImageCategory
from azure.core.credentials import AzureKeyCredential
from azure.core.exceptions import HttpResponseError
from azure.ai.contentsafety.models import AnalyzeImageOptions, ImageData
key = os.environ["CONTENT_SAFETY_KEY"]
endpoint = os.environ["CONTENT_SAFETY_ENDPOINT"]
image_path = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "./sample_data/image.jpg"))
# Create a Content Safety client
client = ContentSafetyClient(endpoint, AzureKeyCredential(key))
# Build request
with open(image_path, "rb") as file:
request = AnalyzeImageOptions(image=ImageData(content=file.read()))
# Analyze image
try:
response = client.analyze_image(request)
except HttpResponseError as e:
print("Analyze image failed.")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
hate_result = next(item for item in response.categories_analysis if item.category == ImageCategory.HATE)
self_harm_result = next(item for item in response.categories_analysis if item.category == ImageCategory.SELF_HARM)
sexual_result = next(item for item in response.categories_analysis if item.category == ImageCategory.SEXUAL)
violence_result = next(item for item in response.categories_analysis if item.category == ImageCategory.VIOLENCE)
if hate_result:
print(f"Hate severity: {hate_result.severity}")
if self_harm_result:
print(f"SelfHarm severity: {self_harm_result.severity}")
if sexual_result:
print(f"Sexual severity: {sexual_result.severity}")
if violence_result:
print(f"Violence severity: {violence_result.severity}")
Textblockliste verwalten
Erstellen oder Aktualisieren einer Textblockliste
import os
from azure.ai.contentsafety import BlocklistClient
from azure.ai.contentsafety.models import TextBlocklist
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 = "TestBlocklist"
blocklist_description = "Test blocklist management."
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
Textblocklisten auflisten
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
Textblockliste abrufen
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 = "TestBlocklist"
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
Textblockliste löschen
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 = "TestBlocklist"
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
Hinzufügen von blockItems
import os
from azure.ai.contentsafety import BlocklistClient
from azure.ai.contentsafety.models import AddOrUpdateTextBlocklistItemsOptions, TextBlocklistItem
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 = "TestBlocklist"
block_item_text_1 = "k*ll"
block_item_text_2 = "h*te"
block_items = [TextBlocklistItem(text=block_item_text_1), TextBlocklistItem(text=block_item_text_2)]
try:
result = client.add_or_update_blocklist_items(
blocklist_name=blocklist_name, options=AddOrUpdateTextBlocklistItemsOptions(blocklist_items=block_items)
)
for block_item in result.blocklist_items:
print(
f"BlockItemId: {block_item.blocklist_item_id}, Text: {block_item.text}, Description: {block_item.description}"
)
except HttpResponseError as e:
print("\nAdd block items failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
ListenblockItems
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 = "TestBlocklist"
try:
block_items = client.list_text_blocklist_items(blocklist_name=blocklist_name)
if block_items:
print("\nList block items: ")
for block_item in block_items:
print(
f"BlockItemId: {block_item.blocklist_item_id}, Text: {block_item.text}, "
f"Description: {block_item.description}"
)
except HttpResponseError as e:
print("\nList block items failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
BlockItem abrufen
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 = "TestBlocklist"
block_item_text_1 = "k*ll"
try:
# Add a blockItem
add_result = client.add_or_update_blocklist_items(
blocklist_name=blocklist_name,
options=AddOrUpdateTextBlocklistItemsOptions(blocklist_items=[TextBlocklistItem(text=block_item_text_1)]),
)
if not add_result or not add_result.blocklist_items or len(add_result.blocklist_items) <= 0:
raise RuntimeError("BlockItem not created.")
block_item_id = add_result.blocklist_items[0].blocklist_item_id
# Get this blockItem by blockItemId
block_item = client.get_text_blocklist_item(blocklist_name=blocklist_name, blocklist_item_id=block_item_id)
print("\nGet blockitem: ")
print(
f"BlockItemId: {block_item.blocklist_item_id}, Text: {block_item.text}, Description: {block_item.description}"
)
except HttpResponseError as e:
print("\nGet block item failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
Entfernen von blockItems
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 = "TestBlocklist"
block_item_text_1 = "k*ll"
try:
# Add a blockItem
add_result = client.add_or_update_blocklist_items(
blocklist_name=blocklist_name,
options=AddOrUpdateTextBlocklistItemsOptions(blocklist_items=[TextBlocklistItem(text=block_item_text_1)]),
)
if not add_result or not add_result.blocklist_items or len(add_result.blocklist_items) <= 0:
raise RuntimeError("BlockItem not created.")
block_item_id = add_result.blocklist_items[0].blocklist_item_id
# Remove this blockItem by blockItemId
client.remove_blocklist_items(
blocklist_name=blocklist_name, options=RemoveTextBlocklistItemsOptions(blocklist_item_ids=[block_item_id])
)
print(f"\nRemoved blockItem: {add_result.blocklist_items[0].blocklist_item_id}")
except HttpResponseError as e:
print("\nRemove block item failed: ")
if e.error:
print(f"Error code: {e.error.code}")
print(f"Error message: {e.error.message}")
raise
print(e)
raise
Problembehandlung
Allgemein
Azure KI Inhaltssicherheit Clientbibliothek löst in Azure Core definierte Ausnahmen aus. Fehlercodes werden wie folgt definiert:
Fehlercode | Mögliche Ursachen | Vorschläge |
---|---|---|
InvalidRequestBody | Mindestens ein Feld im Anforderungstext entspricht nicht der API-Definition. | 1. Überprüfen Sie die API-Version, die Sie im API-Aufruf angegeben haben. 2. Überprüfen Sie die entsprechende API-Definition für die ausgewählte API-Version. |
InvalidResourceName | Der Ressourcenname, den Sie in der URL angegeben haben, erfüllt nicht die Anforderungen, z. B. den Namen der Blockliste, die Begriffs-ID der Blockliste usw. | 1. Überprüfen Sie die API-Version, die Sie im API-Aufruf angegeben haben. 2. Überprüfen Sie, ob der angegebene Name gemäß der API-Definition ungültige Zeichen aufweist. |
ResourceNotFound | Die Ressource, die Sie in der URL angegeben haben, ist möglicherweise nicht vorhanden, z. B. der Name der Blockliste. | 1. Überprüfen Sie die API-Version, die Sie im API-Aufruf angegeben haben. 2. Überprüfen Sie das Vorhandensein der in der URL angegebenen Ressource. |
InternalError | Einige unerwartete Situationen auf der Serverseite wurden ausgelöst. | 1. Sie können es nach einem kurzen Zeitraum noch einige Male wiederholen und feststellen, ob das Problem erneut auftritt. 2. Wenden Sie sich an den Azure-Support, wenn dieses Problem weiterhin besteht. |
ServerBusy | Die Serverseite kann die Anforderung vorübergehend nicht verarbeiten. | 1. Sie können es nach einem kurzen Zeitraum noch einige Male wiederholen und feststellen, ob das Problem erneut auftritt. 2. Wenden Sie sich an den Azure-Support, wenn dieses Problem weiterhin besteht. |
TooManyRequests | Der aktuelle RPS hat das Kontingent für Ihre aktuelle SKU überschritten. | 1. Überprüfen Sie die Preistabelle, um das RPS-Kontingent zu verstehen. 2. Wenden Sie sich an den Azure-Support, wenn Sie mehr QPS benötigen. |
Protokollierung
Diese Bibliothek verwendet die Standardprotokollierungsbibliothek für die Protokollierung.
Grundlegende Informationen zu HTTP-Sitzungen (URLs, Header usw.) werden auf Ebene INFO
protokolliert.
Die detaillierte DEBUG
Protokollierung auf Ebene, einschließlich Anforderungs-/Antworttexten und nicht ausgeführten Headern, kann auf dem Client oder pro Vorgang mit dem logging_enable
argument Schlüsselwort (keyword) aktiviert werden.
Sehen Sie sich die vollständige SDK-Protokollierungsdokumentation mit Beispielen hier an.
Optionale Konfiguration
Optionale Schlüsselwort (keyword) Argumente können auf Client- und Vorgangsebene übergeben werden. Die azure-core-Referenzdokumentation beschreibt verfügbare Konfigurationen für Wiederholungen, Protokollierung, Transportprotokolle und vieles mehr.
Nächste Schritte
Zusätzliche Dokumentation
Eine ausführlichere Dokumentation zu Azure Content Safety finden Sie im Azure KI Inhaltssicherheit auf docs.microsoft.com.
Mitwirken
Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Ausführliche Informationen finden Sie unter https://cla.microsoft.com.
Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.
Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den FAQ zum Verhaltenskodex, oder wenden Sie sich mit weiteren Fragen oder Kommentaren an opencode@microsoft.com.
Azure SDK for Python