Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
Azure Content Moderator está en desuso a partir de febrero de 2024 y se retirará el 15 de marzo de 2027. Se reemplaza por Seguridad del contenido de Azure AI, que ofrece características avanzadas de inteligencia artificial y rendimiento mejorado.
Seguridad del contenido de Azure AI es una solución completa diseñada para detectar contenido generado por el usuario y generado por ia perjudicial en aplicaciones y servicios. Seguridad del contenido de Azure AI es adecuado para muchos escenarios, como marketplaces en línea, empresas de juegos, plataformas de mensajería social, empresas de medios empresariales y proveedores de soluciones de educación K-12. Esta es una introducción a sus características y funcionalidades:
- API de detección de texto e imágenes: examina texto e imágenes de contenido sexual, violencia, odio y auto-daño con varios niveles de gravedad.
- Content Safety Studio: una herramienta en línea diseñada para controlar contenido potencialmente ofensivo, arriesgado o no deseado mediante nuestros modelos de ML de moderación de contenido más recientes. Proporciona plantillas y flujos de trabajo personalizados que permiten a los usuarios crear sus propios sistemas de moderación de contenido.
- Language support: Seguridad del contenido de Azure AI admite más de 100 idiomas y está específicamente entrenado en inglés, alemán, japonés, español, francés, italiano, portugués y chino.
Seguridad del contenido de Azure AI proporciona una solución sólida y flexible para sus necesidades de moderación de contenido. Al cambiar de Content Moderator a Seguridad del contenido de Azure AI, puede aprovechar las herramientas y tecnologías más recientes para asegurarse de que el contenido siempre esté moderado a sus especificaciones exactas.
Learn más sobre Seguridad del contenido de Azure AI y explore cómo puede elevar la estrategia de moderación de contenido.
Introducción a la biblioteca cliente de Azure Content Moderator para .NET. Siga estos pasos para instalar el paquete NuGet y probar el código de ejemplo para tareas básicas.
Content Moderator es un servicio de inteligencia artificial que permite controlar el contenido que es potencialmente ofensivo, arriesgado o no deseado. Use el servicio de moderación de contenido con tecnología de inteligencia artificial para examinar texto, imagen y vídeos y aplicar marcas de contenido automáticamente. Compile el software de filtrado de contenido en la aplicación para cumplir con las regulaciones o mantener el entorno previsto para los usuarios.
Utilice la biblioteca cliente de Content Moderator para .NET:
- Texto moderado
- Moderación de imágenes
Documentación de referencia | Código fuente de la biblioteca | Paquete (NuGet) | Ejemplos
Requisitos previos
- suscripción a Azure: Crear una gratuita
- La IDE de Visual Studio o la versión actual de .NET Core.
- Una vez que tenga la suscripción de Azure, crear un recurso de Content Moderator en el portal de Azure para obtener la clave y el punto de conexión. Espere a que se implemente y haga clic en el botón Ir al recurso .
- Necesitará la clave y el punto de conexión del recurso que cree para conectar la aplicación a Content Moderator. Pegará la clave y el punto de conexión en el código siguiente más adelante en el inicio rápido.
- Puede usar el plan de tarifa gratis (
F0) para probar el servicio y actualizarlo más adelante a un nivel de pago para producción.
Configuración
Creación de una nueva aplicación de C#
Con Visual Studio, cree una nueva aplicación .NET Core.
Instalación de la biblioteca cliente
Una vez que haya creado un nuevo proyecto, instale la biblioteca cliente haciendo clic con el botón derecho en la solución del proyecto en la Explorador de soluciones y seleccionando Administrar paquetes NuGet. En el administrador de paquetes que abre seleccione Browse, active Include prerelease y busque Microsoft.Azure.CognitiveServices.ContentModerator. Seleccione versión 2.0.0y, a continuación, Instalar.
Propina
¿Desea ver todo el archivo de código de inicio rápido a la vez? Puede encontrarlo en GitHub, que contiene los ejemplos de código de este inicio rápido.
En el directorio del proyecto, abra el archivo Program.cs en el editor o IDE que prefiera. Agregue las siguientes using declaraciones:
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;
En la clase Program , cree variables para la clave y el punto de conexión del recurso.
Importante
Vaya al portal de Azure. Si el recurso de Content Moderator que creó en la sección Requisitos previos se implementó correctamente, haga clic en el botón Ir al recurso en Pasos siguientes. Puede encontrar la clave y el punto de conexión en la página clave y punto de conexión del recurso, en Administración de recursos.
// 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
Recuerde quitar la clave del código cuando haya terminado y nunca publicarla públicamente. Para producción, use una forma segura de almacenar y acceder a sus credenciales, como Azure Key Vault. Consulte el artículo Servicios de Azure AI security para obtener más información.
En el método de main() la aplicación, agregue llamadas a los métodos usados en este inicio rápido. Los crearás más adelante.
// 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);
Modelo de objetos
Las siguientes clases controlan algunas de las características principales de la biblioteca cliente de Content Moderator .NET.
| Nombre | Descripción |
|---|---|
| ContentModeratorClient | Esta clase es necesaria para toda la funcionalidad de Content Moderator. Instancias el objeto con la información de tu suscripción y lo usas para producir instancias de otras clases. |
| ImageModeration | Esta clase proporciona la funcionalidad para analizar imágenes de contenido para adultos, información personal o caras humanas. |
| TextModeration | Esta clase ofrece la funcionalidad para analizar texto en cuanto a idioma, profanidad, errores e información personal. |
Ejemplos de código
Estos fragmentos de código muestran cómo realizar las siguientes tareas con la biblioteca cliente de Content Moderator para .NET:
Autenticación del cliente
Mediante un nuevo método, cree una instancia de objetos cliente con su punto de conexión y clave.
public static ContentModeratorClient Authenticate(string key, string endpoint)
{
ContentModeratorClient client = new ContentModeratorClient(new ApiKeyServiceClientCredentials(key));
client.Endpoint = endpoint;
return client;
}
Texto moderado
El código siguiente usa un cliente de Content Moderator para analizar un cuerpo de texto e imprimir los resultados en la consola. En la raíz de la clase Program , defina los archivos de entrada y salida:
// 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";
A continuación, en la raíz del proyecto, agregue un archivo TextFile.txt . Agregue su propio texto a este archivo o use el siguiente texto de ejemplo:
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
A continuación, defina el método de moderación de texto en algún lugar de la clase 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();
}
Moderación de imágenes
El código siguiente usa un cliente de Content Moderator, junto con un objeto ImageModeration, para examinar imágenes remotas en busca de contenido para adultos y picante.
Nota
También puede analizar el contenido de una imagen local. Consulte la documentación de referencia de métodos y operaciones que funcionan con imágenes locales.
Obtención de imágenes de ejemplo
Defina los archivos de entrada y salida en la raíz de la clase 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";
A continuación, cree el archivo de entrada, ImageFiles.txt, en la raíz del proyecto. En este archivo, agregará las direcciones URL de las imágenes para analizar: una dirección URL en cada línea. Puede usar las siguientes imágenes de ejemplo:
https://moderatorsampleimages.blob.core.windows.net/samples/sample2.jpg
https://moderatorsampleimages.blob.core.windows.net/samples/sample5.png
Definición de la clase auxiliar
Agregue la siguiente definición de clase dentro de la clase Program . Esta clase interna gestionará los resultados de moderación de imágenes.
// 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;
}
Definición del método de moderación de imágenes
El siguiente método recorre en iteración las direcciones URL de la imagen de un archivo de texto, crea una instancia evaluationData y analiza la imagen para el contenido para adultos o racy, el texto y las caras humanas. A continuación, agrega la instancia final evaluationData a una lista y escribe la lista completa de datos devueltos en la consola.
Recorrer en iteración imágenes
/*
* 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());
Análisis de contenido
Para obtener más información sobre los atributos de imagen que analiza el moderador de contenido, consulte la guía Conceptos de moderación de imágenes.
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);
}
}
}
Escribir resultados de moderación en el archivo
// 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();
}
}
Ejecución de la aplicación
Ejecute la aplicación haciendo clic en el botón Depurar de la parte superior de la ventana del IDE.
Limpieza de recursos
Si desea limpiar y quitar una suscripción de Servicios de Azure AI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos también se eliminan los demás recursos asociados.
Pasos siguientes
En este inicio rápido, ha aprendido a usar la biblioteca de .NET de Content Moderator para realizar tareas de moderación. A continuación, obtenga más información sobre la moderación de imágenes u otros medios leyendo una guía conceptual.
Introducción a la biblioteca cliente de Azure Content Moderator para Java. Siga estos pasos para instalar el paquete de Maven y probar el código de ejemplo para tareas básicas.
Content Moderator es un servicio de inteligencia artificial que permite controlar el contenido que es potencialmente ofensivo, arriesgado o no deseado. Use el servicio de moderación de contenido con tecnología de inteligencia artificial para examinar texto, imagen y vídeos y aplicar marcas de contenido automáticamente. Compile el software de filtrado de contenido en la aplicación para cumplir con las regulaciones o mantener el entorno previsto para los usuarios.
Use la biblioteca cliente de Content Moderator para Java para:
- Texto moderado
- Moderación de imágenes
Documentación de referencia | Código fuente de la biblioteca |Artifact (Maven) | Ejemplos
Requisitos previos
- Una suscripción Azure: Crear una gratuita
- La versión actual del kit de desarrollo de Java (JDK)
- La herramienta de compilación de Gradle u otro administrador de dependencias.
- Una vez que tenga la suscripción de Azure, crear un recurso de Content Moderator en el portal de Azure para obtener la clave y el punto de conexión. Espere a que se implemente y haga clic en el botón Ir al recurso .
- Necesitará la clave y el punto de conexión del recurso que cree para conectar la aplicación a Content Moderator. Pegará la clave y el punto de conexión en el código siguiente más adelante en el inicio rápido.
- Puede usar el plan de tarifa gratis (
F0) para probar el servicio y actualizarlo más adelante a un nivel de pago para producción.
Configuración
Creación de un nuevo proyecto de Gradle
En una ventana de consola (como cmd, PowerShell o Bash), cree un directorio para la aplicación y vaya a ella.
mkdir myapp && cd myapp
Ejecute el comando desde el gradle init directorio de trabajo. Este comando creará archivos de compilación esenciales para Gradle, incluido build.gradle.kts, que se usa en tiempo de ejecución para crear y configurar la aplicación.
gradle init --type basic
Cuando se le pida que elija un DSL, seleccione Kotlin.
Instalación de la biblioteca cliente
Busque build.gradle.kts y ábralo con su IDE o editor de texto preferidos. A continuación, copie la siguiente configuración de compilación. Esta configuración define el proyecto como una aplicación de Java cuyo punto de entrada es la clase ContentModeratorQuickstart. Importa la biblioteca cliente de Content Moderator y el sdk de GSON para la serialización 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")
}
Creación de un archivo de Java
En el directorio de trabajo, ejecute el siguiente comando para crear una carpeta de origen del proyecto:
mkdir -p src/main/java
Vaya a la nueva carpeta y cree un archivo denominado ContentModeratorQuickstart.java. Ábrelo en el editor o IDE de tu preferencia y añade las siguientes instrucciones 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.*;
Propina
¿Desea ver todo el archivo de código de inicio rápido a la vez? Puede encontrarlo en GitHub, que contiene los ejemplos de código de este inicio rápido.
En la clase ContentModeratorQuickstart de la aplicación, cree variables para la clave y el punto de conexión del recurso.
Importante
Vaya al portal de Azure. Si el recurso de Content Moderator que creó en la sección Requisitos previos se implementó correctamente, haga clic en el botón Ir al recurso en Pasos siguientes. Puede encontrar la clave y el punto de conexión en la página clave y punto de conexión del recurso, en Administración de recursos.
private static final String subscriptionKey = "<your-subscription-key>";
private static final String endpoint = "<your-api-endpoint>";
Importante
Recuerde quitar la clave del código cuando haya terminado y nunca publicarla públicamente. Para producción, use una forma segura de almacenar y acceder a sus credenciales, como Azure Key Vault. Consulte el artículo Servicios de Azure AI security para obtener más información.
En el método principal de la aplicación, agregue llamadas a los métodos usados en este inicio rápido. Definirá estos métodos más adelante.
// 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);
Modelo de objetos
Las siguientes clases manejan algunas de las características principales de la biblioteca cliente de Content Moderator Java.
| Nombre | Descripción |
|---|---|
| ContentModeratorClient | Esta clase es necesaria para toda la funcionalidad de Content Moderator. Instancias el objeto con la información de tu suscripción y lo usas para producir instancias de otras clases. |
| ImageModeration | Esta clase proporciona la funcionalidad para analizar imágenes de contenido para adultos, información personal o caras humanas. |
| TextModerations | Esta clase ofrece la funcionalidad para analizar texto en cuanto a idioma, profanidad, errores e información personal. |
Ejemplos de código
Estos fragmentos de código muestran cómo realizar las siguientes tareas con la biblioteca cliente de Content Moderator para Java:
Autenticación del cliente
En el método main de la aplicación, cree un objeto ContentModeratorClient utilizando el valor del punto de conexión de suscripción y la clave de suscripción.
// 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");
Texto moderado
Configura el texto de ejemplo
En la parte superior de la clase ContentModeratorQuickstart , defina una referencia a un archivo de texto local. Agregue un archivo .txt al directorio del proyecto y escriba el texto que desea analizar.
// TEXT MODERATION variable
private static File textFile = new File("src\\main\\resources\\TextModeration.txt");
Análisis de texto
Cree un nuevo método que lea el archivo .txt y llame al método screenText en cada línea.
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());
}
}
Imprimir resultados de moderación de texto
Agregue el código siguiente para imprimir los resultados de moderación en un archivo .json en el directorio del proyecto.
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();
Cierre la instrucción try y catch para completar el método .
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
Moderación de imágenes
Configuración de la imagen de ejemplo
En un nuevo método, construya un objeto BodyModelModel con una cadena de dirección URL determinada que apunte a una imagen.
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();
Definición de la clase auxiliar
A continuación, en el archivo ContentModeratorQuickstart.java , agregue la siguiente definición de clase dentro de la clase ContentModeratorQuickstart . Esta clase interna se usa en el proceso de moderación de imágenes.
// 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;
}
Análisis de contenido
Esta línea de código comprueba la imagen en la dirección URL especificada para contenido para adultos o contenido sugerente. Consulte la guía conceptual de moderación de imágenes para obtener información sobre estos términos.
// Evaluate for adult and racy content.
imageData.ImageModeration = client.imageModerations().evaluateUrlInput("application/json", url,
new EvaluateUrlInputOptionalParameter().withCacheImage(true));
Thread.sleep(1000);
Comprobar texto
Esta línea de código comprueba la imagen para ver el texto visible.
// Detect and extract text from image.
imageData.TextDetection = client.imageModerations().oCRUrlInput("eng", "application/json", url,
new OCRUrlInputOptionalParameter().withCacheImage(true));
Thread.sleep(1000);
Comprobar la presencia de caras
Esta línea de código comprueba la imagen de caras humanas.
// Detect faces.
imageData.FaceDetection = client.imageModerations().findFacesUrlInput("application/json", url,
new FindFacesUrlInputOptionalParameter().withCacheImage(true));
Thread.sleep(1000);
Por último, almacene la información devuelta en la EvaluationData lista.
resultsList.add(imageData);
Imprimir resultados
Después del while bucle, agregue el código siguiente, que imprime los resultados en la consola y en un archivo de salida, 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();
Cierre la try instrucción y agregue una catch instrucción para completar el método .
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
Ejecución de la aplicación
Puede compilar la aplicación con:
gradle build
Ejecute la aplicación con el gradle run comando :
gradle run
A continuación, vaya al archivo src/main/resources/ModerationOutput.json y vea los resultados de la moderación de contenido.
Limpieza de recursos
Si desea limpiar y quitar una suscripción de Servicios de Azure AI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos también se eliminan los demás recursos asociados.
Pasos siguientes
En este inicio rápido, ha aprendido a usar la biblioteca de Java content Moderator para realizar tareas de moderación. A continuación, obtenga más información sobre la moderación de imágenes u otros medios leyendo una guía conceptual.
Introducción a la biblioteca cliente de Azure Content Moderator para Python. Siga estos pasos para instalar el paquete PiPy y probar el código de ejemplo para tareas básicas.
Content Moderator es un servicio de inteligencia artificial que permite controlar el contenido que es potencialmente ofensivo, arriesgado o no deseado. Use el servicio de moderación de contenido con tecnología de inteligencia artificial para examinar texto, imagen y vídeos y aplicar marcas de contenido automáticamente. Compile el software de filtrado de contenido en la aplicación para cumplir con las regulaciones o mantener el entorno previsto para los usuarios.
Use la biblioteca cliente de Content Moderator para Python:
- Texto moderado
- Usar una lista de términos personalizados
- Moderación de imágenes
- Uso de una lista de imágenes personalizada
Documentación de referencia | Código fuente de la biblioteca | Paquete (PiPy) | Ejemplos
Requisitos previos
- suscripción a Azure: Crear una gratuita
-
Python 3.x
- La instalación de Python debe incluir pip. Puede comprobar si ha instalado pip mediante la ejecución
pip --versionen la línea de comandos. Obtenga pip instalando la versión más reciente de Python.
- La instalación de Python debe incluir pip. Puede comprobar si ha instalado pip mediante la ejecución
- Una vez que tenga la suscripción de Azure, crear un recurso de Content Moderator en el portal de Azure para obtener la clave y el punto de conexión. Espere a que se implemente y haga clic en el botón Ir al recurso .
- Necesitará la clave y el punto de conexión del recurso que cree para conectar la aplicación a Content Moderator. Pegará la clave y el punto de conexión en el código siguiente más adelante en el inicio rápido.
- Puede usar el plan de tarifa gratis (
F0) para probar el servicio y actualizarlo más adelante a un nivel de pago para producción.
Configuración
Instalación de la biblioteca cliente
Después de instalar Python, puede instalar la biblioteca cliente de Content Moderator con el siguiente comando:
pip install --upgrade azure-cognitiveservices-vision-contentmoderator
Creación de una nueva aplicación de Python
Cree un nuevo script de Python y ábralo en el editor o IDE que prefiera. A continuación, agregue las siguientes import instrucciones a la parte superior del archivo.
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
Propina
¿Desea ver todo el archivo de código de inicio rápido a la vez? Puede encontrarlo en GitHub, que contiene los ejemplos de código de este inicio rápido.
A continuación, cree variables para la ubicación y la clave del punto de conexión del recurso.
Importante
Vaya al portal de Azure. Si el recurso de Content Moderator que creó en la sección Requisitos previos se implementó correctamente, haga clic en el botón Ir al recurso en Pasos siguientes. Puede encontrar la clave y el punto de conexión en la página clave y punto de conexión del recurso, en Administración de recursos.
CONTENT_MODERATOR_ENDPOINT = "PASTE_YOUR_CONTENT_MODERATOR_ENDPOINT_HERE"
subscription_key = "PASTE_YOUR_CONTENT_MODERATOR_SUBSCRIPTION_KEY_HERE"
Importante
Recuerde quitar la clave del código cuando haya terminado y nunca publicarla públicamente. Para producción, use una forma segura de almacenar y acceder a sus credenciales, como Azure Key Vault. Consulte el artículo Servicios de Azure AI security para obtener más información.
Modelo de objetos
Las siguientes clases gestionan algunas de las características principales de la biblioteca cliente de Content Moderator para Python.
| Nombre | Descripción |
|---|---|
| ContentModeratorClient | Esta clase es necesaria para toda la funcionalidad de Content Moderator. Instancias el objeto con la información de tu suscripción y lo usas para producir instancias de otras clases. |
| ImageModerationOperations | Esta clase proporciona la funcionalidad para analizar imágenes de contenido para adultos, información personal o caras humanas. |
| TextModerationOperations | Esta clase ofrece la funcionalidad para analizar texto en cuanto a idioma, profanidad, errores e información personal. |
Ejemplos de código
Estos fragmentos de código muestran cómo realizar las siguientes tareas con la biblioteca cliente de Content Moderator para Python:
- Autenticación del cliente
- Texto moderado
- Usar una lista de términos personalizados
- Moderación de imágenes
- Uso de una lista de imágenes personalizada
Autenticación del cliente
Cree una instancia de un cliente con el punto de conexión y la clave. Cree un objeto [CognitiveServicesCredentials](/python/api/msrest/msrest.authentication.cognitiveservicescredentials) con su clave y úselo con el punto de conexión para crear un objeto ContentModeratorClient.
client = ContentModeratorClient(
endpoint=CONTENT_MODERATOR_ENDPOINT,
credentials=CognitiveServicesCredentials(subscription_key)
)
Texto moderado
El código siguiente usa un cliente de Content Moderator para analizar un cuerpo de texto e imprimir los resultados en la consola. En primer lugar, cree una carpeta text_files/ en la raíz del proyecto y agregue un archivo content_moderator_text_moderation.txt . Agregue su propio texto a este archivo o use el siguiente texto de ejemplo:
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
Agregue una referencia a la nueva carpeta.
TEXT_FOLDER = os.path.join(os.path.dirname(
os.path.realpath(__file__)), "text_files")
A continuación, agregue el código siguiente al script de 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())
Usar una lista de términos personalizados
En el código siguiente se muestra cómo administrar una lista de términos personalizados para la moderación de texto. Puede usar la clase ListManagementTermListsOperations para crear una lista de términos, administrar los términos individuales y filtrar otros cuerpos de texto contra ella.
Obtener texto de ejemplo
Para usar este ejemplo, debe crear una carpeta text_files/ en la raíz del proyecto y agregar un archivo content_moderator_term_list.txt . Este archivo debe contener texto orgánico que se comprobará con la lista de términos. Puede usar el siguiente texto de ejemplo:
This text contains the terms "term1" and "term2".
Agregue una referencia a la carpeta si aún no ha definido una.
TEXT_FOLDER = os.path.join(os.path.dirname(
os.path.realpath(__file__)), "text_files")
Crear una lista
Agregue el código siguiente al script de Python para crear una lista de términos personalizados y guardar su valor de identificador.
#
# 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
Definición de los detalles de la lista
Puede usar el identificador de una lista para editar su nombre y descripción.
#
# 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())
Agregar un término a la lista
El código siguiente agrega los términos "term1" y "term2" a la lista.
#
# 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"
)
Obtener todos los términos de la lista
Puede usar el identificador de lista para devolver todos los términos de la lista.
#
# 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())
Actualizar el índice de lista
Siempre que agregue o quite términos de la lista, debe actualizar el índice para poder usar la lista actualizada.
#
# 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)
Comparar el texto de pantalla con la lista
La funcionalidad principal de la lista de términos personalizados es comparar un cuerpo de texto con la lista y buscar si hay términos coincidentes.
#
# 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())
Quitar un término de una lista
El código siguiente quita el término "term1" de la lista.
#
# 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"
)
Quitar todos los términos de una lista
Use el código siguiente para borrar una lista de todos sus términos.
#
# 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")
Eliminar una lista
Use el código siguiente para eliminar una lista de términos personalizados.
#
# Delete list
#
print("\nDelete the term list {}".format(list_id))
client.list_management_term_lists.delete(list_id=list_id)
Moderación de imágenes
En el código siguiente se usa un cliente de Content Moderator, junto con un objeto ImageModerationOperations , para analizar imágenes para contenido adulto y racia.
Obtención de imágenes de ejemplo
Defina una referencia a algunas imágenes que se van a analizar.
IMAGE_LIST = [
"https://moderatorsampleimages.blob.core.windows.net/samples/sample2.jpg",
"https://moderatorsampleimages.blob.core.windows.net/samples/sample5.png"
]
A continuación, agregue el código siguiente para recorrer en iteración las imágenes. El resto del código de esta sección irá dentro de este bucle.
for image_url in IMAGE_LIST:
print("\nEvaluate image {}".format(image_url))
Buscar contenido para adultos o contenido atrevido
El siguiente código comprueba la imagen en la URL dada para detectar contenido de adultos o atrevido y muestra los resultados en la consola. Consulte la guía conceptos de moderación de imágenes para obtener información sobre lo que significan estos términos.
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())
Comprobar texto visible
El código siguiente comprueba la imagen para ver el contenido de texto visible e imprime los resultados en la consola.
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())
Comprobar la presencia de caras
El código siguiente comprueba la imagen de caras humanas e imprime los resultados en la consola.
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())
Uso de una lista de imágenes personalizada
En el código siguiente se muestra cómo administrar una lista personalizada de imágenes para la moderación de imágenes. Esta característica es útil si la plataforma recibe con frecuencia instancias del mismo conjunto de imágenes que desea filtrar. Al mantener una lista de estas imágenes específicas, puede mejorar el rendimiento. La clase ListManagementImageListsOperations permite crear una lista de imágenes, administrar las imágenes individuales de la lista y comparar otras imágenes con ella.
Cree las siguientes variables de texto para almacenar las direcciones URL de imagen que usará en este escenario.
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
Esta no es la propia lista adecuada, sino una lista informal de imágenes que se agregarán en la add images sección del código.
Crear una lista de imágenes
Agregue el código siguiente para crear una lista de imágenes y guardar una referencia a su identificador.
#
# 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
Agregar imágenes a una lista
El código siguiente agrega todas las imágenes a la lista.
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
Defina la función auxiliar de add_images en otro lugar del 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
Obtener imágenes en la lista
El código siguiente imprime los nombres de todas las imágenes de la lista.
#
# 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())
Actualizar detalles de la lista
Puede usar el identificador de lista para actualizar el nombre y la descripción de la lista.
#
# 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())
Obtener detalles de la lista
Use el código siguiente para imprimir los detalles actuales de la lista.
#
# 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())
Actualizar el índice de lista
Después de agregar o quitar imágenes, debe actualizar el índice de lista para poder usarlo para mostrar otras imágenes.
#
# 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)
Coincidencia de imágenes con la lista
La función principal de las listas de imágenes es comparar nuevas imágenes y ver si hay coincidencias.
#
# 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())
Quitar una imagen de la lista
El código siguiente quita un elemento de la lista. En este caso, es una imagen que no coincide con la categoría de lista.
#
# 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]
)
Quitar todas las imágenes de una lista
Use el código siguiente para borrar una lista de imágenes.
#
# 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)
Eliminación de la lista de imágenes
Use el código siguiente para eliminar una lista de imágenes determinada.
#
# Delete list
#
print("\nDelete the image list {}".format(list_id))
client.list_management_image_lists.delete(list_id=list_id)
Ejecución de la aplicación
Ejecute la aplicación con el comando python en su archivo de inicio rápido.
python quickstart-file.py
Limpieza de recursos
Si desea limpiar y quitar una suscripción de Servicios de Azure AI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos también se eliminan los demás recursos asociados.
Pasos siguientes
En este inicio rápido, ha aprendido a usar la biblioteca de Python content Moderator para realizar tareas de moderación. A continuación, obtenga más información sobre la moderación de imágenes u otros medios leyendo una guía conceptual.
Comienza con la API REST de Azure Content Moderator.
Content Moderator es un servicio de inteligencia artificial que permite controlar el contenido que es potencialmente ofensivo, arriesgado o no deseado. Use el servicio de moderación de contenido con tecnología de inteligencia artificial para examinar texto, imagen y vídeos y aplicar marcas de contenido automáticamente. Compile el software de filtrado de contenido en la aplicación para cumplir con las regulaciones o mantener el entorno previsto para los usuarios.
Utilice la API REST de Content Moderator para:
- Texto moderado
- Moderación de imágenes
Requisitos previos
- suscripción a Azure: Crear una gratuita
- Una vez que tenga la suscripción de Azure, crear un recurso de Content Moderator en el portal de Azure para obtener la clave y el punto de conexión. Espere a que se implemente y haga clic en el botón Ir al recurso .
- Necesitará la clave y el punto de conexión del recurso que cree para conectar la aplicación a Content Moderator. Pegará la clave y el punto de conexión en el código siguiente más adelante en el inicio rápido.
- Puede usar el plan de tarifa gratis (
F0) para probar el servicio y actualizarlo más adelante a un nivel de pago para producción.
- PowerShell versión 6.0 o posterior, o una aplicación de línea de comandos similar.
Texto moderado
Usará un comando similar al siguiente para llamar a Content Moderator API para analizar un cuerpo de texto e imprimir los resultados en la consola.
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"
Copie el comando en un editor de texto y realice los cambios siguientes:
- Asigne
Ocp-Apim-Subscription-Keya la clave válida de suscripción de Face.Importante
Recuerde quitar la clave del código cuando haya terminado y nunca publicarla públicamente. Para producción, use una forma segura de almacenar y acceder a sus credenciales, como Azure Key Vault. Consulte el artículo Servicios de Azure AI security para obtener más información.
- Cambie la primera parte de la dirección URL de consulta para que coincida con el punto de conexión que corresponde a la clave de suscripción.
Nota
Los nuevos recursos creados después del 1 de julio de 2019 usarán nombres de subdominios personalizados. Para obtener más información y una lista completa de puntos de conexión regionales, consulte Nombres de subdominios personalizados para Las herramientas de Foundry.
- Opcionalmente, cambie el cuerpo de la solicitud a cualquier cadena de texto que desee analizar.
Una vez realizados los cambios, abra una terminal de comandos e introduzca el nuevo comando.
Examen de los resultados
Debería ver los resultados de moderación de texto que se muestran como datos JSON en la ventana de la consola. Por ejemplo:
{
"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"
}
Para obtener más información sobre los atributos de texto que analiza Content Moderator, consulte la guía Conceptos de moderación de texto.
Moderación de imágenes
Usará un comando como el siguiente para llamar a Content Moderator API para moderar una imagen remota e imprimir los resultados en la consola.
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\"}"
Copie el comando en un editor de texto y realice los cambios siguientes:
- Asigne
Ocp-Apim-Subscription-Keya la clave válida de suscripción de Face. - Cambie la primera parte de la dirección URL de consulta para que coincida con el punto de conexión que corresponde a la clave de suscripción.
- Opcionalmente, cambie la
"Value"dirección URL del cuerpo de la solicitud a cualquier imagen remota que quiera moderar.
Propina
También puede moderar las imágenes locales pasando sus datos binarios en el cuerpo de la solicitud. Consulte la documentación de referencia para obtener información sobre cómo hacerlo.
Una vez realizados los cambios, abra una terminal de comandos e introduzca el nuevo comando.
Examen de los resultados
Debería ver los resultados de moderación de imágenes que se muestran como datos JSON en la ventana de la consola.
{
"AdultClassificationScore": x.xxx,
"IsImageAdultClassified": <Bool>,
"RacyClassificationScore": x.xxx,
"IsImageRacyClassified": <Bool>,
"AdvancedInfo": [],
"Result": false,
"Status": {
"Code": 3000,
"Description": "OK",
"Exception": null
},
"TrackingId": "<Request Tracking Id>"
}
Para obtener más información sobre los atributos de imagen que analiza el moderador de contenido, consulte la guía Conceptos de moderación de imágenes.
Limpieza de recursos
Si desea limpiar y quitar una suscripción de Servicios de Azure AI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos también se eliminan los demás recursos asociados.
Pasos siguientes
En este inicio rápido, ha aprendido a usar la API REST de Content Moderator para realizar tareas de moderación. A continuación, obtenga más información sobre la moderación de imágenes u otros medios leyendo una guía conceptual.