Partager via


bibliothèque cliente Azure AI Sécurité du Contenu pour Python - version 1.0.0

Azure AI Sécurité du Contenu détecte le contenu dangereux généré par l’utilisateur et généré par l’IA dans les applications et les services. La sécurité du contenu inclut des API de texte et d’image qui vous permettent de détecter des éléments nuisibles :

  • API Analyse de texte : analyse le texte à la recherche de contenu sexuel, de violence, de haine et d’automutilation avec des niveaux de gravité multiples.
  • API Analyse d’images : analyse les images à la recherche de contenu sexuel, de violence, de haine et d’automutilation avec des niveaux de gravité multiples.
  • API de gestion des listes de blocs de texte : les classifieurs d’IA par défaut sont suffisants pour la plupart des besoins de sécurité du contenu ; Toutefois, vous devrez peut-être rechercher des termes spécifiques à votre cas d’usage. Vous pouvez créer des listes de blocs de termes à utiliser avec l’API De texte.

Documentation

Diverses documentations sont disponibles pour vous aider à démarrer

Prise en main

Prérequis

Installer le package

pip install azure-ai-contentsafety

Authentifier le client

Obtenir le point de terminaison

Vous pouvez trouver le point de terminaison de votre ressource de service Azure AI Sécurité du Contenu à l’aide du portail Azure ou d’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"

Créer un ContentSafetyClient/BlocklistClient avec une clé API

Pour utiliser une clé API comme credential paramètre.

  • Étape 1 : Obtenir la clé API. La clé API se trouve dans le portail Azure ou en exécutant la commande Azure CLI suivante :

    az cognitiveservices account keys list --name "<resource-name>" --resource-group "<resource-group-name>"
    
  • Étape 2 : Passez la clé sous forme de chaîne dans un instance de 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)
    

Créer un ContentSafetyClient/BlocklistClient avec des informations d’identification de jeton d’ID Microsoft Entra

  • Étape 1 : Activez l’ID Microsoft Entra pour votre ressource. Reportez-vous à ce document Authentifiez-vous avec Microsoft Entra ID pour connaître les étapes permettant d’activer Microsoft Entra ID pour votre ressource.

    Les étapes main sont les suivantes :

    • Créez une ressource avec un sous-domaine personnalisé.
    • Créez un principal de service et attribuez-lui le rôle Utilisateur Cognitive Services.
  • Étape 2 : Définissez les valeurs de l’ID client, de l’ID de locataire et de la clé secrète client de l’application Microsoft Entra en tant que variables d’environnement : AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET.

    DefaultAzureCredential utilise les valeurs de ces variables d’environnement.

    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)
    

Concepts clés

Fonctionnalités disponibles

Il existe différents types d’analyse disponibles dans ce service. Le tableau suivant décrit les API actuellement disponibles.

Fonctionnalité Description
API Analyse de texte Analyse du texte à la recherche de contenu sexuel, de violence, de haine et d’automutilation avec des niveaux de gravité multiples.
API d’analyse d’image Scanne des images à la recherche de contenu sexuel, de violence, de haine et d’automutilation avec des niveaux de gravité multiples.
API de gestion des listes de blocs de texte Les classifieurs d’IA par défaut sont suffisants pour la plupart des besoins de sécurité du contenu. Toutefois, vous devrez peut-être rechercher des termes spécifiques à votre cas d’usage. Vous pouvez créer des listes de blocs de termes à utiliser avec l’API De texte.

Catégories préjudiciables

Content Safety reconnaît quatre catégories distinctes de contenu répréhensible.

Category Description
Déteste Les préjudices liés à la haine et à l’équité désignent tout contenu qui attaque ou utilise un langage péjoratif ou discriminatoire en faisant référence à une personne ou à un groupe d’identité en fonction de certains attributs de différenciation de ces groupes, notamment la race, l’ethnicité, la nationalité, l’identité et l’expression de genre, l’orientation sexuelle, la religion, l’immigration status, la capacité status, l’apparence personnelle et la taille du corps.
Contenu sexuel Le langage sexuel décrit le langage relatif aux organes anatomiques et aux organes génitaux, aux relations amoureuses, aux actes décrits en termes érotiques ou affectueux, à la grossesse, aux actes sexuels physiques, y compris ceux présentés comme une agression ou un acte forcé de violence sexuelle contre sa volonté, la prostitution, la pornographie et les abus.
Violence La violence décrit le langage lié aux actions physiques visant à blesser, blesser, endommager ou tuer quelqu’un ou quelque chose ; décrit les armes, les armes à feu et les entités connexes, telles que les fabricants, les associations, la législation, etc.
Automutilation L’automutilation décrit le langage lié aux actions physiques visant à blesser, blesser, endommager son corps ou se tuer.

La classification peut avoir plusieurs intitulés. Par exemple, lorsqu’un exemple de texte est exécuté via le modèle de modération de texte, il peut être classé à la fois comme du contenu à caractère sexuel et de la violence.

Niveaux de gravité

Chaque catégorie de préjudice appliquée par le service est également accompagnée d’une évaluation de niveau de gravité. Le niveau de gravité est destiné à indiquer la gravité des conséquences de l’affichage du contenu marqué d’un indicateur.

Texte : la version actuelle du modèle de texte prend en charge l’échelle de gravité complète de 0 à 7. Par défaut, la réponse génère 4 valeurs : 0, 2, 4 et 6. Les deux niveaux adjacents sont mappés à un seul niveau. Les utilisateurs peuvent utiliser « outputType » dans la requête et le définir sur « EightSeverityLevels » pour obtenir 8 valeurs dans la sortie : 0,1,2,3,4,5,6,7. Pour plus d’informations, vous pouvez consulter les définitions de niveaux de gravité du contenu texte.

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

