Avvio rapido - Utilizzare la libreria client di Content Moderator
Importante
Azure Content Moderator è deprecato a partire da febbraio 2024 e verrà ritirato entro febbraio 2027. Viene sostituito da Sicurezza dei contenuti di Azure AI, che offre funzionalità avanzate di intelligenza artificiale e prestazioni migliorate.
Sicurezza dei contenuti di Azure AI è una soluzione completa progettata per rilevare contenuti dannosi generati dagli utenti e dall'intelligenza artificiale nelle applicazioni e nei servizi. Sicurezza dei contenuti di Azure AI è adatto per molti scenari, ad esempio marketplace online, aziende di giochi, piattaforme di messaggistica sociale, aziende di contenuti multimediali aziendali e provider di soluzioni per la 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à.
- Studio di Sicurezza dei contenuti: uno strumento online progettato per gestire contenuti potenzialmente offensivi, rischiosi o indesiderati per mezzo di modelli di ML di moderazione dei contenuti all'avanguardia. Fornisce modelli e flussi di lavoro personalizzati, consentendo agli utenti di creare il proprio sistema di moderazione dei contenuti.
- Supporto lingua: Sicurezza dei contenuti di Azure AI supporta più di 100 lingue ed è in particolare sottoposto a training su inglese, tedesco, giapponese, spagnolo, francese, italiano, portoghese e cinese.
Sicurezza dei contenuti di Azure AI offre una soluzione affidabile e flessibile per le esigenze di moderazione dei contenuti. Il passaggio da Content Moderator a Sicurezza dei contenuti di Azure AI permette di sfruttare gli strumenti e le tecnologie più recenti per garantire che il contenuto sia sempre moderato in base alle specifiche esatte.
Altre informazioni sulla Sicurezza dei contenuti di Azure per intelligenza artificiale ed esplorare come può elevare la strategia di moderazione dei contenuti.
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, crea 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 un ambiente di produzione usare un metodo sicuro per l'archiviazione e l'accesso alle proprie credenziali, ad esempio Azure Key Vault. Per altre informazioni, vedere l'articolo sulla sicurezza del Servizi di Azure AI.
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 un file 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 aggiungere gli URL delle immagini da analizzare, inserendo 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 a Servizi di Azure AI, è 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, crea 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 GSON SDK 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 un ambiente di produzione usare un metodo sicuro per l'archiviazione e l'accesso alle proprie credenziali, ad esempio Azure Key Vault. Per altre informazioni, vedere l'articolo sulla sicurezza del Servizi di Azure AI.
Nel metodo main dell'applicazione aggiungere le chiamate per i metodi usati in questa guida di avvio rapido. Sarà possibile definiti questi metodi 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());
}
}
Stampare i risultati della moderazione testo
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);
Stampare i risultati
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 a Servizi di Azure AI, è 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.
- L'installazione di Python deve includere pip. È possibile verificare se pip è installato eseguendo
- 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
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 un ambiente di produzione usare un metodo sicuro per l'archiviazione e l'accesso alle proprie credenziali, ad esempio Azure Key Vault. Per altre informazioni, vedere l'articolo sulla sicurezza del Servizi di Azure AI.
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
- Moderare il testo
- Usare un elenco di termini personalizzati
- Moderare le immagini
- Usare un elenco personalizzato di immagini
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 utilizzarlo 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 escludere. 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 a Servizi di Azure AI, è 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, crea 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:
- 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 un ambiente di produzione usare un metodo sicuro per l'archiviazione e l'accesso alle proprie credenziali, ad esempio Azure Key Vault. Per altre informazioni, vedere l'articolo sulla sicurezza del Servizi di Azure AI.
- 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 per un elenco completo degli endpoint a livello di area, vedere Nomi di sottodomini personalizzati per Servizi di Azure AI.
- 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:
- Assegnare
Ocp-Apim-Subscription-Key
alla propria chiave di sottoscrizione Viso valida. - Cambiare la prima parte dell'URL della query in modo che equivalga all'endpoint che corrisponde alla chiave di sottoscrizione.
- 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 a Servizi di Azure AI, è 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.