Quickstart: De Content Moderator-clientbibliotheek gebruiken

Ga aan de slag met de Azure Content Moderator-clientbibliotheek voor .NET. Voer deze stappen uit om het NuGet-pakket te installeren en de voorbeeldcode voor basistaken uit te proberen.

Content Moderator is een AI-service waarmee u inhoud kunt afhandelen die mogelijk aanstootgevend, riskant of anderszins ongewenst is. Gebruik de service voor inhoudsbeheer op basis van AI, waarmee tekst, afbeeldingen en video's worden gescand en automatisch inhoudsmarkeringen worden toegepast. Voeg software voor het filteren van inhoud toe aan uw app om te voldoen aan de regelgeving of om de beoogde omgeving voor gebruikers te behouden.

Gebruik de Content Moderator-clientbibliotheek voor .NET om:

  • Tekst modereren
  • Afbeeldingen modereren

Referentiedocumentatie | Broncode van bibliotheek | Pakket (NuGet) | Voorbeelden

Vereisten

  • Azure-abonnement: Krijg een gratis abonnement
  • De Visual Studio IDE of de huidige versie van .NET Core.
  • Zodra u uw Azure-abonnement hebt, maakt u een Content Moderator-resource in de Azure Portal om uw sleutel en eindpunt op te halen. Wacht tot deze is geïmplementeerd en klik op de knop Naar de resource gaan.
    • U hebt de sleutel en het eindpunt nodig van de resource die u maakt, om de toepassing te verbinden met Content Moderator. Later in de quickstart plakt u uw sleutel en eindpunt in de onderstaande code.
    • U kunt de gratis prijscategorie (F0) gebruiken om de service uit te proberen, en later upgraden naar een betaalde laag voor productie.

Instellen

Een nieuwe C#-toepassing maken

Maak met behulp van Visual Studio een nieuwe .NET Core-toepassing.

De clientbibliotheek installeren

Nadat u een nieuw project hebt gemaakt, installeert u de clientbibliotheek door in Solution Explorer met de rechtermuisknop op de projectoplossing te klikken en NuGet-pakketten beheren te selecteren. Selecteer in de package manager die wordt geopend de optie Bladeren, schakel Prerelease opnemen in en zoek naar Microsoft.Azure.CognitiveServices.ContentModerator. Selecteer versie 2.0.0 en vervolgens Installeren.

Tip

Wilt u het codebestand voor de quickstart in één keer weergeven? Die is te vinden op GitHub, waar de codevoorbeelden uit deze quickstart zich bevinden.

Open vanuit de projectmap het bestand Program.cs in uw favoriete editor of IDE. Voeg de volgende using instructies toe:

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;

Maak in de klasse Programma variabelen voor de sleutel en het eindpunt van uw resource.

Belangrijk

Ga naar Azure Portal. Als de Content Moderator-resource die u in de sectie Vereisten hebt gemaakt, is geïmplementeerd, klikt u op de knop Naar de resource gaan onder Volgende stappen. U vindt uw sleutel en eindpunt op de pagina Sleutel en eindpunt van de resource, onder Resourcebeheer.

// 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";

Belangrijk

Vergeet niet de sleutel uit uw code te verwijderen wanneer u klaar bent, en plaats deze sleutel nooit in het openbaar. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel Cognitive Services Beveiliging voor meer informatie.

Voeg in de methode main() van de toepassing aanroepen toe voor de methoden die in deze quickstart worden gebruikt. U gaat deze later maken.

// 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);

Objectmodel

De volgende klassen worden gebruikt voor enkele van de belangrijkste functies van de Content Moderator .NET-clientbibliotheek.