Image : la version actuelle du modèle d’image prend en charge la version supprimée de l’échelle de gravité 0-7 complète. Le classifieur retourne uniquement les gravités 0, 2, 4 et 6 ; les deux niveaux adjacents sont mappés à un seul niveau. Pour plus d’informations, reportez-vous aux définitions des niveaux de gravité du contenu de l’image .

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

Gestion des listes de blocage de texte

Les opérations suivantes sont prises en charge pour gérer votre liste de blocage de texte :

  • Créez ou modifiez une liste de blocs
  • Afficher toutes les listes de refus
  • Obtenir une liste de blocage par blocklistName
  • Ajouter blocklistItems à une liste de blocage
  • Supprimer blocklistItems d’une liste de blocage
  • Répertorier tous les blocklistItems d’une liste de blocage par blocklistName
  • Obtenir un blocklistItem dans une liste de blocage par blocklistItemId et blocklistName
  • Supprimer une liste de blocage et tous ses blocklistItems

Vous pouvez définir les listes de blocage que vous souhaitez utiliser lors de l’analyse du texte, puis vous pouvez obtenir le résultat de correspondance de liste de blocage à partir de la réponse retournée.

Exemples

La section suivante fournit plusieurs extraits de code couvrant certaines des tâches de service de sécurité du contenu les plus courantes, notamment :

Reportez-vous aux exemples de données pour les données utilisées ici. Pour plus d’exemples, reportez-vous aux exemples.

Analyser le texte

Analyser du texte sans liste de blocs


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

Analyser le texte avec des listes de blocs


    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

Analyser l’image


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

Gérer la liste de blocs de texte

Créer ou mettre à jour une liste de blocs de texte


    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

Lister les listes de blocs de texte


    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

Obtenir une liste de blocs de texte


    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

Supprimer la liste de blocs de texte


    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

Ajouter 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

Lister les blockItems


    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

Obtenir blockItem


    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

Supprimer 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

Dépannage

Général

Azure AI Sécurité du Contenu bibliothèque cliente déclenche des exceptions définies dans Azure Core. Les codes d’erreur sont définis comme suit :

Code d'erreur Causes possibles Suggestions
InvalidRequestBody Un ou plusieurs champs dans le corps de la requête ne correspondent pas à la définition de l’API. 1. Vérifiez la version de l’API que vous avez spécifiée dans l’appel d’API.
2. Vérifiez la définition d’API correspondante pour la version de l’API que vous avez sélectionnée.
InvalidResourceName Le nom de ressource que vous avez spécifié dans l’URL ne répond pas aux exigences, comme le nom de la liste de blocs, l’ID de terme de la liste de blocs, etc. 1. Vérifiez la version de l’API que vous avez spécifiée dans l’appel d’API.
2. Vérifiez si le nom donné contient des caractères invalides selon la définition de l’API.
ResourceNotFound La ressource que vous avez spécifiée dans l’URL pourrait ne pas exister, comme le nom de la liste de blocage. 1. Vérifiez la version de l’API que vous avez spécifiée dans l’appel d’API.
2. Vérifiez à nouveau l’existence de la ressource spécifiée dans l’URL.
InternalError Certaines situations inattendues côté serveur ont été déclenchées. 1. Vous pouvez réessayer plusieurs fois après une courte période pour voir si le problème se reproduit.
2. Si le problème persiste, contactez le support Azure.
ServerBusy Le côté serveur ne peut pas traiter la demande temporairement. 1. Vous pouvez réessayer plusieurs fois après une courte période pour voir si le problème se reproduit.
2. Si le problème persiste, contactez le support Azure.
TooManyRequests Le RPS actuel a dépassé le quota de votre référence SKU actuelle. 1. Consultez la table tarifaire pour comprendre le quota RPS.
2.Contactez le support Azure si vous avez besoin de plus de QPS.

Journalisation

Cette bibliothèque utilise la bibliothèque de journalisation standard pour la journalisation.

Les informations de base sur les sessions HTTP (URL, en-têtes, etc.) sont enregistrées au INFO niveau.

La journalisation détaillée DEBUG de niveau, y compris les corps de requête/réponse et les en-têtes non expurgés, peut être activée sur le client ou par opération avec l’argument logging_enable mot clé.

Consultez la documentation complète sur la journalisation du KIT de développement logiciel (SDK) avec des exemples ici.

Configuration facultative

Les arguments facultatifs mot clé peuvent être transmis au niveau du client et par opération. La documentation de référence azure-core décrit les configurations disponibles pour les nouvelles tentatives, la journalisation, les protocoles de transport, etc.

Étapes suivantes

Documentation complémentaire

Pour obtenir une documentation plus complète sur Azure Content Safety, consultez la Azure AI Sécurité du Contenu sur docs.microsoft.com.

Contribution

Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, visitez https://cla.microsoft.com.

Quand vous envoyez une demande de tirage (pull request), un bot CLA détermine automatiquement si vous devez fournir un contrat CLA et agrémenter la demande de tirage de façon appropriée (par exemple, avec une étiquette ou un commentaire). Suivez simplement les instructions fournies par le bot. Vous ne devez effectuer cette opération qu’une seule fois sur tous les dépôts utilisant notre contrat CLA.

Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez la FAQ sur le code de conduite ou contactez opencode@microsoft.com pour toute question ou tout commentaire supplémentaire.