Guida introduttiva: Usare la libreria client di Content Moderator

Importante

Azure Content Moderator è deprecato a febbraio 2024 e verrà ritirato entro febbraio 2027. Viene sostituito da Contenuto di intelligenza artificiale di Azure Cassaforte ty, che offre funzionalità avanzate di intelligenza artificiale e prestazioni migliorate.

Azure AI Content Cassaforte ty è una soluzione completa progettata per rilevare contenuti dannosi generati dall'utente e generati dall'intelligenza artificiale in applicazioni e servizi. Azure AI Content Cassaforte ty è adatto per molti scenari, ad esempio marketplace online, aziende di giochi, piattaforme di messaggistica sociale, aziende di contenuti multimediali aziendali e provider di soluzioni di formazione K-12. Ecco una panoramica delle relative funzionalità e funzionalità:

  • API rilevamento di testo e immagini: analizza testo e immagini per contenuti sessuali, violenza, odio e autolesionismo con più livelli di gravità.
  • Content Cassaforte ty Studio: uno strumento online progettato per gestire contenuti potenzialmente offensivi, rischiosi o indesiderati usando i modelli di Machine Learning con modalità tenda ration più recenti. Fornisce modelli e flussi di lavoro personalizzati che consentono agli utenti di creare sistemi di con modalità tenda ration personalizzati.
  • Supporto per la lingua: Azure AI Content Cassaforte ty supporta più di 100 lingue ed è in particolare sottoposto a training su inglese, tedesco, giapponese, spagnolo, francese, italiano, portoghese e cinese.

Azure AI Content Cassaforte ty offre una soluzione affidabile e flessibile per le esigenze di con modalità tenda ration. Passando da Content Moderator a Contenuto di Azure per intelligenza artificiale Cassaforte ty, è possibile sfruttare gli strumenti e le tecnologie più recenti per assicurarsi che il contenuto sia sempre moderato in base alle specifiche esatte.

Altre informazioni sul contenuto di Intelligenza artificiale di Azure Cassaforte ty e su come può elevare la strategia di con modalità tenda ration.

Introduzione alla libreria client di Azure Content Moderator per .NET. Seguire questi passaggi per installare il pacchetto NuGet e provare il codice di esempio per le attività di base.

Content Moderator è un servizio di intelligenza artificiale che consente di gestire i contenuti potenzialmente offensivi, rischiosi o in altro modo indesiderati. Usare il servizio di moderazione del contenuto basato sull'intelligenza artificiale per analizzare testo, immagini e video e applicare automaticamente i flag di contenuto. È possibile integrare un software di filtro dei contenuti nell'app per garantire la conformità con le normative o mantenere l'ambiente previsto per gli utenti.

Usare la libreria client di Content Moderator per .NET per:

  • Moderare il testo
  • Moderare le immagini

Documentazione di riferimento | Codice sorgente della libreria | Pacchetto (NuGet) | Esempi

Prerequisiti

  • Sottoscrizione di Azure: creare un account gratuito
  • IDE di Visual Studio o la versione corrente di .NET Core.
  • Dopo aver creato la sottoscrizione di Azure, creare una risorsa di Content Moderator nel portale di Azure per ottenere la chiave e l'endpoint. Attendere che venga distribuita e fare clic sul pulsante Vai alla risorsa.
    • La chiave e l'endpoint della risorsa creata sono necessari per connettere l'applicazione a Content Moderator. La chiave e l'endpoint verranno incollati nel codice riportato di seguito nell'argomento di avvio rapido.
    • È possibile usare il piano tariffario gratuito (F0) per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione.

Configurazione

Creare una nuova applicazione C#

Creare un'applicazione .NET Core con Visual Studio.

Installare la libreria client

