Démarrage rapide : Utiliser la bibliothèque de client Content Moderator

Important

Azure Content Moderator sera déprécié en février 2024 et mis hors service d’ici février 2027. Il est remplacé par Azure AI Sécurité du Contenu, qui offre des fonctionnalités d’IA avancées et des performances améliorées.

Azure AI Content Safety est une solution complète conçue pour détecter le contenu nuisible généré par l’utilisateur et généré par l’IA dans les applications et les services. Azure AI Content Safety convient à de nombreux scénarios tels que les places de marché en ligne, les sociétés de jeux, les plateformes de messagerie sociale, les entreprises de médias d’entreprise et les fournisseurs de solutions d’enseignement primaire et secondaire. Voici une vue d’ensemble de ses fonctionnalités :

  • API détection de texte et d’images : analysez le texte et les images pour détecter le contenu à caractère sexuel, la violence, la haine et l’automutilation selon plusieurs niveaux de gravité.
  • Content Safety Studio : outil en ligne conçu pour gérer le contenu potentiellement choquant, à risque ou indésirable en utilisant nos derniers modèles ML de modération de contenu. Il fournit des modèles et des workflows personnalisés qui permettent aux utilisateurs de créer leur propre système de modération de contenu.
  • Prise en charge linguistique : Azure AI Content Safety prend en charge plus de 100 langues et est spécifiquement formé sur l’anglais, l’allemand, le japonais, l’espagnol, le français, l’italien, le portugais et le chinois.

Azure AI Content Safety fournit une solution robuste et flexible qui répond à vos besoins de modération de contenu. En passant de Content Moderator à Azure AI Content Safety, vous pouvez tirer parti des derniers outils et technologies pour vous assurer que votre contenu est toujours modéré selon vos spécifications exactes.

Apprenez-en davantage sur Azure AI Content Safety et découvrez comment il peut améliorer votre stratégie de modération de contenu.

Commencez à utiliser la bibliothèque cliente Azure Content Moderator pour .NET. Suivez les étapes suivantes pour installer le package NuGet et essayer l’exemple de code pour les tâches de base.

Content Moderator est un service d’IA qui vous permet de gérer le contenu potentiellement offensant, risqué ou indésirable. Utilisez le service de modération de contenu alimenté par l’IA pour analyser du texte, des images et des vidéos et appliquer automatiquement des indicateurs de contenu. Intégrez un logiciel de filtrage de contenu dans votre application afin de vous conformer aux réglementations ou de maintenir l’environnement souhaité pour vos utilisateurs.

Utilisez la bibliothèque de client Content Moderator pour .NET aux fins suivantes :

  • Modérer du texte
  • Modérer des images

Documentation de référence | Code source de la bibliothèque | Package (NuGet) | Exemples

Prérequis

  • Abonnement Azure - En créer un gratuitement
  • L’IDE Visual Studio ou la version actuelle de .NET Core.
  • Une fois que vous avez votre abonnement Azure, créez une ressource Content Moderator dans le portail Azure pour obtenir votre clé et votre point de terminaison. Attendez qu’elle se déploie, puis cliquez sur le bouton Accéder à la ressource.
    • Vous aurez besoin de la clé et du point de terminaison de la ressource que vous créez pour connecter votre application à Content Moderator. Vous collerez votre clé et votre point de terminaison dans le code ci-dessous plus loin dans le guide de démarrage rapide.
    • Vous pouvez utiliser le niveau tarifaire Gratuit (F0) pour tester le service, puis passer par la suite à un niveau payant pour la production.

Configuration

Créer une application C#

À l’aide de Visual Studio, créez une application .NET Core.

Installer la bibliothèque de client

Une fois que vous avez créé un projet, installez la bibliothèque de client en cliquant avec le bouton droit sur la solution de projet dans l’Explorateur de solutions et en sélectionnant Gérer les packages NuGet. Dans le gestionnaire de package qui s’ouvre, sélectionnez Parcourir, cochez Inclure la préversion et recherchez Microsoft.Azure.CognitiveServices.ContentModerator. Sélectionnez la version 2.0.0, puis Installer.

Conseil

Vous voulez voir l’intégralité du fichier de code de démarrage rapide à la fois ? Vous le trouverez sur GitHub, qui contient les exemples de code utilisés dans ce guide de démarrage rapide.

À partir du répertoire de projet, ouvrez le fichier Program.cs dans votre éditeur ou votre IDE favori. Ajoutez les instructions using suivantes :

using Microsoft.Azure.CognitiveServices.ContentModerator;
using Microsoft.Azure.CognitiveServices.ContentModerator.Models;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Threading;

Dans la classe Program, créez des variables pour la clé et le point de terminaison de votre ressource.

Important

Accédez au portail Azure. Si la ressource Content Moderator que vous avez créée dans la section Prérequis a été déployée, cliquez sur le bouton Accéder à la ressource sous Étapes suivantes. La clé et le point de terminaison se trouvent dans la page Clé et point de terminaison de la ressource, sous Gestion des ressources.

// Your Content Moderator subscription key is found in your Azure portal resource on the 'Keys' page.
private static readonly string SubscriptionKey = "PASTE_YOUR_CONTENT_MODERATOR_SUBSCRIPTION_KEY_HERE";
// Base endpoint URL. Found on 'Overview' page in Azure resource. For example: https://westus.api.cognitive.microsoft.com
private static readonly string Endpoint = "PASTE_YOUR_CONTENT_MODERATOR_ENDPOINT_HERE";

Important

N’oubliez pas de supprimer la clé de votre code une fois que vous avez terminé, et ne la postez jamais publiquement. Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations, consultez l’article sur la sécurité d’Azure AI services.

Dans la méthode main() de l’application, ajoutez des appels pour les méthodes utilisées dans ce guide de démarrage rapide. Vous les créerez ultérieurement.

// Create an image review client
ContentModeratorClient clientImage = Authenticate(SubscriptionKey, Endpoint);
// Create a text review client
ContentModeratorClient clientText = Authenticate(SubscriptionKey, Endpoint);
// Create a human reviews client
ContentModeratorClient clientReviews = Authenticate(SubscriptionKey, Endpoint);
// Moderate text from text in a file
ModerateText(clientText, TextFile, TextOutputFile);
// Moderate images from list of image URLs
ModerateImages(clientImage, ImageUrlFile, ImageOutputFile);

Modèle objet

Les classes suivantes gèrent certaines des principales fonctionnalités de la bibliothèque de client .NET Content Moderator.

Nom Description
ContentModeratorClient Cette classe est nécessaire pour toutes les fonctionnalités Content Moderator. Vous pouvez l’instancier avec vos informations d’abonnement et l’utiliser pour produire des instances d’autres classes.
ImageModeration Cette classe fournit les fonctionnalités permettant d’analyser des images pour y rechercher du contenu pour adultes, des informations personnelles ou des visages.
TextModeration Cette classe fournit les fonctionnalités d’analyse de texte pour le langage, les blasphèmes, les erreurs et les informations personnelles.

