Delen via


Azure AI Content Veiligheid clientbibliotheek voor Python - versie 1.0.0

Azure AI Content Veiligheid detecteert schadelijke door gebruikers gegenereerde en AI-gegenereerde inhoud in toepassingen en services. Inhoudsveiligheid omvat tekst- en afbeeldings-API's waarmee u materiaal kunt detecteren dat schadelijk is:

  • Tekstanalyse-API: Hiermee wordt tekst gescand op seksuele inhoud, geweld, haat en zelfbeschadiging met niveaus met meerdere ernstniveaus.
  • Afbeeldingsanalyse-API: scant afbeeldingen op seksuele inhoud, geweld, haat en zelfbeschadiging met niveaus met meerdere ernstniveaus.
  • Beheer-API's voor tekstblokkeringslijsten: de standaard-AI-classificaties zijn voldoende voor de meeste behoeften op het veiligheidsniveau van inhoud; Mogelijk moet u echter controleren op termen die specifiek zijn voor uw use-case. U kunt blokkeringslijsten met termen maken voor gebruik met de Text-API.

Documentatie

Er is diverse documentatie beschikbaar om u op weg te helpen

Aan de slag

Vereisten

Het pakket installeren

pip install azure-ai-contentsafety

De client verifiëren

Het eindpunt ophalen

U kunt het eindpunt voor uw Azure AI Content Veiligheid serviceresource vinden met behulp van Azure Portal of Azure CLI:

# 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"

Een ContentSafetyClient/BlocklistClient met API-sleutel maken

Als u een API-sleutel als parameter credential wilt gebruiken.

  • Stap 1: haal de API-sleutel op. De API-sleutel vindt u in Azure Portal of door de volgende Azure CLI-opdracht uit te voeren:

    az cognitiveservices account keys list --name "<resource-name>" --resource-group "<resource-group-name>"
    
  • Stap 2: Geef de sleutel door als een tekenreeks in een exemplaar van 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)
    

Een ContentSafetyClient/BlocklistClient maken met Microsoft Entra id-tokenreferentie

  • Stap 1: schakel Microsoft Entra-id in voor uw resource. Raadpleeg dit document Verifiëren met Microsoft Entra-id voor de stappen voor het inschakelen van Microsoft Entra-id voor uw resource.

    De belangrijkste stappen zijn:

    • Maak een resource met een aangepast subdomein.
    • Maak een service-principal en wijs de rol Cognitive Services-gebruiker eraan toe.
  • Stap 2: Stel de waarden van de client-id, tenant-id en clientgeheim van de Microsoft Entra-toepassing in als omgevingsvariabelen: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET.

    DefaultAzureCredential gebruikt de waarden uit deze omgevingsvariabelen.

    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)
    

Belangrijkste concepten

Beschikbare functies

Er zijn verschillende soorten analyses beschikbaar via deze service. In de volgende tabel worden de momenteel beschikbare API's beschreven.

Functie Beschrijving
Tekstanalyse-API Hiermee scant u tekst op seksuele inhoud, geweld, haat en zelfbeschadiging met niveaus met meerdere ernstniveaus.
Afbeeldingsanalyse-API Scant afbeeldingen op seksuele inhoud, geweld, haat en zelfbeschadiging met niveaus van meerdere ernstniveaus.
Beheer-API's voor tekstblokkeringslijsten De standaard-AI-classificaties zijn voldoende voor de meeste vereisten voor inhoudsveiligheid. Mogelijk moet u echter controleren op termen die specifiek zijn voor uw use-case. U kunt blokkeringslijsten met termen maken voor gebruik met de Text-API.

Schadecategorieën

Inhoudsveiligheid herkent vier verschillende categorieën aan ongewenste inhoud.