Dopo aver creato un nuovo progetto, installare la libreria client facendo clic con il pulsante destro del mouse sulla soluzione del progetto in Esplora soluzioni e scegliendo Gestisci pacchetti NuGet. Nella finestra di dialogo Gestione pacchetti visualizzata selezionare Sfoglia, Includi versione preliminare e cercare Microsoft.Azure.CognitiveServices.ContentModerator. Selezionare la versione 2.0.0, quindi Installa.

Suggerimento

Si vuole visualizzare l'intero file di codice dell'argomento di avvio rapido? È possibile trovarlo in GitHub, che contiene gli esempi di codice di questo argomento.

Dalla directory del progetto aprire il file Program.cs nell'ambiente di sviluppo integrato o nell'editor preferito. Aggiungere le istruzioni using seguenti:

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;

Nella classe Program creare le variabili per l'endpoint e la chiave della risorsa.

Importante

Vai al portale di Azure. Se la risorsa Content Moderator creata nella sezione Prerequisiti è stata distribuita correttamente, fare clic sul pulsante Vai alla risorsa in Passaggi successivi. La chiave e l'endpoint saranno disponibili nella pagina Chiavi ed endpoint della risorsa in Gestione risorse.

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

Importante

Al termine, ricordarsi di rimuovere la chiave dal codice e non renderlo mai pubblico. Per l'ambiente di produzione, usare un modo sicuro per archiviare e accedere alle credenziali, ad esempio Azure Key Vault. Per altre informazioni, vedere l'articolo sulla sicurezza dei servizi di intelligenza artificiale di Azure.

Nel metodo main() dell'applicazione aggiungere le chiamate per i metodi usati in questa guida di avvio rapido. Verranno create in seguito.

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

Modello a oggetti

Le classi seguenti gestiscono alcune delle principali funzionalità della libreria client di Content Moderator per .NET.

Nome Descrizione
ContentModeratorClient Questa classe è necessaria per tutte le funzionalità di Content Moderator. È possibile crearne un'istanza con le informazioni della sottoscrizione e usarla per produrre istanze di altre classi.
ImageModeration Questa classe fornisce la funzionalità per analizzare le immagini e individuare contenuti per adulti, informazioni personali o visi umani.
TextModeration Questa classe fornisce la funzionalità per analizzare il testo e individuare lingua, volgarità, errori e informazioni personali.

Esempi di codice

Questi frammenti di codice mostrano come eseguire le attività seguenti con la libreria client di Content Moderator per .NET:

Autenticare il client

In un nuovo metodo creare un'istanza di oggetti client con l'endpoint e la chiave.

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

    return client;
}

Moderare il testo

Il codice seguente usa un client di Content Moderator per analizzare un corpo di testo e stampare i risultati nella console. Nella radice della classe Program definire i file di input e di output:

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

Nella radice del progetto aggiungere quindi un file di TextFile.txt . Aggiungere un testo personalizzato in questo file oppure usare il testo di esempio seguente:

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

Definire quindi il metodo di moderazione del testo in un punto qualsiasi della classe Program:

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

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

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

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

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

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

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

Moderare le immagini

Il codice seguente usa un client di Content Moderator, insieme a un oggetto ImageModeration, per analizzare le immagini remote e verificare la presenza di contenuti per adulti e spinti.

Nota

È anche possibile analizzare il contenuto di un'immagine locale. Vedere la documentazione di riferimento per i metodi e le operazioni che funzionano con le immagini locali.

Recupera immagini di esempio

Nella radice della classe Program definire i file di input e di output:

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

Creare quindi il file di input, ImageFiles.txt nella radice del progetto. In questo file si aggiungono gli URL delle immagini da analizzare, un URL in ogni riga. È possibile usare le immagini di esempio seguenti:

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

Definire la classe helper

Aggiungere la definizione di classe seguente all'interno della classe Program. Questa classe interna gestirà i risultati della moderazione delle immagini.

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

Definire il metodo di moderazione delle immagini