Exemples de code

Ces extraits de code montrent comment effectuer les tâches suivantes avec la bibliothèque de client Content Moderator pour .NET :

Authentifier le client

Dans une nouvelle méthode, instanciez les objets clients avec le point de terminaison et la clé.

public static ContentModeratorClient Authenticate(string key, string endpoint)
{
    ContentModeratorClient client = new ContentModeratorClient(new ApiKeyServiceClientCredentials(key));
    client.Endpoint = endpoint;

    return client;
}

Modérer du texte

Le code suivant utilise un client Content Moderator pour analyser un corps de texte et imprimer les résultats dans la console. À la racine de la classe Program, définissez les fichiers d’entrée et de sortie :

// TEXT MODERATION
// Name of the file that contains text
private static readonly string TextFile = "TextFile.txt";
// The name of the file to contain the output from the evaluation.
private static string TextOutputFile = "TextModerationOutput.txt";

Ensuite, à la racine de votre projet, ajoutez un fichier TextFile.txt. Ajoutez votre propre texte à ce fichier, ou utilisez l’exemple de texte suivant :

Is this a grabage email abcdef@abcd.com, phone: 4255550111, IP: 255.255.255.255, 1234 Main Boulevard, Panapolis WA 96555.
<offensive word> is the profanity here. Is this information PII? phone 4255550111

Définissez ensuite la méthode de modération du texte dans votre classe Program :

/*
 * TEXT MODERATION
 * This example moderates text from file.
 */
public static void ModerateText(ContentModeratorClient client, string inputFile, string outputFile)
{
    Console.WriteLine("--------------------------------------------------------------");
    Console.WriteLine();
    Console.WriteLine("TEXT MODERATION");
    Console.WriteLine();
    // Load the input text.
    string text = File.ReadAllText(inputFile);

    // Remove carriage returns
    text = text.Replace(Environment.NewLine, " ");
    // Convert string to a byte[], then into a stream (for parameter in ScreenText()).
    byte[] textBytes = Encoding.UTF8.GetBytes(text);
    MemoryStream stream = new MemoryStream(textBytes);

    Console.WriteLine("Screening {0}...", inputFile);
    // Format text

    // Save the moderation results to a file.
    using (StreamWriter outputWriter = new StreamWriter(outputFile, false))
    {
        using (client)
        {
            // Screen the input text: check for profanity, classify the text into three categories,
            // do autocorrect text, and check for personally identifying information (PII)
            outputWriter.WriteLine("Autocorrect typos, check for matching terms, PII, and classify.");

            // Moderate the text
            var screenResult = client.TextModeration.ScreenText("text/plain", stream, "eng", true, true, null, true);
            outputWriter.WriteLine(JsonConvert.SerializeObject(screenResult, Formatting.Indented));
        }

        outputWriter.Flush();
        outputWriter.Close();
    }

    Console.WriteLine("Results written to {0}", outputFile);
    Console.WriteLine();
}

Modérer des images

Le code suivant utilise un client Content Moderator, ainsi qu’un objet ImageModeration, pour analyser les images distantes et y rechercher du contenu pour adultes.

Notes

Vous pouvez également analyser le contenu d’une image locale. Pour connaître les méthodes et les opérations qui fonctionnent avec les images locales, consultez la documentation de référence.

Obtenir des exemples d’images

Définissez vos fichiers d’entrée et de sortie à la racine de votre classe Program :

// IMAGE MODERATION
//The name of the file that contains the image URLs to evaluate.
private static readonly string ImageUrlFile = "ImageFiles.txt";
// The name of the file to contain the output from the evaluation.
private static string ImageOutputFile = "ImageModerationOutput.json";

Créez ensuite le fichier d’entrée (ImageFiles.txt) à la racine de votre projet. Dans ce fichier, ajoutez les URL des images à analyser, à raison d’une URL par ligne. Vous pouvez utiliser les exemples d’image suivants :

https://moderatorsampleimages.blob.core.windows.net/samples/sample2.jpg
https://moderatorsampleimages.blob.core.windows.net/samples/sample5.png

Définir une classe d’assistance

Ajoutez la définition de classe suivante dans la classe Program. Cette classe interne gère les résultats de la modération d’images.

// Contains the image moderation results for an image, 
// including text and face detection results.
public class EvaluationData
{
    // The URL of the evaluated image.
    public string ImageUrl;

    // The image moderation results.
    public Evaluate ImageModeration;

    // The text detection results.
    public OCR TextDetection;

    // The face detection results;
    public FoundFaces FaceDetection;
}

Définir la méthode de modération des images

La méthode suivante parcourt les URL d’image d’un fichier texte, crée une instance EvaluationData et analyse l’image à la recherche de contenu pour adultes, de texte et de visages humains. Ensuite, elle ajoute la dernière instance EvaluationData à une liste et affiche la liste complète des données retournées dans la console.

Parcourir les images

/*
 * IMAGE MODERATION
 * This example moderates images from URLs.
 */
public static void ModerateImages(ContentModeratorClient client, string urlFile, string outputFile)
{
    Console.WriteLine("--------------------------------------------------------------");
    Console.WriteLine();
    Console.WriteLine("IMAGE MODERATION");
    Console.WriteLine();
    // Create an object to store the image moderation results.
    List<EvaluationData> evaluationData = new List<EvaluationData>();

    using (client)
    {
        // Read image URLs from the input file and evaluate each one.
        using (StreamReader inputReader = new StreamReader(urlFile))
        {
            while (!inputReader.EndOfStream)
            {
                string line = inputReader.ReadLine().Trim();
                if (line != String.Empty)
                {
                    Console.WriteLine("Evaluating {0}...", Path.GetFileName(line));
                    var imageUrl = new BodyModel("URL", line.Trim());

Analyser le contenu

Pour plus d’informations sur les attributs d’image que Content Moderator peut filtrer, consultez le guide Concepts relatifs à la modération d’image.

            var imageData = new EvaluationData
            {
                ImageUrl = imageUrl.Value,

                // Evaluate for adult and racy content.
                ImageModeration =
                client.ImageModeration.EvaluateUrlInput("application/json", imageUrl, true)
            };
            Thread.Sleep(1000);

            // Detect and extract text.
            imageData.TextDetection =
                client.ImageModeration.OCRUrlInput("eng", "application/json", imageUrl, true);
            Thread.Sleep(1000);

            // Detect faces.
            imageData.FaceDetection =
                client.ImageModeration.FindFacesUrlInput("application/json", imageUrl, true);
            Thread.Sleep(1000);

            // Add results to Evaluation object
            evaluationData.Add(imageData);
        }
    }
}

Écrire les résultats de la modération dans un fichier

        // Save the moderation results to a file.
        using (StreamWriter outputWriter = new StreamWriter(outputFile, false))
        {
            outputWriter.WriteLine(JsonConvert.SerializeObject(
                evaluationData, Formatting.Indented));

            outputWriter.Flush();
            outputWriter.Close();
        }
        Console.WriteLine();
        Console.WriteLine("Image moderation results written to output file: " + outputFile);
        Console.WriteLine();
    }
}

