Quickstart: De Content Moderator-clientbibliotheek gebruiken

Belangrijk

Azure Content Moderator is vanaf februari 2024 afgeschaft en wordt op 15 maart 2027 buiten gebruik gesteld. Deze wordt vervangen door Azure AI Content Veiligheid, dat geavanceerde AI-functies en verbeterde prestaties biedt.

Azure AI Content Veiligheid is een uitgebreide oplossing die is ontworpen om schadelijke door de gebruiker gegenereerde en DOOR AI gegenereerde inhoud in toepassingen en services te detecteren. Azure AI Content Veiligheid is geschikt voor veel scenario's, zoals online marktplaatsen, gamingbedrijven, sociale berichtenplatformen, bedrijven in de zakelijke mediabranche en oplossingen voor K-12-onderwijs. Hier volgt een overzicht van de functies en mogelijkheden:

  • Api's voor tekst- en afbeeldingsdetectie: scan tekst en afbeeldingen op seksuele inhoud, geweld, haat en zelfbeschadiging met meerdere ernstniveaus.
  • Content Safety Studio: een onlinehulpprogramma dat is ontworpen om mogelijk aanstootgevende, riskante of ongewenste inhoud te verwerken met behulp van onze nieuwste ML-modellen voor inhoudsbeheer. Het biedt sjablonen en aangepaste werkstromen waarmee gebruikers hun eigen systemen voor inhoudsbeheer kunnen bouwen.
  • Taalondersteuning: Azure AI Content Veiligheid ondersteunt meer dan 100 talen en is specifiek getraind op Engels, Duits, Japans, Spaans, Frans, Italiaans, Portugees en Chinees.

Azure AI Content Veiligheid biedt een robuuste en flexibele oplossing voor uw inhoudsbeheerbehoeften. Door over te schakelen van Content Moderator naar Azure AI Content Veiligheid, kunt u profiteren van de nieuwste hulpprogramma's en technologieën om ervoor te zorgen dat uw inhoud altijd wordt gemodereerd naar uw exacte specificaties.

Meer informatie over Azure AI Content Veiligheid en ontdek hoe u uw strategie voor inhoudsbeheer kunt uitbreiden.

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

Content Moderator is een AI-service waarmee u inhoud kunt verwerken die mogelijk aanstootgevend, riskant of anderszins ongewenst is. Gebruik de ai-service voor inhoudsbeheer om tekst, afbeeldingen en video's te scannen en inhoudsvlagmen automatisch toe te passen. Bouw software voor het filteren van inhoud in uw app om te voldoen aan regelgeving of om de beoogde omgeving voor uw gebruikers te onderhouden.

Gebruik de Content Moderator-clientbibliotheek voor .NET om:

  • Gemiddelde tekst
  • Afbeeldingen beheren

Referentiedocumentatie | Bibliotheekbroncode | Package (NuGet) | Voorbeelden

Voorwaarden

  • Azure-abonnement - Gratis een abonnement maken
  • De Visual Studio IDE of 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 het is geïmplementeerd en klik op de knop Ga naar de resource.
    • U hebt de sleutel en het eindpunt nodig van de resource die u maakt om uw toepassing te verbinden met Content Moderator. Je plakt je sleutel en eindpunt verderop in de code hieronder tijdens de quickstart.
    • U kunt de gratis prijscategorie (F0) gebruiken om de service uit te proberen en later een upgrade uit te voeren naar een betaalde laag voor productie.

Instellen

Een nieuwe C#-toepassing maken

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

De clientbibliotheek installeren

Nadat u een nieuw project hebt gemaakt, installeert u de clientbibliotheek door met de rechtermuisknop op de projectoplossing te klikken in de Solution Explorer en Beheer nuGet-pakketten te selecteren. Selecteer in het pakketbeheer dat wordt geopend Browse, vink Inclusief prerelease aan en zoek naar Microsoft.Azure.CognitiveServices.ContentModerator. Selecteer de versie 2.0.0en vervolgens Installeren.

Tip

Wilt u het hele quickstart-codebestand tegelijk weergeven? U vindt deze op GitHub, die de codevoorbeelden in deze quickstart bevat.

Open in de projectmap het Program.cs-bestand in de gewenste 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 Program variabelen voor de sleutel en het eindpunt van uw resource.

Belangrijk