Il metodo seguente consente di scorrere gli URL delle immagini in un file di testo, di creare un'istanza di EvaluationData e di analizzare l'immagine per rilevare la presenza di contenuto per adulti o spinti, testo e visi umani. Aggiunge quindi l'istanza finale di EvaluationData a un elenco e scrive l'elenco completo dei dati restituiti nella console.

Eseguire l'iterazione tra le immagini

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

Analizzare il contenuto

Per altre informazioni sugli attributi dell'immagine verificati da Content Moderator, vedere la guida concettuale alla moderazione di immagini.

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

Scrivere i risultati della moderazione in un file

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

Eseguire l'applicazione

Eseguire l'applicazione facendo clic sul pulsante Debug nella parte superiore della finestra dell'ambiente di sviluppo integrato.

Pulire le risorse

Se si vuole pulire e rimuovere una sottoscrizione dei servizi di intelligenza artificiale di Azure, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate.

Passaggi successivi

In questo argomento di avvio rapido si è appreso come usare la libreria .NET di Content Moderator per eseguire attività di moderazione. Per altre informazioni sulla moderazione di immagini o di altri contenuti multimediali, è possibile leggere una guida concettuale.

Introduzione alla libreria client di Azure Content Moderator per Java. Seguire questi passaggi per installare il pacchetto Maven e provare il codice di esempio per le attività di base.

Content Moderator è un servizio di intelligenza artificiale che consente di gestire i contenuti potenzialmente offensivi, rischiosi o in altro modo indesiderati. Usare il servizio di moderazione del contenuto basato sull'intelligenza artificiale per analizzare testo, immagini e video e applicare automaticamente i flag di contenuto. È possibile integrare un software di filtro dei contenuti nell'app per garantire la conformità con le normative o mantenere l'ambiente previsto per gli utenti.

Usare la libreria client di Content Moderator per Java per:

  • Moderare il testo
  • Moderare le immagini

Documentazione di riferimento | Codice sorgente della libreria |Artefatto (Maven) | Esempi

Prerequisiti

  • Una sottoscrizione di Azure: creare un account gratuitamente
  • La versione più recente di Java Development Kit (JDK)
  • Lo strumento di compilazione Gradle o un'altra utilità di gestione dipendenze.
  • Dopo aver creato la sottoscrizione di Azure, creare una risorsa di Content Moderator nel portale di Azure per ottenere la chiave e l'endpoint. Attendere che venga distribuita e fare clic sul pulsante Vai alla risorsa.
    • La chiave e l'endpoint della risorsa creata sono necessari per connettere l'applicazione a Content Moderator. La chiave e l'endpoint verranno incollati nel codice riportato di seguito nell'argomento di avvio rapido.
    • È possibile usare il piano tariffario gratuito (F0) per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione.

Configurazione

Creare un nuovo progetto Gradle

In una finestra della console, ad esempio cmd, PowerShell o Bash, creare e passare a una nuova directory per l'app.

mkdir myapp && cd myapp

Eseguire il comando gradle init dalla directory di lavoro. Questo comando creerà i file di compilazione essenziali per Gradle, tra cui build.gradle.kts, che viene usato in fase di esecuzione per creare e configurare l'applicazione.

gradle init --type basic

Quando viene chiesto di scegliere un linguaggio DSL, selezionare Kotlin.

Installare la libreria client

Individuare build.gradle.kts e aprirlo con un IDE o un editor di testo a scelta. Quindi copiare la configurazione di compilazione seguente. Questa configurazione definisce il progetto come applicazione Java il cui punto di ingresso è la classe ContentModeratorQuickstart. Importa la libreria client di Content Moderator e L'SDK GSON per la serializzazione JSON.

plugins {
    java
    application
}

application{ 
    mainClassName = "ContentModeratorQuickstart"
}

repositories{
    mavenCentral()
}

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

Creare un file Java

Dalla directory di lavoro eseguire il comando seguente per creare una cartella di origine del progetto:

mkdir -p src/main/java