Exécution de l'application

Exécutez l’application en cliquant sur le bouton Déboguer en haut de la fenêtre de l’IDE.

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer un abonnement Azure AI services, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Étapes suivantes

Dans ce guide de démarrage rapide, vous avez appris à utiliser la bibliothèque .NET Content Moderator pour effectuer des tâches de modération. Pour plus d’informations sur la modération des images ou d’autres éléments multimédias, consultez le guide conceptuel.

Commencez à utiliser la bibliothèque cliente Azure Content Moderator pour Java. Suivez les étapes suivantes pour installer le package Maven et essayer l’exemple de code pour les tâches de base.

Content Moderator est un service d’IA qui vous permet de gérer le contenu potentiellement offensant, risqué ou indésirable. Utilisez le service de modération de contenu alimenté par l’IA pour analyser du texte, des images et des vidéos et appliquer automatiquement des indicateurs de contenu. Intégrez un logiciel de filtrage de contenu dans votre application afin de vous conformer aux réglementations ou de maintenir l’environnement souhaité pour vos utilisateurs.

Utilisez la bibliothèque cliente Content Moderator pour Java aux fins suivantes :

  • Modérer du texte
  • Modérer des images

Documentation de référence | Code source de la bibliothèque |Artefact (Maven) | Exemples

Prérequis

  • Un abonnement Azure - En créer un gratuitement
  • La version actuelle du JDK (Java Development Kit)
  • L’outil de génération Gradle ou un autre gestionnaire de dépendances.
  • Une fois que vous avez votre abonnement Azure, créez une ressource Content Moderator dans le portail Azure pour obtenir votre clé et votre point de terminaison. Attendez qu’elle se déploie, puis cliquez sur le bouton Accéder à la ressource.
    • Vous aurez besoin de la clé et du point de terminaison de la ressource que vous créez pour connecter votre application à Content Moderator. Vous collerez votre clé et votre point de terminaison dans le code ci-dessous plus loin dans le guide de démarrage rapide.
    • Vous pouvez utiliser le niveau tarifaire Gratuit (F0) pour tester le service, puis passer par la suite à un niveau payant pour la production.

Configuration

Créer un projet Gradle

Dans une fenêtre de console (telle que cmd, PowerShell ou bash), créez un répertoire pour votre application et accédez-y.

mkdir myapp && cd myapp

Exécutez la commande gradle init à partir de votre répertoire de travail. Cette commande crée des fichiers de build essentiels pour Gradle, notamment build.gradle.kts, qui est utilisé au moment de l’exécution pour créer et configurer votre application.

gradle init --type basic

Quand vous êtes invité à choisir un DSL, sélectionnez Kotlin.

Installer la bibliothèque de client

Recherchez build.gradle.kts et ouvrez-le avec votre IDE ou éditeur de texte préféré. Copiez-y ensuite la configuration de build suivante. Cette configuration définit le projet en tant qu’application Java dont le point d’entrée est la classe ContentModeratorQuickstart. Elle importe la bibliothèque de client Content Moderator et le SDK GSON pour la sérialisation JSON.

plugins {
    java
    application
}

application{ 
    mainClassName = "ContentModeratorQuickstart"
}

repositories{
    mavenCentral()
}

dependencies{
    compile(group = "com.microsoft.azure.cognitiveservices", name = "azure-cognitiveservices-contentmoderator", version = "1.0.2-beta")
    compile(group = "com.google.code.gson", name = "gson", version = "2.8.5")
}

Créer un fichier Java

Dans votre répertoire de travail, exécutez la commande suivante pour créer un dossier de projet source :

mkdir -p src/main/java

Accédez au nouveau dossier et créez un fichier sous le nom ContentModeratorQuickstart.java. Ouvrez-le dans votre éditeur ou IDE habituel et ajoutez les instructions import suivantes :

import com.google.gson.*;

import com.microsoft.azure.cognitiveservices.vision.contentmoderator.*;
import com.microsoft.azure.cognitiveservices.vision.contentmoderator.models.*;

import java.io.*;
import java.util.*;
import java.util.concurrent.*;

Conseil

Vous voulez voir l’intégralité du fichier de code de démarrage rapide à la fois ? Vous le trouverez sur GitHub, qui contient les exemples de code utilisés dans ce guide de démarrage rapide.

Dans la classe ContentModeratorQuickstart de l’application, créez des variables pour la clé et le point de terminaison de votre ressource.

Important

Accédez au portail Azure. Si la ressource Content Moderator que vous avez créée dans la section Prérequis a été déployée, cliquez sur le bouton Accéder à la ressource sous Étapes suivantes. La clé et le point de terminaison se trouvent dans la page Clé et point de terminaison de la ressource, sous Gestion des ressources.

private static final String subscriptionKey = "<your-subscription-key>";
private static final String endpoint = "<your-api-endpoint>";

Important

N’oubliez pas de supprimer la clé de votre code une fois que vous avez terminé, et ne la postez jamais publiquement. Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations, consultez l’article sur la sécurité d’Azure AI services.

Dans la méthode main de l’application, ajoutez des appels pour les méthodes utilisées dans ce guide de démarrage rapide. Vous définissez ces méthodes plus tard.

// Create a List in which to store the image moderation results.
List<EvaluationData> evaluationData = new ArrayList<EvaluationData>();

// Moderate URL images
moderateImages(client, evaluationData);
// Moderate text from file
moderateText(client);
// Create a human review
humanReviews(client);

Modèle objet

Les classes suivantes gèrent certaines des principales fonctionnalités de la bibliothèque de client Java Content Moderator.

Nom Description
ContentModeratorClient Cette classe est nécessaire pour toutes les fonctionnalités Content Moderator. Vous pouvez l’instancier avec vos informations d’abonnement et l’utiliser pour produire des instances d’autres classes.
ImageModeration Cette classe fournit les fonctionnalités permettant d’analyser des images pour y rechercher du contenu pour adultes, des informations personnelles ou des visages.
TextModerations Cette classe fournit les fonctionnalités d’analyse de texte pour le langage, les blasphèmes, les erreurs et les informations personnelles.

Exemples de code

Ces extraits de code montrent comment effectuer les tâches suivantes avec la bibliothèque cliente Content Moderator pour Java :