Naam Beschrijving
ContentModeratorClient Deze klasse is nodig voor alle Content Moderator-functionaliteit. U instantieert deze klasse met uw abonnementsgegevens en gebruikt deze om instanties van andere klassen te maken.
ImageModeration Deze klasse biedt de functionaliteit voor het analyseren van afbeeldingen op inhoud voor volwassenen, persoonlijke gegevens of menselijke gezichten.
TextModeration Deze klasse biedt de functionaliteit voor het analyseren van tekst op taal, grove taal, fouten en persoonlijke gegevens.

Codevoorbeelden

Deze codefragmenten laten zien hoe u de volgende taken kunt uitvoeren met de Content Moderator-clientbibliotheek voor .NET:

De client verifiëren

Instantieer in een nieuwe methode clientobjecten met uw eindpunt en sleutel.

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

    return client;
}

Tekst modereren

In de volgende code wordt een Content Moderator-client gebruikt om een stuk tekst te analyseren en de resultaten af te drukken naar de console. Definieer in- en uitvoerbestanden in de hoofdsectie van uw Program-klasse:

// 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";

Voeg vervolgens in de hoofdmap van uw project een TextFile.txt-bestand toe. Voeg uw eigen tekst toe aan dit bestand, of gebruik de volgende voorbeeldtekst:

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

Definieer vervolgens de tekstmoderatiemethode ergens in uw Program-klasse:

/*
 * 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();
}

Afbeeldingen modereren

In de volgende code wordt een Content Moderator-client samen met een ImageModeration-object gebruikt om externe afbeeldingen te analyseren op inhoud voor volwassenen.

Notitie

U kunt ook de inhoud van een lokale afbeelding analyseren. Zie de naslagdocumentatie voor methoden en bewerkingen die werken met lokale afbeeldingen.

Voorbeeldafbeeldingen ophalen

Definieer uw in- en uitvoerbestanden in de hoofdmap van de klasse Programma:

// 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";

Maak vervolgens het invoerbestand, ImageFiles.txt, in de hoofdmap van uw project. In dit bestand voegt u de URL's toe van afbeeldingen die u wilt analyseren: één URL op elke regel. U kunt de volgende voorbeeldafbeeldingen gebruiken:

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

Helperklasse definiëren

Voeg de volgende klassedefinitie toe in de Program-klasse. Deze binnenklasse handelt afbeeldingsmoderatieresultaten af.

// 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;
}

De methode voor het modereren van afbeeldingen definiëren

De volgende methode doorloopt de afbeeldings-URL's in een tekstbestand, maakt een EvaluationData-instantie en analyseert de afbeelding op inhoud voor volwassenen, tekst en menselijke gezichten. Vervolgens wordt de EvaluationData instantie toegevoegd aan een lijst en wordt de volledige lijst met geretourneerde gegevens naar de console geschreven.

Afbeeldingen doorlopen

/*
 * 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());

Inhoud analyseren

Zie de handleiding Image moderation concepts (concepten voor afbeeldingsmoderatie) voor informatie over de afbeeldingskenmerken waarop Content Moderator let.

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

Moderatieresultaten naar bestand schrijven

        // 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();
    }
}

De toepassing uitvoeren

Voer de toepassing uit door boven in het IDE-venster op de knop Fouten opsporen te klikken.

Resources opschonen

Als u een Cognitive Services-abonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd.

Volgende stappen

In deze quickstart hebt u geleerd hoe u de Content Moderator .NET-bibliotheek kunt gebruiken om moderatietaken uit te voeren. Nu kunt u doorgaan en in conceptgids meer lezen over het modereren van afbeeldingen en andere media.

Ga aan de slag met de Azure Content Moderator-clientbibliotheek voor Java. Voer deze stappen uit om het Maven-pakket te installeren en de voorbeeldcode voor basistaken uit te proberen.

Content Moderator is een AI-service waarmee u inhoud kunt afhandelen die mogelijk aanstootgevend, riskant of anderszins ongewenst is. Gebruik de service voor inhoudsbeheer op basis van AI, waarmee tekst, afbeeldingen en video's worden gescand en automatisch inhoudsmarkeringen worden toegepast. Voeg software voor het filteren van inhoud toe aan uw app om te voldoen aan de regelgeving of om de beoogde omgeving voor gebruikers te behouden.

Gebruik de Content Moderator-clientbibliotheek voor Java om:

  • Tekst modereren
  • Afbeeldingen modereren

Referentiedocumentatie | Broncode bibliotheek |Artefact (Maven) | Voorbeelden

Vereisten

  • Een Azure-abonnement - Een gratis abonnement maken
  • De huidige versie van de Java Development Kit (JDK)
  • Het hulpprogramma Gradle of een andere afhankelijkheidsbeheerder.
  • Zodra u uw Azure-abonnement hebt, maakt u een Content Moderator-resource in de Azure Portal om uw sleutel en eindpunt op te halen. Wacht tot deze is geïmplementeerd en klik op de knop Naar de resource gaan.
    • U hebt de sleutel en het eindpunt nodig van de resource die u maakt, om de toepassing te verbinden met Content Moderator. Later in de quickstart plakt u uw sleutel en eindpunt in de onderstaande code.
    • U kunt de gratis prijscategorie (F0) gebruiken om de service uit te proberen, en later upgraden naar een betaalde laag voor productie.

Instellen

Een nieuw Gradle-project maken

Maak in een consolevenster (zoals cmd, PowerShell of Bash) een nieuwe map voor de app, en navigeer naar deze map.

mkdir myapp && cd myapp

Voer de opdracht gradle init uit vanuit uw werkmap. Met deze opdracht maakt u essentiële buildbestanden voor Gradle, inclusief build.gradle.kts, dat tijdens runtime wordt gebruikt om de toepassing te maken en te configureren.

gradle init --type basic

Wanneer u wordt gevraagd om een DSL te kiezen, selecteert u Kotlin.

De clientbibliotheek installeren

Zoek build.gradle.kts op en open het met uw favoriete IDE of teksteditor. Kopieer het vervolgens in de volgende buildconfiguratie. Deze configuratie definieert het project als een Java-toepassing waarvan het toegangspunt de klasse ContentModeratorQuickstart is. Hiermee importeert u de Content Moderator-clientbibliotheek en de GSON-sdk voor JSON-serialisatie.

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

Een Java-bestand maken

Voer de volgende opdracht uit vanuit uw werkmap om een projectbronmap te maken:

mkdir -p src/main/java

Ga naar de nieuwe map en maak een bestand met de naam ContentModeratorQuickstart.java. Open het bestand in uw voorkeurseditor of IDE en voeg de volgende import-instructies toe:

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.*;

Tip

Wilt u het codebestand voor de quickstart in één keer weergeven? Die is te vinden op GitHub, waar de codevoorbeelden uit deze quickstart zich bevinden.

Maak in de klasse ContentModeratorQuickstart van de toepassing variabelen voor de sleutel en het eindpunt van uw resource.

Belangrijk

Ga naar Azure Portal. Als de Content Moderator-resource die u in de sectie Vereisten hebt gemaakt, is geïmplementeerd, klikt u op de knop Naar de resource gaan onder Volgende stappen. U vindt uw sleutel en eindpunt op de pagina Sleutel en eindpunt van de resource, onder Resourcebeheer.

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

Belangrijk

Vergeet niet de sleutel uit uw code te verwijderen wanneer u klaar bent, en plaats deze sleutel nooit in het openbaar. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel Cognitive Services Beveiliging voor meer informatie.

Voeg in de hoofdmethode van de toepassing aanroepen toe voor de methoden die in deze quickstart worden gebruikt. U definieert deze methoden later.

// 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);

Objectmodel

De volgende klassen worden gebruikt voor enkele van de belangrijkste functies van de Content Moderator Java-clientbibliotheek.

Naam Beschrijving
ContentModeratorClient Deze klasse is nodig voor alle Content Moderator-functionaliteit. U instantieert deze klasse met uw abonnementsgegevens en gebruikt deze om instanties van andere klassen te maken.
ImageModeration Deze klasse biedt de functionaliteit voor het analyseren van afbeeldingen op inhoud voor volwassenen, persoonlijke gegevens of menselijke gezichten.
TextModerations Deze klasse biedt de functionaliteit voor het analyseren van tekst op taal, grove taal, fouten en persoonlijke gegevens.

Codevoorbeelden

Deze codefragmenten laten zien hoe u de volgende taken kunt uitvoeren met de Content Moderator-clientbibliotheek voor Java:

De client verifiëren

Maak in de main-methode van de toepassing een ContentModeratorClient-object met behulp van de eindpuntwaarde van uw abonnement en de abonnementssleutel.

// 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");

Tekst modereren

Voorbeeldtekst instellen

Definieer bovenaan de ContentModeratorQuickstart -klasse een verwijzing naar een lokaal tekstbestand. Voeg een .txt-bestand toe aan uw projectmap en voer de tekst in die u wilt analyseren.

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

Tekst analyseren

Maak een nieuwe methode die het .txt-bestand leest en de screenText -methode op elke regel aanroept.

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());
            }
        }

Voeg de volgende code toe om de beheerresultaten naar een. JSON-bestand in de projectmap af te drukken.

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();

Sluit de try- en catch-instructie om de methode uit te voeren.

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

Afbeeldingen modereren

Voorbeeldafbeelding instellen

Maak in een nieuwe methode een BodyModelModel -object met een opgegeven URL-tekenreeks die naar een afbeelding verwijst.

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();

Helperklasse definiëren

Voeg vervolgens in uw ContentModeratorQuickstart.java-bestand de volgende klassedefinitie toe aan de klasse ContentModeratorQuickstart. Deze binnenste klasse wordt gebruikt in het proces voor afbeeldingsmoderatie.

// 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;
}

Inhoud analyseren

Met deze coderegel wordt de afbeelding op de opgegeven URL op inhoud voor volwassenen of racistische inhoud gecontroleerd. Zie de conceptuele handleiding voor afbeeldingsmoderatie voor informatie over deze voorwaarden.

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

Controleren op tekst

Met deze coderegel wordt de afbeelding gecontroleerd op zichtbare tekst.

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

Controleren op gezichten

Met deze coderegel wordt de afbeelding gecontroleerd op menselijke gezichten.

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

Sla tot slot de geretourneerde informatie op in de lijst EvaluationData.

resultsList.add(imageData);

Voeg na de while-lus de volgende code toe, waarmee de resultaten worden afgedrukt op de console en op een uitvoerbestand, 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();

Sluit de try-instructie en voeg een catch-instructie toe om de methode uit te voeren.

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

De toepassing uitvoeren

U kunt de app maken met:

gradle build

De toepassing uitvoeren met de opdracht gradle run:

gradle run

Ga vervolgens naar de bestand src/main/resources/ModerationOutput.json en bekijk de resultaten van de inhoud van uw inhoudsmoderatie.

Resources opschonen

Als u een Cognitive Services-abonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd.

Volgende stappen

In deze quickstart hebt u geleerd hoe u de Content Moderator Java-bibliotheek kunt gebruiken om moderatietaken uit te voeren. Nu kunt u doorgaan en in conceptgids meer lezen over het modereren van afbeeldingen en andere media.

Ga aan de slag met de Azure Content Moderator-clientbibliotheek voor Python. Volg deze stappen om het PiPy-pakket te installeren en de voorbeeldcode voor basistaken uit te proberen.

Content Moderator is een AI-service waarmee u inhoud kunt afhandelen die mogelijk aanstootgevend, riskant of anderszins ongewenst is. Gebruik de service voor inhoudsbeheer op basis van AI, waarmee tekst, afbeeldingen en video's worden gescand en automatisch inhoudsmarkeringen worden toegepast. Voeg software voor het filteren van inhoud toe aan uw app om te voldoen aan de regelgeving of om de beoogde omgeving voor gebruikers te behouden.

Gebruik de Content Moderator-clientbibliotheek voor Python om het volgende te doen:

  • Tekst modereren
  • Aangepaste termenlijst gebruiken
  • Afbeeldingen modereren
  • Een aangepaste afbeeldingslijst gebruiken

Referentiedocumentatie | Broncode bibliotheek | Package (PiPy) | Voorbeelden

Vereisten

  • Azure-abonnement: Krijg een gratis abonnement
  • Python 3.x
    • Uw Python-installatie moet pip bevatten. U kunt controleren of pip is geïnstalleerd door uit te voeren pip --version op de opdrachtregel. Haal pip op door de nieuwste versie van Python te installeren.
  • Zodra u uw Azure-abonnement hebt, maakt u een Content Moderator-resource in de Azure Portal om uw sleutel en eindpunt op te halen. Wacht tot deze is geïmplementeerd en klik op de knop Naar de resource gaan.
    • U hebt de sleutel en het eindpunt nodig van de resource die u maakt, om de toepassing te verbinden met Content Moderator. Later in de quickstart plakt u uw sleutel en eindpunt in de onderstaande code.
    • U kunt de gratis prijscategorie (F0) gebruiken om de service uit te proberen, en later upgraden naar een betaalde laag voor productie.

Instellen

De clientbibliotheek installeren

Nadat u Python hebt geïnstalleerd, kunt u de Content Moderator-clientbibliotheek installeren met de volgende opdracht:

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

Een nieuwe Python-toepassing maken

Maak een nieuw Python-script en open het in uw favoriete editor of IDE. Voeg bovenaan het bestand de volgende import-instructies toe.

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

Tip

Wilt u het codebestand voor de quickstart in één keer weergeven? Die is te vinden op GitHub, waar de codevoorbeelden uit deze quickstart zich bevinden.

Maak vervolgens variabelen voor de eindpuntlocatie en sleutel van uw resource.

Belangrijk

Ga naar Azure Portal. Als de Content Moderator-resource die u in de sectie Vereisten hebt gemaakt, is geïmplementeerd, klikt u op de knop Naar de resource gaan onder Volgende stappen. U vindt uw sleutel en eindpunt op de pagina Sleutel en eindpunt van de resource, onder Resourcebeheer.

CONTENT_MODERATOR_ENDPOINT = "PASTE_YOUR_CONTENT_MODERATOR_ENDPOINT_HERE"
subscription_key = "PASTE_YOUR_CONTENT_MODERATOR_SUBSCRIPTION_KEY_HERE"

Belangrijk

Vergeet niet de sleutel uit uw code te verwijderen wanneer u klaar bent, en plaats deze sleutel nooit in het openbaar. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel Cognitive Services Beveiliging voor meer informatie.

Objectmodel

De volgende klassen worden gebruikt voor enkele van de belangrijkste functies van de Content Moderator Python-clientbibliotheek.

Naam Beschrijving
ContentModeratorClient Deze klasse is nodig voor alle Content Moderator-functionaliteit. U instantieert deze klasse met uw abonnementsgegevens en gebruikt deze om instanties van andere klassen te maken.
ImageModerationOperations Deze klasse biedt de functionaliteit voor het analyseren van afbeeldingen op inhoud voor volwassenen, persoonlijke gegevens of menselijke gezichten.
TextModerationOperations Deze klasse biedt de functionaliteit voor het analyseren van tekst op taal, grove taal, fouten en persoonlijke gegevens.

Codevoorbeelden

Deze codefragmenten laten zien hoe u de volgende taken kunt uitvoeren met de Content Moderator-clientbibliotheek voor Python:

De client verifiëren

Instantieer een client met uw eindpunt en sleutel. Maak een CognitiveServicesCredentials-object met uw sleutel en gebruik het met uw eindpunt om een ContentModeratorClient--object te maken.

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

Tekst modereren

In de volgende code wordt een Content Moderator-client gebruikt om een stuk tekst te analyseren en de resultaten af te drukken naar de console. Maak eerst de map text_files/ in de hoofdmap van het project en voeg een bestand met de naam content_moderator_text_moderation.txt toe. Voeg uw eigen tekst toe aan dit bestand, of gebruik de volgende voorbeeldtekst:

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

Voeg een verwijzing toe naar de nieuwe map.

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

Voeg de volgende code toe aan uw Python-script.

# 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())

Aangepaste termenlijst gebruiken

De volgende code laat zien hoe u een lijst met aangepaste termen voor tekstmoderatie beheert. U kunt de klasse ListManagementTermListsOperations gebruiken om een lijst met termen te maken, de afzonderlijke termen te beheren en andere teksten ermee te screenen.

Voorbeeldtekst ophalen

Om dit voorbeeld te gebruiken moet u de map text_files/ maken in de hoofdmap van het project en een bestand met de naam content_moderator_term_list.txt toevoegen. Dit bestand moet organische tekst bevatten die wordt gecontroleerd aan de hand van de lijst met termen. U kunt de volgende voorbeeldtekst gebruiken:

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

Voeg een verwijzing naar de map toe als u deze nog niet hebt gedefinieerd.

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

Een lijst maken

Voeg de volgende code toe aan het Python-script om een lijst met aangepaste termen te maken en de id-waarde op te slaan.

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

Lijstdetails definiëren

U kunt de ID van een lijst gebruiken om de naam en beschrijving ervan te bewerken.

#
# 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())

Een term toevoegen aan de lijst

Met de volgende code worden de termen "term1" en "term2" aan de lijst toegevoegd.

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

Alle termen in de lijst ophalen

U kunt de lijst-id gebruiken om alle termen in de lijst te retourneren.

#
# 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())

De lijstindex vernieuwen

Wanneer u termen aan de lijst toevoegt of eruit verwijdert, moet u de index vernieuwen voordat u de bijgewerkte lijst kunt gebruiken.

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

Tekst screenen op basis van de lijst

De belangrijkste functionaliteit van de lijst met aangepaste termen is het vergelijken van teksten met de lijst om te zien of er overeenkomende termen zijn.

#
# 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())

Een term uit een lijst verwijderen

Met de volgende code wordt de term "term1" verwijderd uit de lijst.

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

Alle termen uit een lijst verwijderen

Gebruik de volgende code om alle termen van een lijst te wissen.

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

Een lijst verwijderen

Gebruik de volgende code om een lijst met aangepaste termen te verwijderen.

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

Afbeeldingen modereren

In de volgende code wordt een Content Moderator-client samen met een ImageModerationOperations-object gebruikt om externe afbeeldingen te analyseren op inhoud voor volwassenen.

Voorbeeldafbeeldingen ophalen

Definieer een verwijzing naar enkele te analyseren afbeeldingen.

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

Voeg vervolgens de volgende code toe om uw afbeeldingen te doorlopen. De rest van de code in deze sectie wordt binnen deze lus geplaatst.

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

Controleren op inhoud voor volwassenen/gewaagde inhoud

Met de volgende code wordt de afbeelding op de opgegeven URL gecontroleerd op inhoud voor volwassenen of gewaagde inhoud en worden de resultaten afgedrukt naar de console. Zie de handleiding Concepten voor afbeeldingsmoderatie voor informatie over de betekenis van deze begrippen.

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())

Controleren op zichtbare tekst

Met de volgende code wordt de afbeelding gecontroleerd op zichtbare tekstinhoud en worden de resultaten afgedrukt naar de 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())

Controleren op gezichten

Met de volgende code wordt de afbeelding gecontroleerd op menselijke gezichten en worden de resultaten afgedrukt naar de 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())

Een aangepaste afbeeldingslijst gebruiken

De volgende code laat zien hoe u een aangepaste lijst met afbeeldingen voor afbeeldingsmoderatie beheert. Deze functie is handig als uw platform vaak exemplaren van dezelfde set afbeeldingen ontvangt die u eruit wilt filteren. Door een lijst bij te houden van deze specifieke afbeeldingen, kunt u de prestaties verbeteren. Met de klasse ListManagementImageListsOperations kunt u een lijst met afbeeldingen maken, de afzonderlijke afbeeldingen in de lijst beheren en andere afbeeldingen ermee vergelijken.

Maak de volgende tekstvariabelen om de afbeeldings-URL's op te slaan die u in dit scenario gebruikt.

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

Notitie

Dit is niet de eigenlijke lijst zelf, maar een informele lijst met afbeeldingen die worden toegevoegd in de sectie add images van de code.

Een afbeeldingslijst maken

Voeg de volgende code toe om een lijst met afbeeldingen te maken en sla een verwijzing naar de id ervan op te slaan.

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

Afbeeldingen toevoegen aan een lijst

Met de volgende code worden al uw afbeeldingen aan de lijst toegevoegd.

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

Definieer de hulpfunctie add_images elders in het 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

Afbeeldingen in lijst ophalen

Met de volgende code worden de namen van alle afbeeldingen in uw lijst afgedrukt.

#
# 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())

Lijstdetails bijwerken

U kunt de lijst-id gebruiken om de naam en beschrijving van de lijst bij te werken.

#
# 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())

Lijstdetails ophalen

Gebruik de volgende code om de huidige details van de lijst af te drukken.

#
# 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())

De lijstindex vernieuwen

Nadat u afbeeldingen hebt toegevoegd of verwijderd, moet u de lijstindex vernieuwen voordat u deze kunt gebruiken om andere afbeeldingen te screenen.

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

Afbeeldingen vergelijken met de lijst

De belangrijkste functie van lijsten met afbeeldingen is nieuwe afbeeldingen ermee te vergelijken en te controleren of er overeenkomsten zijn.

#
# 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())

Een afbeelding verwijderen uit de lijst

Met de volgende code wordt een item uit de lijst verwijderd. In dit geval is het een afbeelding die niet in de lijstcategorie past.

#
# 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]
)

Alle afbeeldingen uit een lijst verwijderen

Gebruik de volgende code om een lijst met afbeeldingen leeg te maken.

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

De lijst met afbeeldingen verwijderen

Gebruik de volgende code om een lijst met afbeeldingen te verwijderen.

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

De toepassing uitvoeren

Voer de toepassing uit met de opdracht python in uw quickstart-bestand.

python quickstart-file.py

Resources opschonen

Als u een Cognitive Services-abonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd.

Volgende stappen

In deze quickstart hebt u geleerd hoe u de Content Moderator Python-bibliotheek kunt gebruiken om moderatietaken uit te voeren. Nu kunt u doorgaan en in conceptgids meer lezen over het modereren van afbeeldingen en andere media.

Ga aan de slag met de Azure Content Moderator-REST API.

Content Moderator is een AI-service waarmee u inhoud kunt afhandelen die mogelijk aanstootgevend, riskant of anderszins ongewenst is. Gebruik de service voor inhoudsbeheer op basis van AI, waarmee tekst, afbeeldingen en video's worden gescand en automatisch inhoudsmarkeringen worden toegepast. Voeg software voor het filteren van inhoud toe aan uw app om te voldoen aan de regelgeving of om de beoogde omgeving voor gebruikers te behouden.

Gebruik de Content Moderator-REST API voor:

  • Tekst modereren
  • Afbeeldingen modereren

Vereisten

  • Azure-abonnement: Krijg een gratis abonnement
  • Zodra u uw Azure-abonnement hebt, maakt u een Content Moderator-resource in de Azure Portal om uw sleutel en eindpunt op te halen. Wacht tot deze is geïmplementeerd en klik op de knop Naar de resource gaan.
    • U hebt de sleutel en het eindpunt nodig van de resource die u maakt, om de toepassing te verbinden met Content Moderator. Later in de quickstart plakt u uw sleutel en eindpunt in de onderstaande code.
    • U kunt de gratis prijscategorie (F0) gebruiken om de service uit te proberen, en later upgraden naar een betaalde laag voor productie.
  • PowerShell versie 6.0+, of een vergelijkbare opdrachtregeltoepassing.

Tekst modereren

U gebruikt een opdracht als wat hier volgt om de Content Moderator-API aan te roepen om een stuk tekst te analyseren en de resultaten af te drukken naar de 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"

Kopieer de opdracht naar een teksteditor en maak de volgende wijzigingen:

  1. Wijs Ocp-Apim-Subscription-Key toe aan de geldige Face-abonnementssleutel.

    Belangrijk

    Vergeet niet de sleutel uit uw code te verwijderen wanneer u klaar bent, en plaats deze sleutel nooit in het openbaar. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel Cognitive Services Beveiliging voor meer informatie.

  2. Wijzig het eerste deel van deze URL, zodat deze overeenkomt met het eindpunt dat bij uw abonnementssleutel hoort.

    Notitie

    Nieuwe resources die zijn gemaakt na 1 juli 2019, hebben aangepaste subdomeinnamen. Zie Aangepaste subdomeinnamen voor Cognitive Services voor meer informatie en een volledige lijst met regionale eindpunten.

  3. Wijzig eventueel de hoofdtekst van de aanvraag naar een teksttekenreeks die u wilt analyseren.

Nadat u de wijzigingen hebt aangebracht, opent u een opdrachtprompt en voert u de nieuwe opdracht in.

De resultaten bekijken

De resultaten van het tekstbeheer worden nu in het consolevenster weergegeven als JSON-gegevens. Bijvoorbeeld:

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

Zie de handleiding Text moderation concepts (concepten voor tekstmoderatie) voor informatie over de tekstkenmerken waarop Content Moderator let.

Afbeeldingen modereren

U gebruikt een opdracht als wat hier volgt om de Content Moderator-API aan te roepen om een externe afbeelding te modereren en de resultaten af te drukken naar de 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\"}"

Kopieer de opdracht naar een teksteditor en maak de volgende wijzigingen:

  1. Wijs Ocp-Apim-Subscription-Key toe aan de geldige Face-abonnementssleutel.
  2. Wijzig het eerste deel van deze URL, zodat deze overeenkomt met het eindpunt dat bij uw abonnementssleutel hoort.
  3. Wijzig eventueel de URL voor "Value" in de hoofdtekst van de aanvraag naar de externe afbeelding die u wilt modereren.

Tip

U kunt ook lokale afbeeldingen modereren door de bytegegevens door te geven aan de aanvraagbody. Lees de documentatie voor meer informatie over hoe u dit kunt doen.

Nadat u de wijzigingen hebt aangebracht, opent u een opdrachtprompt en voert u de nieuwe opdracht in.

De resultaten bekijken

De resultaten van het afbeeldingsbeheer worden nu in het consolevenster weergegeven als JSON-gegevens.

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

Zie de handleiding Image moderation concepts (concepten voor afbeeldingsmoderatie) voor informatie over de afbeeldingskenmerken waarop Content Moderator let.

Resources opschonen

Als u een Cognitive Services-abonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd.

Volgende stappen

In deze quickstart hebt u geleerd hoe u de Content Moderator-REST API kunt gebruiken om moderatietaken uit te voeren. Nu kunt u doorgaan en in conceptgids meer lezen over het modereren van afbeeldingen en andere media.