Passare alla nuova cartella e creare un file denominato ContentModeratorQuickstart.java. Aprirlo in un editor o un IDE a scelta e importare le istruzioni import seguenti:

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

Suggerimento

Si vuole visualizzare l'intero file di codice dell'argomento di avvio rapido? È possibile trovarlo in GitHub, che contiene gli esempi di codice di questo argomento.

Nella classe ContentModeratorQuickstart dell'applicazione creare variabili per l'endpoint e la chiave della risorsa.

Importante

Vai al portale di Azure. Se la risorsa Content Moderator creata nella sezione Prerequisiti è stata distribuita correttamente, fare clic sul pulsante Vai alla risorsa in Passaggi successivi. La chiave e l'endpoint saranno disponibili nella pagina Chiavi ed endpoint della risorsa in Gestione risorse.

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

Importante

Al termine, ricordarsi di rimuovere la chiave dal codice e non renderlo mai pubblico. Per l'ambiente di produzione, usare un modo sicuro per archiviare e accedere alle credenziali, ad esempio Azure Key Vault. Per altre informazioni, vedere l'articolo sulla sicurezza dei servizi di intelligenza artificiale di Azure.

Nel metodo main dell'applicazione aggiungere le chiamate per i metodi usati in questa guida di avvio rapido. Questi metodi verranno definiti in un secondo momento.

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

Modello a oggetti

Le classi seguenti gestiscono alcune delle principali funzionalità della libreria client di Content Moderator per Java.

Nome Descrizione
ContentModeratorClient Questa classe è necessaria per tutte le funzionalità di Content Moderator. È possibile crearne un'istanza con le informazioni della sottoscrizione e usarla per produrre istanze di altre classi.
ImageModeration Questa classe fornisce la funzionalità per analizzare le immagini e individuare contenuti per adulti, informazioni personali o visi umani.
TextModerations Questa classe fornisce la funzionalità per analizzare il testo e individuare lingua, volgarità, errori e informazioni personali.

Esempi di codice

Questi frammenti di codice mostrano come eseguire le attività seguenti con la libreria client di Content Moderator per Java:

Autenticare il client

Nel metodo main dell'applicazione creare un oggetto ContentModeratorClient usando il valore dell'endpoint sottoscrizione e la chiave di sottoscrizione.

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

Moderare il testo

Configurare il testo di esempio

Nella parte superiore della classe ContentModeratorQuickstart definire un riferimento a un file di testo locale. Aggiungere un file TXT alla directory del progetto e immettere il testo che si vuole analizzare.

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

Analizzare il testo

Creare un nuovo metodo che legga il file TXT e chiami il metodo screenText su ogni riga.

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

Aggiungere il codice seguente per stampare i risultati della moderazione in un file JSON nella directory del progetto.

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

Chiudere le istruzioni try e catch per completare il metodo.

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

Moderare le immagini

Configurare un'immagine di esempio

In un nuovo metodo costruire un oggetto BodyModelModel con una determinata stringa URL che punta a un'immagine.

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

Definire la classe helper

Quindi, nel file ContentModeratorQuickstart.Java aggiungere la definizione di classe seguente all'interno della classe ContentModeratorQuickstart. Questa classe interna viene usata nel processo di moderazione delle immagini.

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

Analizzare il contenuto

Questa riga di codice verifica la presenza di contenuti per adulti o spinti nell'immagine in corrispondenza dell'URL specificato. Per informazioni su questi termini, vedere la guida concettuale alla moderazione di immagini.

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

Verificare la presenza di testo

Questa riga di codice verifica la presenza di testo visibile nell'immagine.

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

Verificare la presenza di visi

Questa riga di codice verifica la presenza di visi umani nell'immagine.

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

Infine, archiviare le informazioni restituite nell'elenco EvaluationData.

resultsList.add(imageData);

Dopo il ciclo while, aggiungere il codice seguente, che stampa i risultati nella console e in un file di output, 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();