Authentifier le client

Dans la méthode main de l’application, créez un objet ContentModeratorClient à l’aide de la valeur de votre point de terminaison d’abonnement et de la clé d’abonnement.

// Set CONTENT_MODERATOR_SUBSCRIPTION_KEY in your environment settings, with
// your key as its value.
// Set COMPUTER_MODERATOR_ENDPOINT in your environment variables with your Azure
// endpoint.
ContentModeratorClient client = ContentModeratorManager.authenticate(AzureRegionBaseUrl.fromString(endpoint),
        "CONTENT_MODERATOR_SUBSCRIPTION_KEY");

Modérer du texte

Configurer un exemple de texte

En haut de votre classe ContentModeratorQuickstart, définissez une référence à un fichier texte local. Ajoutez un fichier .txt au répertoire de votre projet et entrez le texte que vous souhaitez analyser.

// TEXT MODERATION variable
private static File textFile = new File("src\\main\\resources\\TextModeration.txt");

Analyser le texte

Créez une méthode qui lit le fichier .txt et appelle la méthode screenText sur chaque ligne.

public static void moderateText(ContentModeratorClient client) {
    System.out.println("---------------------------------------");
    System.out.println("MODERATE TEXT");
    System.out.println();

    try (BufferedReader inputStream = new BufferedReader(new FileReader(textFile))) {
        String line;
        Screen textResults = null;
        // For formatting the printed results
        Gson gson = new GsonBuilder().setPrettyPrinting().create();

        while ((line = inputStream.readLine()) != null) {
            if (line.length() > 0) {
                textResults = client.textModerations().screenText("text/plain", line.getBytes(), null);
                // Uncomment below line to print in console
                // System.out.println(gson.toJson(textResults).toString());
            }
        }

Ajoutez le code suivant pour afficher les résultats de la modération dans un fichier .json enregistré dans le répertoire de votre projet.

System.out.println("Text moderation status: " + textResults.status().description());
System.out.println();

// Create output results file to TextModerationOutput.json
BufferedWriter writer = new BufferedWriter(
        new FileWriter(new File("src\\main\\resources\\TextModerationOutput.json")));
writer.write(gson.toJson(textResults).toString());
System.out.println("Check TextModerationOutput.json to see printed results.");
System.out.println();
writer.close();

Fermez l’instruction try et catch pour terminer la méthode.

    } catch (Exception e) {
        System.out.println(e.getMessage());
        e.printStackTrace();
    }
}

Modérer des images

Configurer un exemple d’image

Dans une nouvelle méthode, construisez un objet BodyModelModel avec une chaîne d’URL donnée qui pointe vers une image.