Categorie Beschrijving
Haat Haat- en billijkheidsgerelateerde schade verwijst naar alle inhoud die pejoratieve of discriminerende taal aanvalt of gebruikt met verwijzing naar een persoon of identiteitsgroep op basis van bepaalde onderscheidende kenmerken van deze groepen, met inbegrip van maar niet beperkt tot ras, etniciteit, nationaliteit, genderidentiteit en expressie, seksuele geaardheid, religie, immigratiestatus, bekwaamheidsstatus, persoonlijk uiterlijk en lichaamslengte.
Seksuele Seksueel beschrijft taal met betrekking tot anatomische organen en geslachtsorganen, romantische relaties, handelingen die in erotische of aanhankelijke termen worden afgeschilderd, zwangerschap, fysieke seksuele handelingen, inclusief die worden afgeschilderd als een aanval of een gedwongen seksuele gewelddadige daad tegen iemands wil, prostitutie, pornografie en misbruik.
Geweld Geweld beschrijft taal met betrekking tot fysieke acties die bedoeld zijn om iemand of iets te verwonden, te beschadigen of te doden; beschrijft wapens, wapens en gerelateerde entiteiten, zoals fabrikanten, verenigingen, wetgeving, enzovoort.
Zelfbeschadiging Zelfbeschadiging beschrijft taal met betrekking tot fysieke acties die bedoeld zijn om opzettelijk pijn te doen, te verwonden, iemands lichaam te beschadigen of zichzelf te doden.

Classificatie kan meerdere labels hebben. Wanneer een tekstvoorbeeld bijvoorbeeld het model voor tekstbeheer doorloopt, kan het worden geclassificeerd als zowel seksuele inhoud als geweld.

Ernstniveaus

Elke categorie van schade die door de service wordt toegepast, heeft ook een ernstniveauclassificatie. Het ernstniveau is bedoeld om de ernst aan te geven van de gevolgen van het weergeven van de gemarkeerde inhoud.

Tekst: de huidige versie van het tekstmodel ondersteunt de volledige ernstschaal van 0-7. Het antwoord voert standaard 4 waarden uit: 0, 2, 4 en 6. Elke twee aangrenzende niveaus worden toegewezen aan één niveau. Gebruikers kunnen 'outputType' gebruiken in de aanvraag en deze instellen op 'EightSeverityLevels' om 8 waarden in uitvoer op te halen: 0,1,2,3,4,5,6,7. U kunt definities van ernstniveaus voor tekstinhoud raadplegen voor meer informatie.

  • [0,1] -> 0
  • [2,3] -> 2
  • [4,5] -> 4
  • [6,7] -> 6

Afbeelding: De huidige versie van het afbeeldingsmodel ondersteunt de ingekorte versie van de volledige ernstschaal van 0-7. De classificatie retourneert alleen ernst 0, 2, 4 en 6; elke twee aangrenzende niveaus worden toegewezen aan één niveau. U kunt definities van ernstniveaus voor afbeeldingsinhoud raadplegen voor meer informatie.

  • [0,1] -> 0
  • [2,3] -> 2
  • [4,5] -> 4
  • [6,7] -> 6

Beheer van tekstblokkeringslijsten

De volgende bewerkingen worden ondersteund voor het beheren van uw tekstbloklijst:

  • Een blokkeringslijst maken of wijzigen
  • Alle blokkeringslijsten weergeven
  • Een blokkeringslijst ophalen op blocklistName
  • BlocklistItems toevoegen aan een blokkeringslijst
  • BlocklistItems verwijderen uit een blokkeringslijst
  • Alle blocklistItems in een blokkeringslijst weergeven op blocklistName
  • Een blocklistItem ophalen in een blokkeringslijst door blocklistItemId en blocklistName
  • Een blokkeringslijst en alle bijbehorende blokkeringslijsten verwijderen

U kunt de blokkeringslijsten instellen die u wilt gebruiken bij het analyseren van tekst, waarna u het resultaat van de blokkeringslijstovereenkomst kunt ophalen uit het geretourneerde antwoord.

Voorbeelden

De volgende sectie bevat verschillende codefragmenten die betrekking hebben op enkele van de meest voorkomende Taken van de Content Safety-service, waaronder:

Raadpleeg de voorbeeldgegevens voor de gegevens die hier worden gebruikt. Raadpleeg de voorbeelden voor meer voorbeelden.

Tekst analyseren

Tekst analyseren zonder blokkeringslijsten


    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}")

Tekst analyseren met blokkeringslijsten


    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

Afbeelding analyseren


    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}")

Tekstblokkeringslijst beheren

Tekstblokkeringslijst maken of bijwerken


    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

Tekstblokkeringslijsten weergeven


    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

Tekstblokkeringslijst ophalen


    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

Tekstblokkeringslijst verwijderen


    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

BlockItems toevoegen


    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