Chiudere l'istruzione try e aggiungere un'istruzione catch per completare il metodo.

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

Eseguire l'applicazione

È possibile compilare l'app con:

gradle build

Eseguire l'applicazione con il comando gradle run:

gradle run

Passare quindi al file src/main/Resources/ModerationOutput.json e visualizzare i risultati della moderazione del contenuto.

Pulire le risorse

Se si vuole pulire e rimuovere una sottoscrizione dei servizi di intelligenza artificiale di Azure, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate.

Passaggi successivi

In questo argomento di avvio rapido si è appreso come usare la libreria Java di Content Moderator per eseguire attività di moderazione. Per altre informazioni sulla moderazione di immagini o di altri contenuti multimediali, è possibile leggere una guida concettuale.

Introduzione alla libreria client di Azure Content Moderator per Python. Seguire questi passaggi per installare il pacchetto PiPy e provare il codice di esempio per le attività di base.

Content Moderator è un servizio di intelligenza artificiale che consente di gestire i contenuti potenzialmente offensivi, rischiosi o in altro modo indesiderati. Usare il servizio di moderazione del contenuto basato sull'intelligenza artificiale per analizzare testo, immagini e video e applicare automaticamente i flag di contenuto. È possibile integrare un software di filtro dei contenuti nell'app per garantire la conformità con le normative o mantenere l'ambiente previsto per gli utenti.

Usare la libreria client di Content Moderator per Python per:

  • Moderare il testo
  • Usare un elenco di termini personalizzati
  • Moderare le immagini
  • Usare un elenco personalizzato di immagini

Documentazione di riferimento | Codice sorgente della libreria | Pacchetto (PiPy) | Esempi

Prerequisiti

  • Sottoscrizione di Azure: creare un account gratuito
  • Python 3.x
    • L'installazione di Python deve includere pip. È possibile verificare se pip è installato eseguendo pip --version nella riga di comando. Ottenere pip installando la versione più recente di Python.
  • Dopo aver creato la sottoscrizione di Azure, creare una risorsa content Moderator nel portale di Azure per ottenere la chiave e l'endpoint. Attendere che venga distribuita e fare clic sul pulsante Vai alla risorsa.
    • La chiave e l'endpoint della risorsa creata sono necessari per connettere l'applicazione a Content Moderator. La chiave e l'endpoint verranno incollati nel codice riportato di seguito nell'argomento di avvio rapido.
    • È possibile usare il piano tariffario gratuito (F0) per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione.

Configurazione

Installare la libreria client

Dopo aver installato Python, è possibile installare la libreria client di Content Moderator con il comando seguente:

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

Creare una nuova applicazione Python

Creare un nuovo script Python in un editor o un IDE a scelta. Aggiungere quindi le istruzioni import seguenti all'inizio del file.

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

Suggerimento

Si vuole visualizzare l'intero file di codice dell'argomento di avvio rapido? È possibile trovarlo in GitHub, che contiene gli esempi di codice di questo argomento.

Creare quindi le variabili per la località dell'endpoint della risorsa e la chiave.

Importante

Vai al portale di Azure. Se la risorsa Content Moderator creata nella sezione Prerequisiti è stata distribuita correttamente, fare clic sul pulsante Vai alla risorsa in Passaggi successivi. La chiave e l'endpoint saranno disponibili nella pagina Chiavi ed endpoint della risorsa in Gestione risorse.

CONTENT_MODERATOR_ENDPOINT = "PASTE_YOUR_CONTENT_MODERATOR_ENDPOINT_HERE"
subscription_key = "PASTE_YOUR_CONTENT_MODERATOR_SUBSCRIPTION_KEY_HERE"

Importante

Al termine, ricordarsi di rimuovere la chiave dal codice e non renderlo mai pubblico. Per l'ambiente di produzione, usare un modo sicuro per archiviare e accedere alle credenziali, ad esempio Azure Key Vault. Per altre informazioni, vedere l'articolo sulla sicurezza dei servizi di intelligenza artificiale di Azure.

