Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Azure Content Moderator è deprecato a partire da febbraio 2024 e verrà ritirato il 15 marzo 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 dall'utente e generati dall'intelligenza artificiale in applicazioni e servizi. Sicurezza dei contenuti di Azure AI è adatto a molti scenari, ad esempio marketplace online, società di giochi, piattaforme di messaggistica sociale, aziende di media aziendali e provider di soluzioni per la formazione K-12. Ecco una panoramica delle sue funzionalità e capacità:
- API rilevamento di testo e immagini: analizza testo e immagini per contenuti sessuali, violenza, odio e autolesionismo con più livelli di gravità.
- Content Safety Studio: uno strumento online progettato per gestire contenuti potenzialmente offensivi, rischiosi o indesiderati usando i modelli di Ml di moderazione del contenuto più recenti. Fornisce modelli e flussi di lavoro personalizzati che consentono agli utenti di creare sistemi di moderazione del contenuto personalizzati.
- Lingue supportate: Sicurezza dei contenuti di Azure AI supporta oltre 100 lingue ed è stato sottoposto a training specifico per 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 del contenuto. Passando da Content Moderator a Sicurezza dei contenuti di Azure AI, è possibile sfruttare gli strumenti e le tecnologie più recenti per garantire che il contenuto sia sempre moderato in base alle specifiche esatte.
Altre informazioni su Sicurezza dei contenuti di Azure AI ed esplorare come elevare la strategia di moderazione del contenuto.
Introduzione alla libreria client di Azure Content Moderator per .NET. Seguire questa procedura 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 contenuti potenzialmente offensivi, rischiosi o altrimenti indesiderati. Usare il servizio di moderazione del contenuto basato su intelligenza artificiale per analizzare testo, immagine e video e applicare automaticamente i flag di contenuto. Creare software di filtro del contenuto nell'app per rispettare le normative o mantenere l'ambiente previsto per gli utenti.
Utilizzare la libreria client di Content Moderator per .NET per:
- Moderare il testo
- Moderare le immagini
Documentazione di riferimento | Codice sorgente della libreria | Package (NuGet) | Esempi
Prerequisiti
- sottoscrizione Azure - Crearne una gratuitamente
- La versione attuale di IDE di Visual Studio o di .NET Core.
- Dopo aver creato la sottoscrizione Azure, creare una risorsa di Content Moderator nel portale di Azure per ottenere la chiave e l'endpoint. Attendere la distribuzione e fare clic sul pulsante Vai alla risorsa .
- Sarà necessaria la chiave e l'endpoint dalla risorsa creata 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 e eseguire l'aggiornamento in un secondo momento a un livello a pagamento per la produzione.
Configurazione
Creare una nuova applicazione C#
Usando Visual Studio, creare una nuova applicazione .NET Core.
Installare la libreria client
Dopo aver creato un nuovo progetto, installare la libreria client facendo clic con il pulsante destro del mouse sulla soluzione di progetto nella Esplora soluzioni e selezionando Gestisci pacchetti NuGet. Nella gestione pacchetti visualizzata selezionare Browse, selezionare Include prerelease e cercare Microsoft.Azure.CognitiveServices.ContentModerator. Selezionare la versione 2.0.0e quindi Installa.
Suggerimento
Vuoi visualizzare l'intero file di codice di avvio rapido contemporaneamente? È possibile trovarla in GitHub, che contiene gli esempi di codice in questa guida introduttiva.
Dalla directory del progetto aprire il file Program.cs nell'editor o nell'IDE preferito. Aggiungi le istruzioni seguenti using :
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 variabili per la chiave e l'endpoint della risorsa.
Importante
Passare 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. È possibile trovare la chiave e l'endpoint nella pagina chiave e 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
Ricordarsi di rimuovere la chiave dal codice al termine e non pubblicarla mai pubblicamente. 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 Servizi di Azure AI security.
Nel metodo main() dell'applicazione aggiungere le chiamate per i metodi usati in questa guida di avvio rapido. Questi verranno creati in un secondo momento.
// 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 .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 l'analisi delle immagini per contenuti per adulti, informazioni personali o visi umani. |
| TextModeration | Questa classe fornisce la funzionalità per l'analisi del testo per la lingua, il contenuto volgare, gli errori e le informazioni personali. |
Esempi di codice
Questi frammenti di codice illustrano 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 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 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";
Alla radice del progetto, aggiungere un TextFile.txt. Aggiungere testo personalizzato a 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 Content Moderator, insieme a un oggetto ImageModeration, per analizzare le immagini remote alla ricerca di contenuti per adulti e provocanti.
Nota
È anche possibile analizzare il contenuto di un'immagine locale. Vedere la documentazione di riferimento per metodi e operazioni che funzionano con le immagini locali.
Ottenere immagini di esempio
Definire i file di input e output nella radice della classe Program :
// IMAGE MODERATION
//The name of the file that contains the image URLs to evaluate.
private static readonly string ImageUrlFile = "ImageFiles.txt";
// The name of the file to contain the output from the evaluation.
private static string ImageOutputFile = "ImageModerationOutput.json";
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 evaluationData finale a un elenco e scrive l'elenco completo dei dati restituiti nella console.
Scorrere 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 che vengono esaminati da Content Moderator, vedere la guida ai concetti relativi alla moderazione delle 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 nel 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'IDE.
Pulire le risorse
Se si vuole pulire e rimuovere una sottoscrizione Servizi di Azure AI, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse elimina anche tutte le altre risorse associate.
Passaggi successivi
In questo argomento di avvio rapido si è appreso come usare la libreria di .NET Content Moderator per eseguire attività di moderazione. Successivamente, scopri di più sulla moderazione delle immagini o di altri media leggendo una guida concettuale.
Introduzione alla libreria client di Azure Content Moderator per Java. Seguire questa procedura 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 contenuti potenzialmente offensivi, rischiosi o altrimenti indesiderati. Usare il servizio di moderazione del contenuto basato su intelligenza artificiale per analizzare testo, immagine e video e applicare automaticamente i flag di contenuto. Creare software di filtro del contenuto nell'app per rispettare 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 Reference | Codice sorgente della libreria |Artifact (Maven) | Samples
Prerequisiti
- Una sottoscrizione Azure - Crearne una gratuitamente
- Versione corrente del Java Development Kit (JDK)
- Lo strumento di compilazione Gradle o un altro gestore delle dipendenze.
- Dopo aver creato la sottoscrizione Azure, creare una risorsa di Content Moderator nel portale di Azure per ottenere la chiave e l'endpoint. Attendere la distribuzione e fare clic sul pulsante Vai alla risorsa .
- Sarà necessaria la chiave e l'endpoint dalla risorsa creata 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 e eseguire l'aggiornamento in un secondo momento 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 una nuova directory per l'app e passare a essa.
mkdir myapp && cd myapp
Esegui il comando gradle init dalla directory di lavoro. Questo comando creerà file di compilazione essenziali per Gradle, incluso build.gradle.kts, usato in fase di esecuzione per creare e configurare l'applicazione.
gradle init --type basic
Quando viene richiesto di scegliere un linguaggio DSL, selezionare Kotlin.
Installare la libreria client
Trovare build.gradle.kts e aprirlo con l'IDE o l'editor di testo preferito. Copiare quindi nella 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 nell'editor o nell'IDE preferito e aggiungere le istruzioni seguenti import :
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
Vuoi visualizzare l'intero file di codice di avvio rapido contemporaneamente? È possibile trovarla in GitHub, che contiene gli esempi di codice in questa guida introduttiva.
Nella classe ContentModeratorQuickstart dell'applicazione creare variabili per la chiave e l'endpoint della risorsa.
Importante
Passare 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. È possibile trovare la chiave e l'endpoint nella pagina chiave e endpoint della risorsa, in Gestione risorse.
private static final String subscriptionKey = "<your-subscription-key>";
private static final String endpoint = "<your-api-endpoint>";
Importante
Ricordarsi di rimuovere la chiave dal codice al termine e non pubblicarla mai pubblicamente. 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 Servizi di Azure AI security.
Nel metodo main dell'applicazione aggiungere chiamate per i metodi usati in questa guida introduttiva. 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 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 l'analisi delle immagini per contenuti per adulti, informazioni personali o visi umani. |
| TextModerations | Questa classe fornisce la funzionalità per l'analisi del testo per la lingua, il contenuto volgare, gli errori e le informazioni personali. |
Esempi di codice
Questi frammenti di codice illustrano 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 da analizzare.
// TEXT MODERATION variable
private static File textFile = new File("src\\main\\resources\\TextModeration.txt");
Analizzare il testo
Creare un nuovo metodo che legge il file .txt e chiama il metodo screenText in 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 del 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 controlla l'immagine nell'URL specificato per contenuti per adulti o osé. Per informazioni su questi termini, vedere la guida concettuale alla moderazione delle 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 controlla 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 volti
Questa riga di codice controlla l'immagine per i volti umani.
// 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 while ciclo, 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 gradle run comando :
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 Servizi di Azure AI, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse elimina anche tutte le altre risorse associate.
Passaggi successivi
In questa guida introduttiva si è appreso come usare la raccolta di Java content Moderator per eseguire attività di moderazione. Successivamente, scopri di più sulla moderazione delle immagini o di altri media leggendo una guida concettuale.
Introduzione alla libreria client di Azure Content Moderator per Python. Seguire questa procedura 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 contenuti potenzialmente offensivi, rischiosi o altrimenti indesiderati. Usare il servizio di moderazione del contenuto basato su intelligenza artificiale per analizzare testo, immagine e video e applicare automaticamente i flag di contenuto. Creare software di filtro del contenuto nell'app per rispettare 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 di immagini personalizzato
documentazione di Reference | Codice sorgente della libreria | Package (PiPy) | Samples
Prerequisiti
- sottoscrizione Azure - Crearne una gratuitamente
-
Python 3.x
- L'installazione Python deve includere pip. È possibile verificare se pip è installato eseguendo
pip --versionnella riga di comando. Ottieni pip installando l'ultima versione di Python.
- L'installazione Python deve includere pip. È possibile verificare se pip è installato eseguendo
- Una volta in possesso di una sottoscrizione Azure, creare una risorsa di Content Moderator nel portale di Azure per ottenere la chiave e l'endpoint. Attendere la distribuzione e fare clic sul pulsante Vai alla risorsa .
- Sarà necessaria la chiave e l'endpoint dalla risorsa creata 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 e eseguire l'aggiornamento in un secondo momento 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 e aprirlo nell'editor o nell'IDE preferito. Aggiungere quindi le istruzioni seguenti import 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
Vuoi visualizzare l'intero file di codice di avvio rapido contemporaneamente? È possibile trovarla in GitHub, che contiene gli esempi di codice in questa guida introduttiva.
Creare quindi variabili per la posizione e la chiave dell'endpoint della risorsa.
Importante
Passare 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. È possibile trovare la chiave e l'endpoint nella pagina chiave e 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
Ricordarsi di rimuovere la chiave dal codice al termine e non pubblicarla mai pubblicamente. 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 Servizi di Azure AI security.
Modello a oggetti
Le classi seguenti gestiscono alcune delle principali funzionalità della libreria client di Content Moderator 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 l'analisi delle immagini per contenuti per adulti, informazioni personali o visi umani. |
| TextModerationOperations | Questa classe fornisce la funzionalità per l'analisi del testo per la lingua, il contenuto volgare, gli errori e le informazioni personali. |
Esempi di codice
Questi frammenti di codice illustrano 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 di immagini personalizzato
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 tua 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 Content Moderator per analizzare un corpo di testo e stampare i risultati nella console. Crea una cartella text_files/ alla radice del tuo progetto e aggiungi un file content_moderator_text_moderation.txt. Aggiungere testo personalizzato a 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, gestire i singoli termini e visualizzare altri corpi di testo su di esso.
Ottenere testo di esempio
Per usare questo esempio, è necessario creare una cartella text_files/ nella radice del progetto e aggiungere un filecontent_moderator_term_list.txt . Questo file deve contenere testo organico che verrà controllato rispetto all'elenco dei 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")
Creare un elenco
Aggiungere il codice seguente allo script di 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 nell'elenco
È possibile usare l'ID elenco per restituire tutti i termini nell'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)
Confronta il testo sullo schermo con l'elenco
La funzionalità principale dell'elenco dei 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 un elenco di tutti i relativi termini.
#
# 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 un 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 utilizza un client Content Moderator, insieme a un oggetto ImageModerationOperations, per analizzare le immagini alla ricerca di contenuti per adulti e provocanti.
Ottenere 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 scorrere le immagini. Il resto del codice in questa sezione verrà inserito all'interno di questo ciclo.
for image_url in IMAGE_LIST:
print("\nEvaluate image {}".format(image_url))
Verificare la presenza di contenuto per adulti/audace
Il codice seguente controlla l'immagine dall'URL specificato per contenuti per adulti o provocanti e stampa i risultati sulla console. Per informazioni sul significato di questi termini, vedere la guida ai concetti relativi alla moderazione delle 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 controlla l'immagine per verificare la presenza di contenuto di testo visibile 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 volti
Il codice seguente controlla l'immagine per i visi umani 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 di immagini personalizzato
Il codice seguente illustra come gestire un elenco personalizzato di immagini per la moderazione delle immagini. 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, gestire le singole immagini nell'elenco e confrontare 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 appropriato, ma un elenco informale di immagini che verranno aggiunte nella add images sezione 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 altrove nello 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
Recuperare immagini nella lista
Il codice seguente stampa i nomi di tutte le immagini nell'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 visualizzare 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)
Trova la corrispondenza delle 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 un elemento dall'elenco. In questo caso, si tratta di un'immagine che non corrisponde alla categoria di 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 un elenco di immagini.
#
# 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 un determinato 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 python comando nel file di avvio rapido.
python quickstart-file.py
Pulire le risorse
Se si vuole pulire e rimuovere una sottoscrizione Servizi di Azure AI, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse elimina anche tutte le altre risorse associate.
Passaggi successivi
In questa guida introduttiva si è appreso come usare la raccolta di Python content Moderator per eseguire attività di moderazione. Successivamente, scopri di più sulla moderazione delle immagini o di altri media leggendo una guida concettuale.
Introduzione all'API REST di Content Moderator Azure.
Content Moderator è un servizio di intelligenza artificiale che consente di gestire contenuti potenzialmente offensivi, rischiosi o altrimenti indesiderati. Usare il servizio di moderazione del contenuto basato su intelligenza artificiale per analizzare testo, immagine e video e applicare automaticamente i flag di contenuto. Creare software di filtro del contenuto nell'app per rispettare le normative o mantenere l'ambiente previsto per gli utenti.
Usare l'API REST di Content Moderator per:
- Moderare il testo
- Moderare le immagini
Prerequisiti
- sottoscrizione Azure - Crearne una gratuitamente
- Dopo aver creato la sottoscrizione Azure, creare una risorsa di Content Moderator nel portale di Azure per ottenere la chiave e l'endpoint. Attendere la distribuzione e fare clic sul pulsante Vai alla risorsa .
- Sarà necessaria la chiave e l'endpoint dalla risorsa creata 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 e eseguire l'aggiornamento in un secondo momento a un livello a pagamento per la produzione.
- PowerShell versione 6.0+o un'applicazione della riga di comando simile.
Moderare il testo
Si userà 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:
- Assegna
Ocp-Apim-Subscription-Keyalla tua chiave di sottoscrizione valida di Face.Importante
Ricordarsi di rimuovere la chiave dal codice al termine e non pubblicarla mai pubblicamente. 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 Servizi di Azure AI security.
- Modificare la prima parte dell'URL della query in modo che corrisponda all'endpoint corrispondente alla chiave di sottoscrizione.
Nota
Le nuove risorse create dopo il 1° luglio 2019 useranno nomi di sottodomini personalizzati. Per ulteriori informazioni e un elenco completo degli endpoint regionali, vedere Nomi di sottodomini personalizzati per gli strumenti Foundry.
- Facoltativamente, modificare il corpo della richiesta in 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. Per 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 ulteriori informazioni sugli attributi di testo che Content Moderator analizza, consultare la guida Concetti di moderazione del testo.
Moderare le immagini
Si userà 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:
- Assegna
Ocp-Apim-Subscription-Keyalla tua chiave di sottoscrizione valida di Face. - Modificare la prima parte dell'URL della query in modo che corrisponda all'endpoint corrispondente 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 le immagini locali passando i dati dei byte nel corpo della richiesta. Per informazioni su come eseguire questa operazione, 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 delle immagini 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 che vengono esaminati da Content Moderator, vedere la guida ai concetti relativi alla moderazione delle immagini.
Pulire le risorse
Se si vuole pulire e rimuovere una sottoscrizione Servizi di Azure AI, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse elimina anche tutte le altre risorse associate.
Passaggi successivi
In questa guida introduttiva si è appreso come usare l'API REST di Content Moderator per eseguire attività di moderazione. Successivamente, scopri di più sulla moderazione delle immagini o di altri media leggendo una guida concettuale.