public static void moderateImages(ContentModeratorClient client, List<EvaluationData> resultsList) {
    System.out.println();
    System.out.println("---------------------------------------");
    System.out.println("MODERATE IMAGES");
    System.out.println();

    try {
        String urlString = "https://moderatorsampleimages.blob.core.windows.net/samples/sample2.jpg";
        // Evaluate each line of text
        BodyModelModel url = new BodyModelModel();
        url.withDataRepresentation("URL");
        url.withValue(urlString);
        // Save to EvaluationData class for later
        EvaluationData imageData = new EvaluationData();
        imageData.ImageUrl = url.value();

Définir une classe d’assistance

Ensuite, dans votre fichier ContentModeratorQuickstart.java, ajoutez la définition de classe suivante à l’intérieur de la classe ContentModeratorQuickstart. Cette classe interne est utilisé dans le processus de modération d’image.

// Contains the image moderation results for an image, including text and face
// detection from the image.
public static class EvaluationData {
    // The URL of the evaluated image.
    public String ImageUrl;
    // The image moderation results.
    public Evaluate ImageModeration;
    // The text detection results.
    public OCR TextDetection;
    // The face detection results;
    public FoundFaces FaceDetection;
}

Analyser le contenu

Cette ligne de code vérifie l’image à l’URL donnée pour y rechercher du contenu pour adultes ou osé. Pour plus d’informations sur ces termes, consultez le guide conceptuel sur la modération d’images.

// Evaluate for adult and racy content.
imageData.ImageModeration = client.imageModerations().evaluateUrlInput("application/json", url,
        new EvaluateUrlInputOptionalParameter().withCacheImage(true));
Thread.sleep(1000);

Rechercher du texte

Cette ligne de code recherche le texte visible dans l’image.

// Detect and extract text from image.
imageData.TextDetection = client.imageModerations().oCRUrlInput("eng", "application/json", url,
        new OCRUrlInputOptionalParameter().withCacheImage(true));
Thread.sleep(1000);

Rechercher des visages

Cette ligne de code recherche les visages humains dans l’image.

// Detect faces.
imageData.FaceDetection = client.imageModerations().findFacesUrlInput("application/json", url,
        new FindFacesUrlInputOptionalParameter().withCacheImage(true));
Thread.sleep(1000);

Enfin, stockez les informations renvoyées dans la liste EvaluationData.

resultsList.add(imageData);

Après la boucle while, ajoutez le code suivant, qui imprime les résultats dans la console et dans un fichier de sortie nommé SRC/main/Resources/ModerationOutput.json.

// Save the moderation results to a file.
// ModerationOutput.json contains the output from the evaluation.
// Relative paths are relative to the execution directory (where pom.xml is
// located).
BufferedWriter writer = new BufferedWriter(
        new FileWriter(new File("src\\main\\resources\\ImageModerationOutput.json")));
// For formatting the printed results
Gson gson = new GsonBuilder().setPrettyPrinting().create();

writer.write(gson.toJson(resultsList).toString());
System.out.println("Check ImageModerationOutput.json to see printed results.");
writer.close();

Fermez l’instruction try et ajoutez une instruction catch pour terminer la méthode.

} catch (Exception e) {
    System.out.println(e.getMessage());
    e.printStackTrace();
}

Exécution de l'application

Vous pouvez générer l’application avec :

gradle build

Exécutez l’application avec la commande gradle run :

gradle run

Accédez ensuite au fichier src/main/resources/ModerationOutput.json et affichez les résultats de la modération du contenu.

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer un abonnement Azure AI services, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Étapes suivantes

Dans ce guide de démarrage rapide, vous avez appris à utiliser la bibliothèque Java Content Moderator pour effectuer des tâches de modération. Pour plus d’informations sur la modération des images ou d’autres éléments multimédias, consultez le guide conceptuel.

Commencez à utiliser la bibliothèque de client Azure Content Moderator pour Python. Suivez les étapes suivantes pour installer le package PiPy et essayer l’exemple de code pour les tâches de base.

Content Moderator est un service d’IA qui vous permet de gérer le contenu potentiellement offensant, risqué ou indésirable. Utilisez le service de modération de contenu alimenté par l’IA pour analyser du texte, des images et des vidéos et appliquer automatiquement des indicateurs de contenu. Intégrez un logiciel de filtrage de contenu dans votre application afin de vous conformer aux réglementations ou de maintenir l’environnement souhaité pour vos utilisateurs.

Utilisez la bibliothèque cliente Content Moderator pour Python aux fins suivantes :

  • Modérer du texte
  • Utiliser une liste de termes personnalisée
  • Modérer les images
  • Utiliser une liste d’images personnalisée

Documentation de référence | Code source de la bibliothèque | Package (PiPy) | Exemples C#

Prérequis

  • Abonnement Azure - En créer un gratuitement
  • Python 3.x
    • Votre installation Python doit inclure pip. Vous pouvez vérifier si pip est installé en exécutant pip --version sur la ligne de commande. Procurez-vous pip en installant la dernière version de Python.
  • Une fois que vous avez votre abonnement Azure, créez une ressource Content Moderator dans le portail Azure pour obtenir votre clé et votre point de terminaison. Attendez qu’elle se déploie, puis cliquez sur le bouton Accéder à la ressource.
    • Vous aurez besoin de la clé et du point de terminaison de la ressource que vous créez pour connecter votre application à Content Moderator. Vous collerez votre clé et votre point de terminaison dans le code ci-dessous plus loin dans le guide de démarrage rapide.
    • Vous pouvez utiliser le niveau tarifaire Gratuit (F0) pour tester le service, puis passer par la suite à un niveau payant pour la production.

Configuration

Installer la bibliothèque de client

Après l’installation de Python, vous pouvez installer la bibliothèque de client Content Moderator à l’aide de la commande suivante :

pip install --upgrade azure-cognitiveservices-vision-contentmoderator

Créer une application Python

Créez un script Python et ouvrez-le dans votre éditeur ou IDE favori. Ajoutez ensuite les instructions import suivantes en haut du fichier.

import os.path
from pprint import pprint
import time
from io import BytesIO
from random import random
import uuid

from azure.cognitiveservices.vision.contentmoderator import ContentModeratorClient
import azure.cognitiveservices.vision.contentmoderator.models
from msrest.authentication import CognitiveServicesCredentials

Conseil

Vous voulez voir l’intégralité du fichier de code de démarrage rapide à la fois ? Vous le trouverez sur GitHub, qui contient les exemples de code utilisés dans ce guide de démarrage rapide.

Ensuite, créez des variables pour l’emplacement et la clé du point de terminaison de votre ressource.

Important

Accédez au portail Azure. Si la ressource Content Moderator que vous avez créée dans la section Prérequis a été déployée, cliquez sur le bouton Accéder à la ressource sous Étapes suivantes. La clé et le point de terminaison se trouvent dans la page Clé et point de terminaison de la ressource, sous Gestion des ressources.

CONTENT_MODERATOR_ENDPOINT = "PASTE_YOUR_CONTENT_MODERATOR_ENDPOINT_HERE"
subscription_key = "PASTE_YOUR_CONTENT_MODERATOR_SUBSCRIPTION_KEY_HERE"

Important

N’oubliez pas de supprimer la clé de votre code une fois que vous avez terminé, et ne la postez jamais publiquement. Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations, consultez l’article sur la sécurité d’Azure AI services.

Modèle objet

Les classes suivantes gèrent certaines des principales fonctionnalités de la bibliothèque de client Python Content Moderator.

Nom Description
ContentModeratorClient Cette classe est nécessaire pour toutes les fonctionnalités Content Moderator. Vous pouvez l’instancier avec vos informations d’abonnement et l’utiliser pour produire des instances d’autres classes.
ImageModerationOperations Cette classe fournit les fonctionnalités permettant d’analyser des images pour y rechercher du contenu pour adultes, des informations personnelles ou des visages.
TextModerationOperations Cette classe fournit les fonctionnalités d’analyse de texte pour le langage, les blasphèmes, les erreurs et les informations personnelles.

Exemples de code

Ces extraits de code montrent comment effectuer les tâches suivantes avec la bibliothèque cliente Content Moderator pour Python :

Authentifier le client

Instanciez un client avec votre point de terminaison et la clé. Créez un objet CognitiveServicesCredentials](/python/api/msrest/msrest.authentication.cognitiveservicescredentials avec votre clé et utilisez-le avec votre point de terminaison pour créer un objet ContentModeratorClient.

client = ContentModeratorClient(
    endpoint=CONTENT_MODERATOR_ENDPOINT,
    credentials=CognitiveServicesCredentials(subscription_key)
)

Modérer du texte

Le code suivant utilise un client Content Moderator pour analyser un corps de texte et imprimer les résultats dans la console. Tout d’abord, créez un dossier text_files/ à la racine de votre projet, puis ajoutez un fichier content_moderator_text_moderation.txt. Ajoutez votre propre texte à ce fichier, ou utilisez l’exemple de texte suivant :

Is this a grabage email abcdef@abcd.com, phone: 4255550111, IP: 255.255.255.255, 1234 Main Boulevard, Panapolis WA 96555.
<offensive word> is the profanity here. Is this information PII? phone 2065550111

Ajoutez une référence à ce dossier.

TEXT_FOLDER = os.path.join(os.path.dirname(
    os.path.realpath(__file__)), "text_files")

Ensuite, ajoutez le code suivant à votre script Python.

# Screen the input text: check for profanity,
# do autocorrect text, and check for personally identifying
# information (PII)
with open(os.path.join(TEXT_FOLDER, 'content_moderator_text_moderation.txt'), "rb") as text_fd:
    screen = client.text_moderation.screen_text(
        text_content_type="text/plain",
        text_content=text_fd,
        language="eng",
        autocorrect=True,
        pii=True
    )
    assert isinstance(screen, Screen)
    pprint(screen.as_dict())

Utiliser une liste de termes personnalisée

Le code suivant montre comment gérer une liste de termes personnalisée pour la modération du texte. Vous pouvez utiliser la classe ListManagementTermListsOperations pour créer une liste de termes, gérer les termes individuels et filtrer d’autres corps de texte par rapport à celle-ci.

Se procurer un exemple de texte

Pour utiliser cet exemple, créez un dossier text_files/ à la racine de votre projet, puis ajoutez un fichier content_moderator_term_list.txt. Ce fichier doit contenir du texte organique qui sera comparé à la liste des termes. Vous pouvez utiliser l’exemple de texte suivant :

This text contains the terms "term1" and "term2".

Ajoutez une référence au dossier si vous n’en avez pas déjà défini une.

TEXT_FOLDER = os.path.join(os.path.dirname(
    os.path.realpath(__file__)), "text_files")

Créer une liste

Ajoutez le code suivant à votre script Python pour créer une liste de termes personnalisée et enregistrer sa valeur d’ID.

#
# Create list
#
print("\nCreating list")
custom_list = client.list_management_term_lists.create(
    content_type="application/json",
    body={
        "name": "Term list name",
        "description": "Term list description",
    }
)
print("List created:")
assert isinstance(custom_list, TermList)
pprint(custom_list.as_dict())
list_id = custom_list.id

Définir les détails de la liste

Vous pouvez utiliser l’ID d’une liste pour modifier son nom et sa description.

#
# Update list details
#
print("\nUpdating details for list {}".format(list_id))
updated_list = client.list_management_term_lists.update(
    list_id=list_id,
    content_type="application/json",
    body={
        "name": "New name",
        "description": "New description"
    }
)
assert isinstance(updated_list, TermList)
pprint(updated_list.as_dict())

Ajouter un terme à la liste

Le code suivant ajoute les termes "term1" et "term2" à la liste.

#
# Add terms
#
print("\nAdding terms to list {}".format(list_id))
client.list_management_term.add_term(
    list_id=list_id,
    term="term1",
    language="eng"
)
client.list_management_term.add_term(
    list_id=list_id,
    term="term2",
    language="eng"
)

Obtenir tous les termes de la liste

Vous pouvez utiliser l’ID de liste pour retourner tous les termes de la liste.

#
# Get all terms ids
#
print("\nGetting all term IDs for list {}".format(list_id))
terms = client.list_management_term.get_all_terms(
    list_id=list_id, language="eng")
assert isinstance(terms, Terms)
terms_data = terms.data
assert isinstance(terms_data, TermsData)
pprint(terms_data.as_dict())

Actualiser l’index de liste

Chaque fois que vous ajoutez ou supprimez des termes de la liste, vous devez actualiser l’index avant de pouvoir utiliser la liste mise à jour.

#
# Refresh the index
#
print("\nRefreshing the search index for list {}".format(list_id))
refresh_index = client.list_management_term_lists.refresh_index_method(
    list_id=list_id, language="eng")
assert isinstance(refresh_index, RefreshIndex)
pprint(refresh_index.as_dict())

print("\nWaiting {} minutes to allow the server time to propagate the index changes.".format(
    LATENCY_DELAY))
time.sleep(LATENCY_DELAY * 60)

Analyser le texte par rapport à la liste

La fonctionnalité principale de la liste de termes personnalisée est de comparer un corps de texte à la liste et de déterminer s’il existe des termes correspondants.

#
# Screen text
#
with open(os.path.join(TEXT_FOLDER, 'content_moderator_term_list.txt'), "rb") as text_fd:
    screen = client.text_moderation.screen_text(
        text_content_type="text/plain",
        text_content=text_fd,
        language="eng",
        autocorrect=False,
        pii=False,
        list_id=list_id
    )
    assert isinstance(screen, Screen)
    pprint(screen.as_dict())

Supprimer un terme d’une liste

Le code suivant supprime le terme "term1" de la liste.

#
# Remove terms
#
term_to_remove = "term1"
print("\nRemove term {} from list {}".format(term_to_remove, list_id))
client.list_management_term.delete_term(
    list_id=list_id,
    term=term_to_remove,
    language="eng"
)

Supprimer tous les termes d’une liste

Utilisez le code suivant pour effacer tous les termes de la liste.

#
# Delete all terms
#
print("\nDelete all terms in the image list {}".format(list_id))
client.list_management_term.delete_all_terms(
    list_id=list_id, language="eng")

Supprimer une liste

Utilisez le code suivant pour supprimer une liste de termes personnalisée.

#
# Delete list
#
print("\nDelete the term list {}".format(list_id))
client.list_management_term_lists.delete(list_id=list_id)

Modérer des images

Le code suivant utilise un client Content Moderator, ainsi qu’un objet ImageModerationOperations, pour analyser les images et y rechercher du contenu pour adultes et osé.

Obtenir des exemples d’images

Définissez une référence à certaines images à analyser.

IMAGE_LIST = [
    "https://moderatorsampleimages.blob.core.windows.net/samples/sample2.jpg",
    "https://moderatorsampleimages.blob.core.windows.net/samples/sample5.png"
]

Ajoutez ensuite le code suivant pour itérer au sein de vos images. Le reste du code de cette section va dans cette boucle.

for image_url in IMAGE_LIST:
    print("\nEvaluate image {}".format(image_url))

Rechercher du contenu pour adultes et osé

Le code suivant vérifie l’image à l’URL donnée pour y rechercher du contenu pour adultes ou osé et imprime le résultat dans la console. Pour plus d’informations sur ces termes, consultez le guide conceptuel sur la modération d’images.

print("\nEvaluate for adult and racy content.")
evaluation = client.image_moderation.evaluate_url_input(
    content_type="application/json",
    cache_image=True,
    data_representation="URL",
    value=image_url
)
assert isinstance(evaluation, Evaluate)
pprint(evaluation.as_dict())

Rechercher le texte visible

Le code suivant recherche le contenu textuel visible dans l’image et imprime les résultats dans la console.

print("\nDetect and extract text.")
evaluation = client.image_moderation.ocr_url_input(
    language="eng",
    content_type="application/json",
    data_representation="URL",
    value=image_url,
    cache_image=True,
)
assert isinstance(evaluation, OCR)
pprint(evaluation.as_dict())

Rechercher des visages

Le code suivant recherche dans l’image les visages humains et imprime les résultats dans la console.

print("\nDetect faces.")
evaluation = client.image_moderation.find_faces_url_input(
    content_type="application/json",
    cache_image=True,
    data_representation="URL",
    value=image_url
)
assert isinstance(evaluation, FoundFaces)
pprint(evaluation.as_dict())

Utiliser une liste d’images personnalisée

Le code suivant montre comment gérer une liste personnalisée d’images pour la modération d’image. Cette fonctionnalité est utile si votre plateforme reçoit fréquemment des instances du même jeu d’images que vous souhaitez faire sortir de l’écran. En conservant une liste de ces images spécifiques, vous pouvez améliorer les performances. La classe ListManagementImageListsOperations vous permet de créer une liste d’images, de gérer les images individuelles dans la liste et de comparer d’autres images à celles-ci.

Créez les variables de texte suivantes pour stocker les URL d’image que vous allez utiliser dans ce scénario.

IMAGE_LIST = {
    "Sports": [
        "https://moderatorsampleimages.blob.core.windows.net/samples/sample4.png",
        "https://moderatorsampleimages.blob.core.windows.net/samples/sample6.png",
        "https://moderatorsampleimages.blob.core.windows.net/samples/sample9.png"
    ],
    "Swimsuit": [
        "https://moderatorsampleimages.blob.core.windows.net/samples/sample1.jpg",
        "https://moderatorsampleimages.blob.core.windows.net/samples/sample3.png",
        "https://moderatorsampleimages.blob.core.windows.net/samples/sample4.png",
        "https://moderatorsampleimages.blob.core.windows.net/samples/sample16.png"
    ]
}

IMAGES_TO_MATCH = [
    "https://moderatorsampleimages.blob.core.windows.net/samples/sample1.jpg",
    "https://moderatorsampleimages.blob.core.windows.net/samples/sample4.png",
    "https://moderatorsampleimages.blob.core.windows.net/samples/sample5.png",
    "https://moderatorsampleimages.blob.core.windows.net/samples/sample16.png"
]

Notes

Il ne s’agit pas de la liste proprement dite, mais d’une liste informelle d’images qui seront ajoutées à la section add images du code.

Créer une liste d’image

Ajoutez le code suivant pour créer une liste d’images et enregistrer une référence à son ID.

#
# Create list
#
print("Creating list MyList\n")
custom_list = client.list_management_image_lists.create(
    content_type="application/json",
    body={
        "name": "MyList",
        "description": "A sample list",
        "metadata": {
            "key_one": "Acceptable",
            "key_two": "Potentially racy"
        }
    }
)
print("List created:")
assert isinstance(custom_list, ImageList)
pprint(custom_list.as_dict())
list_id = custom_list.id

Ajouter des images à une liste

Le code suivant ajoute toutes vos images à la liste.

print("\nAdding images to list {}".format(list_id))
index = {}  # Keep an index url to id for later removal
for label, urls in IMAGE_LIST.items():
    for url in urls:
        image = add_images(list_id, url, label)
        if image:
            index[url] = image.content_id

Définissez la fonction d’assistance add_images ailleurs dans votre script.

#
# Add images
#
def add_images(list_id, image_url, label):
    """Generic add_images from url and label."""
    print("\nAdding image {} to list {} with label {}.".format(
        image_url, list_id, label))
    try:
        added_image = client.list_management_image.add_image_url_input(
            list_id=list_id,
            content_type="application/json",
            data_representation="URL",
            value=image_url,
            label=label
        )
    except APIErrorException as err:
        # sample4 will fail
        print("Unable to add image to list: {}".format(err))
    else:
        assert isinstance(added_image, Image)
        pprint(added_image.as_dict())
        return added_image

Récupérer les images dans la liste

Le code suivant imprime les noms de toutes les images de votre liste.

#
# Get all images ids
#
print("\nGetting all image IDs for list {}".format(list_id))
image_ids = client.list_management_image.get_all_image_ids(list_id=list_id)
assert isinstance(image_ids, ImageIds)
pprint(image_ids.as_dict())

Mettre à jour les détails de la liste

Vous pouvez utiliser l’ID de liste pour mettre à jour le nom et la description de la liste.

#
# Update list details
#
print("\nUpdating details for list {}".format(list_id))
updated_list = client.list_management_image_lists.update(
    list_id=list_id,
    content_type="application/json",
    body={
        "name": "Swimsuits and sports"
    }
)
assert isinstance(updated_list, ImageList)
pprint(updated_list.as_dict())

Obtenir les détails de la liste

Utilisez le code suivant pour imprimer les détails actuels de votre liste.

#
# Get list details
#
print("\nGetting details for list {}".format(list_id))
list_details = client.list_management_image_lists.get_details(
    list_id=list_id)
assert isinstance(list_details, ImageList)
pprint(list_details.as_dict())

Actualiser l’index de liste

Chaque fois que vous ajoutez ou supprimez des images, vous devez actualiser l’index de liste avant de pouvoir l’utiliser pour vérifier d’autres images.

#
# Refresh the index
#
print("\nRefreshing the search index for list {}".format(list_id))
refresh_index = client.list_management_image_lists.refresh_index_method(
    list_id=list_id)
assert isinstance(refresh_index, RefreshIndex)
pprint(refresh_index.as_dict())

print("\nWaiting {} minutes to allow the server time to propagate the index changes.".format(
    LATENCY_DELAY))
time.sleep(LATENCY_DELAY * 60)

Faire correspondre les images à celles de la liste

La principale fonction des listes d’images consiste à comparer les nouvelles images et à vérifier s’il existe des correspondances.

#
# Match images against the image list.
#
for image_url in IMAGES_TO_MATCH:
    print("\nMatching image {} against list {}".format(image_url, list_id))
    match_result = client.image_moderation.match_url_input(
        content_type="application/json",
        list_id=list_id,
        data_representation="URL",
        value=image_url,
    )
    assert isinstance(match_result, MatchResponse)
    print("Is match? {}".format(match_result.is_match))
    print("Complete match details:")
    pprint(match_result.as_dict())

Supprimer une image de la liste

Le code suivant supprime un élément de la liste. Dans ce cas, il s’agit d’une image qui ne correspond pas à la catégorie de liste.

#
# Remove images
#
correction = "https://moderatorsampleimages.blob.core.windows.net/samples/sample16.png"
print("\nRemove image {} from list {}".format(correction, list_id))
client.list_management_image.delete_image(
    list_id=list_id,
    image_id=index[correction]
)

Supprimer toutes les images d’une liste

Utilisez le code suivant pour effacer une liste d’images.

#
# Delete all images
#
print("\nDelete all images in the image list {}".format(list_id))
client.list_management_image.delete_all_images(list_id=list_id)

Supprimer la liste d’images

Utilisez le code suivant pour supprimer une liste d’images donnée.

#
# Delete list
#
print("\nDelete the image list {}".format(list_id))
client.list_management_image_lists.delete(list_id=list_id)

Exécution de l'application

Exécutez l’application avec la commande python de votre fichier de démarrage rapide.

python quickstart-file.py

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer un abonnement Azure AI services, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Étapes suivantes

Dans ce guide de démarrage rapide, vous avez appris à utiliser la bibliothèque Python Content Moderator pour effectuer des tâches de modération. Pour plus d’informations sur la modération des images ou d’autres éléments multimédias, consultez le guide conceptuel.

Commencez à utiliser l’API REST Azure Content Moderator.

Content Moderator est un service d’IA qui vous permet de gérer le contenu potentiellement offensant, risqué ou indésirable. Utilisez le service de modération de contenu alimenté par l’IA pour analyser du texte, des images et des vidéos et appliquer automatiquement des indicateurs de contenu. Intégrez un logiciel de filtrage de contenu dans votre application afin de vous conformer aux réglementations ou de maintenir l’environnement souhaité pour vos utilisateurs.

Utilisez l’API REST Content Moderator pour :

  • Modérer du texte
  • Modérer des images

Prérequis

  • Abonnement Azure - En créer un gratuitement
  • Une fois que vous avez votre abonnement Azure, créez une ressource Content Moderator dans le portail Azure pour obtenir votre clé et votre point de terminaison. Attendez qu’elle se déploie, puis cliquez sur le bouton Accéder à la ressource.
    • Vous aurez besoin de la clé et du point de terminaison de la ressource que vous créez pour connecter votre application à Content Moderator. Vous collerez votre clé et votre point de terminaison dans le code ci-dessous plus loin dans le guide de démarrage rapide.
    • Vous pouvez utiliser le niveau tarifaire Gratuit (F0) pour tester le service, puis passer par la suite à un niveau payant pour la production.
  • PowerShell version 6.0 + ou une application de ligne de commande similaire.

Modérer du texte

Vous allez utiliser une commande comme celle qui suit pour appeler l’API Content Moderator en vue d’analyser un corps de texte et d’afficher les résultats dans la console.

curl -v -X POST "https://westus.api.cognitive.microsoft.com/contentmoderator/moderate/v1.0/ProcessText/Screen?autocorrect=True&PII=True&classify=True&language={string}"
-H "Content-Type: text/plain"
-H "Ocp-Apim-Subscription-Key: {subscription key}"
--data-ascii "Is this a crap email abcdef@abcd.com, phone: 6657789887, IP: 255.255.255.255, 1 Microsoft Way, Redmond, WA 98052"

Copiez la commande dans un éditeur de texte et apportez les modifications suivantes :

  1. Affectez Ocp-Apim-Subscription-Key à votre clé d’abonnement Visage valide.

    Important

    N’oubliez pas de supprimer la clé de votre code une fois que vous avez terminé, et ne la postez jamais publiquement. Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations, consultez l’article sur la sécurité d’Azure AI services.

  2. Modifiez la première partie de l’URL de requête pour qu’elle corresponde au point de terminaison associé à votre clé d’abonnement.

    Notes

    Les nouvelles ressources créées après le 1er juillet 2019 utilisent des noms de sous-domaines personnalisés. Pour plus d’informations et afin d’obtenir une liste complète des points de terminaison régionaux, consultez Noms personnalisés de sous-domaine pour Azure AI services.

  3. Si vous le souhaitez, vous pouvez remplacer le corps de la requête par n’importe quelle chaîne de texte que vous souhaitez analyser.

Après avoir apporté vos changements, ouvrez une invite de commandes et entrez la nouvelle commande.

Examiner les résultats

Les résultats de la modération du texte doivent s’afficher sous la forme de données JSON dans la fenêtre de console. Par exemple :

{
  "OriginalText": "Is this a <offensive word> email abcdef@abcd.com, phone: 6657789887, IP: 255.255.255.255,\n1 Microsoft Way, Redmond, WA 98052\n",
  "NormalizedText": "Is this a <offensive word> email abide@ abed. com, phone: 6657789887, IP: 255. 255. 255. 255, \n1 Microsoft Way, Redmond, WA 98052",
  "AutoCorrectedText": "Is this a <offensive word> email abide@ abed. com, phone: 6657789887, IP: 255. 255. 255. 255, \n1 Microsoft Way, Redmond, WA 98052",
  "Misrepresentation": null,
  "PII": {
    "Email": [
      {
        "Detected": "abcdef@abcd.com",
        "SubType": "Regular",
        "Text": "abcdef@abcd.com",
        "Index": 21
      }
    ],
    "IPA": [
      {
        "SubType": "IPV4",
        "Text": "255.255.255.255",
        "Index": 61
      }
    ],
    "Phone": [
      {
        "CountryCode": "US",
        "Text": "6657789887",
        "Index": 45
      }
    ],
    "Address": [
      {
        "Text": "1 Microsoft Way, Redmond, WA 98052",
        "Index": 78
      }
    ]
  },
 "Classification": {
    "Category1": 
    {
      "Score": 0.5
    },
    "Category2": 
    {
      "Score": 0.6
    },
    "Category3": 
    {
      "Score": 0.5
    },
    "ReviewRecommended": true
  },
  "Language": "eng",
  "Terms": [
    {
      "Index": 10,
      "OriginalIndex": 10,
      "ListId": 0,
      "Term": "<offensive word>"
    }
  ],
  "Status": {
    "Code": 3000,
    "Description": "OK",
    "Exception": null
  },
  "TrackingId": "1717c837-cfb5-4fc0-9adc-24859bfd7fac"
}

Pour plus d’informations sur les attributs de texte que Content Moderator peut filtrer, consultez le guide Concepts relatifs à la modération de texte.

Modérer des images

Vous allez utiliser une commande comme celle qui suit pour appeler l’API Content Moderator en vue de modérer une image distante et d’afficher les résultats dans la console.

curl -v -X POST "https://westus.api.cognitive.microsoft.com/contentmoderator/moderate/v1.0/ProcessImage/Evaluate?CacheImage={boolean}" 
-H "Content-Type: application/json"
-H "Ocp-Apim-Subscription-Key: {subscription key}" 
--data-ascii "{\"DataRepresentation\":\"URL\", \"Value\":\"https://moderatorsampleimages.blob.core.windows.net/samples/sample.jpg\"}"

Copiez la commande dans un éditeur de texte et apportez les modifications suivantes :

  1. Affectez Ocp-Apim-Subscription-Key à votre clé d’abonnement Visage valide.
  2. Modifiez la première partie de l’URL de requête pour qu’elle corresponde au point de terminaison associé à votre clé d’abonnement.
  3. Si vous le souhaitez, vous pouvez modifier l’URL de "Value" dans le corps de la requête pour qu’elle pointe vers l’image distante à modérer.

Conseil

Vous pouvez également modérer les images locales en passant leurs données d’octets dans le corps de la requête. Pour savoir comment procéder, consultez la documentation de référence.

Après avoir apporté vos changements, ouvrez une invite de commandes et entrez la nouvelle commande.

Examiner les résultats

Les résultats de la modération des images doivent s’afficher sous la forme de données JSON dans la fenêtre de console.

{
  "AdultClassificationScore": x.xxx,
  "IsImageAdultClassified": <Bool>,
  "RacyClassificationScore": x.xxx,
  "IsImageRacyClassified": <Bool>,
  "AdvancedInfo": [],
  "Result": false,
  "Status": {
    "Code": 3000,
    "Description": "OK",
    "Exception": null
  },
  "TrackingId": "<Request Tracking Id>"
}

Pour plus d’informations sur les attributs d’image que Content Moderator peut filtrer, consultez le guide Concepts relatifs à la modération d’image.

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer un abonnement Azure AI services, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Étapes suivantes

Dans ce guide de démarrage rapide, vous avez appris à utiliser l’API REST Content Moderator pour effectuer des tâches de modération. Pour plus d’informations sur la modération des images ou d’autres éléments multimédias, consultez le guide conceptuel.