Modello a oggetti

Le classi seguenti gestiscono alcune delle principali funzionalità della libreria client di Content Moderator per Python.

Nome Descrizione
ContentModeratorClient Questa classe è necessaria per tutte le funzionalità di Content Moderator. È possibile crearne un'istanza con le informazioni della sottoscrizione e usarla per produrre istanze di altre classi.
ImageModerationOperations Questa classe fornisce la funzionalità per analizzare le immagini e individuare contenuti per adulti, informazioni personali o visi umani.
TextModerationOperations Questa classe fornisce la funzionalità per analizzare il testo e individuare lingua, volgarità, errori e informazioni personali.

Esempi di codice

Questi frammenti di codice mostrano come eseguire le attività seguenti con la libreria client di Content Moderator per Python:

Autenticare il client

Creare un'istanza di un client con l'endpoint e la chiave. Creare un oggetto CognitiveServicesCredentials](/python/api/msrest/msrest.authentication.cognitiveservicescredentials con la chiave e usarlo con l'endpoint per creare un oggetto ContentModeratorClient .

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

Moderare il testo

Il codice seguente usa un client di Content Moderator per analizzare un corpo di testo e stampare i risultati nella console. Creare prima di tutto una cartella text_files/ nella radice del progetto e aggiungere un file content_moderator_text_moderation.txt. Aggiungere un testo personalizzato in questo file oppure usare il testo di esempio seguente:

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

Aggiungere un riferimento alla nuova cartella.

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

Aggiungere quindi il codice seguente allo script Python.

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

Usare un elenco di termini personalizzati

Il codice seguente illustra come gestire un elenco di termini personalizzati per la moderazione del testo. È possibile usare la classe ListManagementTermListsOperations per creare un elenco di termini, gestirli singolarmente e confrontarli con altri corpi di testo.

Ottenere il testo di esempio

Per usare questo esempio, è necessario creare una cartella text_files/ nella radice del progetto e aggiungere un file content_moderator_term_list.txt. Questo file deve contenere testo organico che verrà verificato rispetto all'elenco di termini. È possibile usare il testo di esempio seguente:

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

Aggiungere un riferimento alla cartella se non ne è già stato definito uno.

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

Creazione di un elenco

Aggiungere il codice seguente allo script Python per creare un elenco di termini personalizzati e salvare il relativo valore ID.

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

Definire i dettagli dell'elenco

È possibile usare l'ID di un elenco per modificarne il nome e la descrizione.

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

Aggiungere un termine all'elenco

Il codice seguente aggiunge i termini "term1" e "term2" all'elenco.

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

Ottenere tutti i termini dell'elenco

È possibile usare l'ID elenco per restituire tutti i termini dell'elenco.

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

Aggiornare l'indice dell'elenco

Ogni volta che si aggiungono o si rimuovono termini dall'elenco, è necessario aggiornare l'indice prima di poter usare l'elenco aggiornato.

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

Confrontare il testo con l'elenco

La principale funzionalità dell'elenco di termini personalizzati consiste nel confrontare un corpo di testo con l'elenco e verificare se sono presenti termini corrispondenti.

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

Rimuovere un termine da un elenco

Il codice seguente rimuove il termine "term1" dall'elenco.

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

Rimuovere tutti i termini da un elenco

Usare il codice seguente per cancellare tutti i termini da un elenco.

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

Eliminare un elenco

Usare il codice seguente per eliminare l'elenco di termini personalizzati.

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

Moderare le immagini

Il codice seguente usa un client di Content Moderator, insieme a un oggetto ImageModerationOperations, per analizzare le immagini e verificare la presenza di contenuti per adulti e spinti.

Recupera immagini di esempio

Definire un riferimento ad alcune immagini da analizzare.

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

Aggiungere quindi il codice seguente per eseguire l'iterazione tra le immagini. Il resto del codice contenuto in questa sezione verrà inserito in questo ciclo.

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

Verificare la presenza di contenuti per adulti o spinti

Il codice seguente verifica la presenza di contenuti per adulti o spinti nell'immagine in corrispondenza dell'URL specificato e stampa i risultati nella console. Per informazioni sul significato di questi termini, vedere la guida concettuale alla moderazione di immagini.

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

Verificare la presenza di testo visibile

Il codice seguente verifica la presenza di contenuto di testo visibile nell'immagine e stampa i risultati nella 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())

Verificare la presenza di visi

Il codice seguente verifica la presenza di visi umani nell'immagine e stampa i risultati nella 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())

Usare un elenco personalizzato di immagini

Il codice seguente illustra come gestire un elenco personalizzato di immagini per la moderazione. Questa funzionalità è utile se la piattaforma riceve spesso istanze dello stesso set di immagini da visualizzare. Mantenendo un elenco di queste immagini specifiche, è possibile migliorare le prestazioni. La classe ListManagementImageListsOperations consente di creare un elenco di immagini, gestirle singolarmente e confrontarle con altre immagini.

Creare le variabili di testo seguenti per archiviare gli URL delle immagini che verranno usati in questo scenario.

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

Nota

Questo non è l'elenco corretto, ma un elenco informale di immagini che verranno aggiunte nella sezione add images del codice.

Creare un elenco di immagini

Aggiungere il codice seguente per creare un elenco di immagini e salvare un riferimento al relativo 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

Aggiungere immagini a un elenco

Il codice seguente aggiunge tutte le immagini all'elenco.

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

Definire la funzione helper add_images in un altro punto dello 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

Ottenere le immagini dell'elenco

Il codice seguente stampa i nomi di tutte le immagini dell'elenco.

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

Aggiornare i dettagli dell'elenco

È possibile usare l'ID elenco per aggiornare il nome e la descrizione dell'elenco.

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

Ottenere i dettagli dell'elenco

Usare il codice seguente per stampare i dettagli correnti dell'elenco.

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

Aggiornare l'indice dell'elenco

Dopo aver aggiunto o rimosso immagini, è necessario aggiornare l'indice dell'elenco prima di poterlo usare per esaminare altre immagini.

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

Confrontare le immagini con l'elenco

La funzione principale degli elenchi di immagini consiste nel confrontare le nuove immagini e verificare se sono presenti corrispondenze.

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

Rimuovere un'immagine dall'elenco

Il codice seguente rimuove una voce dall'elenco. In questo caso, si tratta di un'immagine che non corrisponde alla categoria dell'elenco.

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

Rimuovere tutte le immagini da un elenco

Usare il codice seguente per cancellare le immagini da un elenco.

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

Eliminare l'elenco di immagini

Usare il codice seguente per eliminare uno specifico elenco di immagini.

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

Eseguire l'applicazione

Eseguire l'applicazione con il comando python nel file quickstart.

python quickstart-file.py

Pulire le risorse

Se si vuole pulire e rimuovere una sottoscrizione dei servizi di intelligenza artificiale di Azure, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate.

Passaggi successivi

In questo argomento di avvio rapido si è appreso come usare la libreria Python di Content Moderator per eseguire attività di moderazione. Per altre informazioni sulla moderazione di immagini o di altri contenuti multimediali, è possibile leggere una guida concettuale.

Introduzione all'API REST Content Moderator di Azure.

Content Moderator è un servizio di intelligenza artificiale che consente di gestire i contenuti potenzialmente offensivi, rischiosi o in altro modo indesiderati. Usare il servizio di moderazione del contenuto basato sull'intelligenza artificiale per analizzare testo, immagini e video e applicare automaticamente i flag di contenuto. È possibile integrare un software di filtro dei contenuti nell'app per garantire la conformità con le normative o mantenere l'ambiente previsto per gli utenti.

Usare l'API REST Content Moderator per:

  • Moderare il testo
  • Moderare le immagini

Prerequisiti

  • Sottoscrizione di Azure: creare un account gratuito
  • Dopo aver creato la sottoscrizione di Azure, creare una risorsa di Content Moderator nel portale di Azure per ottenere la chiave e l'endpoint. Attendere che venga distribuita e fare clic sul pulsante Vai alla risorsa.
    • La chiave e l'endpoint della risorsa creata sono necessari per connettere l'applicazione a Content Moderator. La chiave e l'endpoint verranno incollati nel codice riportato di seguito nell'argomento di avvio rapido.
    • È possibile usare il piano tariffario gratuito (F0) per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione.
  • PowerShell versione 6.0+o un'applicazione della riga di comando simile.

Moderare il testo

Verrà usato un comando simile al seguente per chiamare l'API Content Moderator per analizzare un corpo di testo e stampare i risultati nella 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"

Copiare il comando in un editor di testo e apportare le modifiche seguenti:

  1. Assegnare Ocp-Apim-Subscription-Key alla propria chiave di sottoscrizione Viso valida.

    Importante

    Al termine, ricordarsi di rimuovere la chiave dal codice e non renderlo mai pubblico. Per l'ambiente di produzione, usare un modo sicuro per archiviare e accedere alle credenziali, ad esempio Azure Key Vault. Per altre informazioni, vedere l'articolo sulla sicurezza dei servizi di intelligenza artificiale di Azure.

  2. Cambiare la prima parte dell'URL della query in modo che equivalga all'endpoint che corrisponde alla chiave di sottoscrizione.

    Nota

    Le nuove risorse create dopo il 1° luglio 2019 useranno nomi di sottodomini personalizzati. Per altre informazioni e un elenco completo degli endpoint a livello di area, vedere Nomi di sottodomini personalizzati per i servizi di intelligenza artificiale di Azure.

  3. Facoltativamente, cambiare il corpo della richiesta sostituendolo con qualsiasi stringa di testo da analizzare.

Dopo aver apportato le modifiche, aprire un prompt dei comandi e immettere il nuovo comando.

Esaminare i risultati

I risultati della moderazione del testo verranno visualizzati come dati JSON nella finestra della console. Ad esempio:

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

Per altre informazioni sugli attributi di testo verificati da Content Moderator, vedere la guida Concetti di moderazione del testo.

Moderare le immagini

Verrà usato un comando simile al seguente per chiamare l'API Content Moderator per moderare un'immagine remota e stampare i risultati nella 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\"}"

Copiare il comando in un editor di testo e apportare le modifiche seguenti:

  1. Assegnare Ocp-Apim-Subscription-Key alla propria chiave di sottoscrizione Viso valida.
  2. Cambiare la prima parte dell'URL della query in modo che equivalga all'endpoint che corrisponde alla chiave di sottoscrizione.
  3. Facoltativamente, cambiare l'URL di "Value" nel corpo della richiesta sostituendolo con qualsiasi immagine remota da moderare.

Suggerimento

È anche possibile moderare immagini locali passando i dati dei relativi byte nel corpo della richiesta. Per informazioni, vedere la documentazione di riferimento.

Dopo aver apportato le modifiche, aprire un prompt dei comandi e immettere il nuovo comando.

Esaminare i risultati

I risultati della moderazione dell'immagine verranno visualizzati come dati JSON nella finestra della console.

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

Per altre informazioni sugli attributi dell'immagine verificati da Content Moderator, vedere la guida concettuale alla moderazione di immagini.

Pulire le risorse

Se si vuole pulire e rimuovere una sottoscrizione dei servizi di intelligenza artificiale di Azure, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate.

Passaggi successivi

In questa guida di avvio rapido si è appreso come usare l'API REST Content Moderator per eseguire attività di moderazione. Per altre informazioni sulla moderazione di immagini o di altri contenuti multimediali, è possibile leggere una guida concettuale.