Ga naar de Azure-portal. Als de Content Moderator-resource die u hebt gemaakt in de sectie Vereisten is geïmplementeerd, klikt u onder Volgende stappen op de knop Ga naar resource. U vindt uw sleutel en eindpunt op de pagina met de sleutel en het 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 om de sleutel uit uw code te verwijderen wanneer u klaar bent en deze nooit openbaar te plaatsen. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel Azure AI-services security voor meer informatie.

Voeg in de main()-methode van de toepassing aanroepen toe voor de methoden die in deze quickstart worden gebruikt. Je maakt ze later wel.

// 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 verwerken 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 met uw abonnementsgegevens en u gebruikt deze om exemplaren van andere klassen te produceren.
ImageModeration Deze klasse biedt de functionaliteit voor het analyseren van afbeeldingen voor inhoud voor volwassenen, persoonlijke gegevens of menselijke gezichten.
TextModeration Deze klasse biedt de functionaliteit voor het analyseren van tekst voor taal, grof taalgebruik, 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;
}

Gemiddelde tekst

De volgende code maakt gebruik van een Content Moderator-client om een hoofdtekst te analyseren en de resultaten af te drukken naar de console. Definieer invoer- en uitvoerbestanden in de hoofdmap van de klasse Program :

// 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 methode voor tekstbeheer ergens in uw programmaklasse :