BlockItems weergeven


    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 ophalen


    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

BlockItems verwijderen


    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

Problemen oplossen

Algemeen

Azure AI Content Veiligheid clientbibliotheek genereert uitzonderingen die zijn gedefinieerd in Azure Core. Foutcodes worden als volgt gedefinieerd:

Foutcode Mogelijke redenen Suggesties
InvalidRequestBody Een of meer velden in de aanvraagbody komen niet overeen met de API-definitie. 1. Controleer de API-versie die u hebt opgegeven in de API-aanroep.
2. Controleer de bijbehorende API-definitie voor de API-versie die u hebt geselecteerd.
InvalidResourceName De resourcenaam die u in de URL hebt opgegeven, voldoet niet aan de vereisten, zoals de naam van de blokkeringslijst, de id van de blokkeringslijst, enzovoort. 1. Controleer de API-versie die u hebt opgegeven in de API-aanroep.
2. Controleer of de opgegeven naam ongeldige tekens bevat volgens de API-definitie.
ResourceNotFound De resource die u in de URL hebt opgegeven, bestaat mogelijk niet, zoals de naam van de blokkeringslijst. 1. Controleer de API-versie die u hebt opgegeven in de API-aanroep.
2. Controleer het bestaan van de resource die is opgegeven in de URL.
InternalError Er zijn enkele onverwachte situaties aan de serverzijde geactiveerd. 1. U kunt het na een korte periode een paar keer opnieuw proberen en het probleem opnieuw zien.
2. Neem contact op met de ondersteuning van Azure als dit probleem zich blijft voordoen.
ServerBusy De aanvraag kan niet tijdelijk worden verwerkt aan de serverzijde. 1. U kunt het na een korte periode een paar keer opnieuw proberen en het probleem opnieuw zien.
2.Neem contact op met de ondersteuning van Azure als dit probleem zich blijft voordoen.
TooManyRequests De huidige RPS heeft het quotum voor uw huidige SKU overschreden. 1. Controleer de prijstabel om het RPS-quotum te begrijpen.
2.Neem contact op met de ondersteuning van Azure als u meer QPS nodig hebt.

Logboekregistratie

Deze bibliotheek maakt gebruik van de standaardbibliotheek voor logboekregistratie voor logboekregistratie.

Basisinformatie over HTTP-sessies (URL's, headers, enzovoort) wordt geregistreerd op INFO niveau.

Gedetailleerde DEBUG logboekregistratie op niveau, inclusief aanvraag-/antwoordteksten en niet-bewerkte headers, kan worden ingeschakeld op de client of per bewerking met het logging_enable trefwoordargument.

Bekijk hier de volledige documentatie voor SDK-logboekregistratie met voorbeelden.

Optionele configuratie

Optionele trefwoordargumenten kunnen worden doorgegeven op het niveau van de client en per bewerking. In de naslagdocumentatie van Azure Core worden de beschikbare configuraties beschreven voor nieuwe pogingen, logboekregistratie, transportprotocollen en meer.

Volgende stappen

Aanvullende documentatie

Zie de Azure AI Content Veiligheid op docs.microsoft.com voor uitgebreidere documentatie over Azure Content Safety.

Bijdragen

Wij verwelkomen bijdragen en suggesties voor dit project. Voor de meeste bijdragen moet u instemmen met een licentieovereenkomst voor bijdragers (CLA: Contributor License Agreement) waarin u verklaart dat u gerechtigd bent ons het recht te geven uw bijdrage te gebruiken, en dat u dit ook doet. Ga naar https://cla.microsoft.com voor meer informatie.

Wanneer u een pull-aanvraag indient, wordt met een CLA-bot automatisch bepaald of u een CLA moet verschaffen en wordt de pull-aanvraag dienovereenkomstig opgemaakt (bijvoorbeeld met een label of commentaar). Volg gewoon de instructies van de bot. U hoeft dit maar eenmaal te doen voor alle repo's waar gebruik wordt gemaakt van onze CLA.

Op dit project is de Microsoft Open Source Code of Conduct (Microsoft Open Source-gedragscode) van toepassing. Raadpleeg de Veelgestelde vragen over de gedragscode voor meer informatie of neem contact op met opencode@microsoft.com als u meer vragen of opmerkingen hebt.