/*
 * 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 beheren

De volgende code maakt gebruik van een Content Moderator-client, samen met een ImageModeration-object , voor het analyseren van externe afbeeldingen voor inhoud voor volwassenen en ongepaste inhoud.

Opmerking

U kunt ook de inhoud van een lokale afbeelding analyseren. Raadpleeg de referentiedocumentatie voor methodes en bewerkingen die werken met lokale afbeeldingen.

Voorbeeldafbeeldingen ophalen

Definieer uw invoer- en uitvoerbestanden in de hoofdmap van uw programmaklasse :

// 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 van afbeeldingen toe 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 klasse Program . Deze interne klasse verwerkt de resultaten van afbeeldingsmoderatie.

// 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 afbeeldingsbeheer definiëren

De volgende methode doorloopt de afbeeldings-URL's in een tekstbestand, maakt een EvaluationData-exemplaar en analyseert de afbeelding voor inhoud voor volwassenen/ongepaste inhoud, tekst en menselijke gezichten. Vervolgens wordt het uiteindelijke EvaluationData-exemplaar 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 concepten voor afbeeldingsmoderatie voor meer informatie over de afbeeldingskenmerken waarop Content Moderator controleert.

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

Moderatie-resultaten 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 aan het IDE-venster op de knop Foutopsporing te klikken.

Resources opschonen

Als u een Azure AI-services-abonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle andere resources verwijderd die eraan zijn gekoppeld.

Volgende stappen

In deze quickstart hebt u geleerd hoe u de Content Moderator .NET-bibliotheek kunt gebruiken om beheertaken uit te voeren. Lees vervolgens een conceptuele handleiding voor meer informatie over het beheer van afbeeldingen of andere media.

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

Content Moderator is een AI-service waarmee u inhoud kunt verwerken die mogelijk aanstootgevend, riskant of anderszins ongewenst is. Gebruik de ai-service voor inhoudsbeheer om tekst, afbeeldingen en video's te scannen en inhoudsvlagmen automatisch toe te passen. Bouw software voor het filteren van inhoud in uw app om te voldoen aan regelgeving of om de beoogde omgeving voor uw gebruikers te onderhouden.

Gebruik de Content Moderator-clientbibliotheek voor Java om:

  • Gemiddelde tekst
  • Afbeeldingen beheren

Referentiedocumentatie | Bibliotheekbroncode |Artifact (Maven) | Voorbeelden

Voorwaarden

  • Een Azure-abonnement - Maak er gratis een
  • De huidige versie van de Java Development Kit (JDK)
  • Het hulpprogramma Gradle-build of een andere afhankelijkheidsmanager.
  • 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 het is geïmplementeerd en klik op de knop Ga naar de resource.
    • U hebt de sleutel en het eindpunt nodig van de resource die u maakt om uw toepassing te verbinden met Content Moderator. Je plakt je sleutel en eindpunt verderop in de code hieronder tijdens de quickstart.
    • U kunt de gratis prijscategorie (F0) gebruiken om de service uit te proberen en later een upgrade uit te voeren 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 uw app en navigeer ernaartoe.

mkdir myapp && cd myapp

Voer de gradle init opdracht uit vanuit uw werkmap. Met deze opdracht maakt u essentiële buildbestanden voor Gradle, waaronder build.gradle.kts, die tijdens runtime wordt gebruikt om uw 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 en open deze met uw favoriete IDE of teksteditor. Kopieer vervolgens 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 vanuit uw werkmap de volgende opdracht uit om een projectbronmap te maken:

mkdir -p src/main/java

Navigeer naar de nieuwe map en maak een bestand met de naam ContentModeratorQuickstart.java. Open deze in uw favoriete editor 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 hele quickstart-codebestand tegelijk weergeven? U vindt deze op GitHub, die de codevoorbeelden in deze quickstart bevat.

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

Belangrijk

Ga naar de Azure-portal. Als de Content Moderator-resource die u hebt gemaakt in de sectie Vereisten is geïmplementeerd, klikt u onder Volgende stappen op de knop Ga naar resource. U vindt uw sleutel en eindpunt op de pagina met de sleutel en het 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 om de sleutel uit uw code te verwijderen wanneer u klaar bent en deze nooit openbaar te plaatsen. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel Azure AI-services security 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 verwerken 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 met uw abonnementsgegevens en u gebruikt deze om exemplaren van andere klassen te produceren.
ImageModeration Deze klasse biedt de functionaliteit voor het analyseren van afbeeldingen voor inhoud voor volwassenen, persoonlijke gegevens of menselijke gezichten.
TextModerations Deze klasse biedt de functionaliteit voor het analyseren van tekst voor taal, grof taalgebruik, 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 methode van main 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");

Gemiddelde tekst

Voorbeeldtekst instellen

Definieer bovenaan de klasse ContentModeratorQuickstart 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 beoordelingsresultaten af te drukken naar een .json-bestand in uw projectmap.

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 af om de methode te voltooien.

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

Afbeeldingen beheren

Voorbeeldafbeelding instellen

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

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 het ContentModeratorQuickstart.java-bestand de volgende klassedefinitie toe aan de klasse ContentModeratorQuickstart . Deze binnenklasse wordt gebruikt in het proces voor afbeeldingsbeheer.

// 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 gecontroleerd op inhoud voor volwassenen of ongepaste inhoud. Zie de conceptuele handleiding voor beheer van afbeeldingen 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 ten slotte de geretourneerde informatie op in de EvaluationData lijst.

resultsList.add(imageData);

Voeg na de while lus de volgende code toe, waarmee de resultaten worden afgedrukt naar de console en naar 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 te voltooien.

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

De toepassing uitvoeren

U kunt de app bouwen met:

gradle build

Voer de toepassing uit met de gradle run opdracht:

gradle run

Navigeer vervolgens naar het bestand src/main/resources/ModerationOutput.json en bekijk de resultaten van uw inhoudsbeheer.

Resources opschonen

Als u een Azure AI-services-abonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle andere resources verwijderd die eraan zijn gekoppeld.

Volgende stappen

In deze quickstart hebt u geleerd hoe u de Content Moderator Java-bibliotheek kunt gebruiken om beheertaken uit te voeren. Lees vervolgens een conceptuele handleiding voor meer informatie over het beheer van afbeeldingen of 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 verwerken die mogelijk aanstootgevend, riskant of anderszins ongewenst is. Gebruik de ai-service voor inhoudsbeheer om tekst, afbeeldingen en video's te scannen en inhoudsvlagmen automatisch toe te passen. Bouw software voor het filteren van inhoud in uw app om te voldoen aan regelgeving of om de beoogde omgeving voor uw gebruikers te onderhouden.

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

  • Gemiddelde tekst
  • Een aangepaste termenlijst gebruiken
  • Afbeeldingen beheren
  • Een aangepaste afbeeldingenlijst gebruiken

Referentiedocumentatie | Bibliotheekbroncode | Package (PiPy) | Voorbeelden

Voorwaarden

  • Azure-abonnement - Gratis een abonnement maken
  • Python 3.x
    • De installatie van uw Python moet pip bevatten. U kunt controleren of pip is geïnstalleerd door op de opdrachtregel uit te voeren pip --version . Installeer pip door de nieuwste versie van Python te installeren.
  • Zodra u uw Azure-abonnement hebt, maak een Content Moderator-resource in de Azure-portal om uw sleutel en eindpunt op te halen. Wacht tot het is geïmplementeerd en klik op de knop Ga naar de resource.
    • U hebt de sleutel en het eindpunt nodig van de resource die u maakt om uw toepassing te verbinden met Content Moderator. Je plakt je sleutel en eindpunt verderop in de code hieronder tijdens de quickstart.
    • U kunt de gratis prijscategorie (F0) gebruiken om de service uit te proberen en later een upgrade uit te voeren 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 vervolgens de volgende import instructies toe aan het begin van het bestand.

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 hele quickstart-codebestand tegelijk weergeven? U vindt deze op GitHub, die de codevoorbeelden in deze quickstart bevat.

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

Belangrijk

Ga naar de Azure-portal. Als de Content Moderator-resource die u hebt gemaakt in de sectie Vereisten is geïmplementeerd, klikt u onder Volgende stappen op de knop Ga naar resource. U vindt uw sleutel en eindpunt op de pagina met de sleutel en het 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 om de sleutel uit uw code te verwijderen wanneer u klaar bent en deze nooit openbaar te plaatsen. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel Azure AI-services security voor meer informatie.

Objectmodel

De volgende klassen verwerken 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 met uw abonnementsgegevens en u gebruikt deze om exemplaren van andere klassen te produceren.
ImageModerationOperations Deze klasse biedt de functionaliteit voor het analyseren van afbeeldingen voor inhoud voor volwassenen, persoonlijke gegevens of menselijke gezichten.
TextModerationOperations Deze klasse biedt de functionaliteit voor het analyseren van tekst voor taal, grof taalgebruik, 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](/python/api/msrest/msrest.authentication.cognitiveservicescredentials-object met uw sleutel en gebruik dit met uw eindpunt om een ContentModeratorClient-object te maken.

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

Gemiddelde tekst

De volgende code maakt gebruik van een Content Moderator-client om een hoofdtekst te analyseren en de resultaten af te drukken naar de console. Maak eerst een text_files/ map in de hoofdmap van uw project en voeg een content_moderator_text_moderation.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 2065550111

Voeg een verwijzing naar de nieuwe map toe.

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

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

Een aangepaste termenlijst gebruiken

De volgende code laat zien hoe u een lijst met aangepaste termen voor tekstbeheer beheert. U kunt de klasse ListManagementTermListsOperations gebruiken om een termenlijst te maken, de afzonderlijke termen te beheren en andere tekstteksten te controleren.

Voorbeeldtekst ophalen

Als u dit voorbeeld wilt gebruiken, moet u een text_files/ map maken in de hoofdmap van uw project en een content_moderator_term_list.txt-bestand toevoegen. Dit bestand moet organische tekst bevatten die wordt gecontroleerd op basis 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 er nog geen 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 uw Python script om een aangepaste termenlijst te maken en de id-waarde ervan 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 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" 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 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)

Schermtekst op basis van de lijst

De belangrijkste functionaliteit van de lijst met aangepaste termen is om een hoofdtekst te vergelijken met de lijst en te zoeken 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" uit de lijst verwijderd.

#
# 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 een lijst met alle bijbehorende termen 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 aangepaste termenlijst te verwijderen.

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

Afbeeldingen beheren

De volgende code maakt gebruik van een Content Moderator-client, samen met een ImageModerationOperations-object , om afbeeldingen te analyseren op inhoud voor volwassenen en ongepaste inhoud.

Voorbeeldafbeeldingen ophalen

Definieer een verwijzing naar sommige afbeeldingen die moeten worden geanalyseerd.

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 herhalen. De rest van de code in deze sectie gaat binnen deze lus.

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

Controleren op inhoud voor volwassenen of pikante inhoud

Met de volgende code wordt de afbeelding op de opgegeven URL gecontroleerd op inhoud voor volwassenen of ongepaste inhoud en worden resultaten afgedrukt naar de console. Zie de handleiding concepten voor afbeeldingsbeheer voor informatie over wat deze termen betekenen.

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

De volgende code controleert de afbeelding op menselijke gezichten en drukt resultaten af op 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 afbeeldingenlijst gebruiken

De volgende code laat zien hoe u een aangepaste lijst met afbeeldingen beheert voor afbeeldingsmoderatie. Deze functie is handig als uw platform regelmatig exemplaren ontvangt van dezelfde set afbeeldingen die u wilt weergeven. Door een lijst met deze specifieke afbeeldingen te onderhouden, kunt u de prestaties verbeteren. Met de klasse ListManagementImageListsOperations kunt u een afbeeldingslijst 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 gaat gebruiken.

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

Opmerking

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

Een lijst met afbeeldingen maken

Voeg de volgende code toe om een lijst met afbeeldingen te maken en sla een verwijzing op naar de bijbehorende 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

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 add_images helperfunctie ergens anders in uw 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 een 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 uw 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 afbeeldingslijsten is om nieuwe afbeeldingen te vergelijken en te zien 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 uit de lijst verwijderen

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

#
# 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 te wissen.

#
# 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 bepaalde 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 python opdracht in uw quickstart-bestand.

python quickstart-file.py

Resources opschonen

Als u een Azure AI-services-abonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle andere resources verwijderd die eraan zijn gekoppeld.

Volgende stappen

In deze quickstart hebt u geleerd hoe u de Content Moderator Python-bibliotheek kunt gebruiken om beheertaken uit te voeren. Lees vervolgens een conceptuele handleiding voor meer informatie over het beheer van afbeeldingen of andere media.

Aan de slag met de Azure Content Moderator REST API.

Content Moderator is een AI-service waarmee u inhoud kunt verwerken die mogelijk aanstootgevend, riskant of anderszins ongewenst is. Gebruik de ai-service voor inhoudsbeheer om tekst, afbeeldingen en video's te scannen en inhoudsvlagmen automatisch toe te passen. Bouw software voor het filteren van inhoud in uw app om te voldoen aan regelgeving of om de beoogde omgeving voor uw gebruikers te onderhouden.

Gebruik de Content Moderator REST API voor het volgende:

  • Gemiddelde tekst
  • Afbeeldingen beheren

Voorwaarden

  • Azure-abonnement - Gratis een abonnement maken
  • 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 het is geïmplementeerd en klik op de knop Ga naar de resource.
    • U hebt de sleutel en het eindpunt nodig van de resource die u maakt om uw toepassing te verbinden met Content Moderator. Je plakt je sleutel en eindpunt verderop in de code hieronder tijdens de quickstart.
    • U kunt de gratis prijscategorie (F0) gebruiken om de service uit te proberen en later een upgrade uit te voeren naar een betaalde laag voor productie.
  • PowerShell versie 6.0+ of een vergelijkbare opdrachtregeltoepassing.

Gemiddelde tekst

U gebruikt een opdracht zoals hieronder om de Content Moderator-API aan te roepen om een teksttekst te analyseren en de resultaten af te drukken op 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 breng de volgende wijzigingen aan:

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

    Belangrijk

    Vergeet niet om de sleutel uit uw code te verwijderen wanneer u klaar bent en deze nooit openbaar te plaatsen. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het artikel Azure AI-services security voor meer informatie.

  2. Wijzig het eerste deel van de query-URL zodat deze overeenkomt met het eindpunt dat overeenkomt met uw abonnementssleutel.

    Opmerking

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

  3. Wijzig eventueel de inhoud van het verzoek in elke tekenreeks die u wilt analyseren.

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

De resultaten bekijken

U ziet nu de resultaten van tekstbeheer die worden weergegeven als JSON-gegevens in het consolevenster. 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 Tekstmoderatieconcepten voor meer informatie over de tekstkenmerken die de Content Moderator controleert.

Afbeeldingen beheren

U gebruikt een opdracht zoals hieronder om de Content Moderator-API aan te roepen om een externe afbeelding te beheren 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 breng de volgende wijzigingen aan:

  1. Wijs Ocp-Apim-Subscription-Key toe aan uw geldige Face-abonnementssleutel.
  2. Wijzig het eerste deel van de query-URL zodat deze overeenkomt met het eindpunt dat overeenkomt met uw abonnementssleutel.
  3. Wijzig desgewenst de "Value" URL in de inhoud van het verzoek naar de externe afbeelding die u wilt modereren.

Tip

U kunt ook lokale afbeeldingen beheren door hun bytegegevens door te geven aan de verzoekbody. Raadpleeg de referentiedocumentatie voor meer informatie over hoe u dit doet.

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

De resultaten bekijken

In het consolevenster worden de resultaten van afbeeldingsbeheer 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 concepten voor afbeeldingsmoderatie voor meer informatie over de afbeeldingskenmerken waarop Content Moderator controleert.

Resources opschonen

Als u een Azure AI-services-abonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle andere resources verwijderd die eraan zijn gekoppeld.

Volgende stappen

In deze quickstart hebt u geleerd hoe u de Content Moderator REST API kunt gebruiken om beheertaken uit te voeren. Lees vervolgens een conceptuele handleiding voor meer informatie over het beheer van afbeeldingen of andere media.