Guia de início rápido: usar a biblioteca de cliente do Content Moderator

Importante

O Azure Content Moderator foi preterido a partir de fevereiro de 2024 e será desativado até fevereiro de 2027. Ele é substituído pelo Azure AI Content Safety, que oferece recursos avançados de IA e desempenho aprimorado.

O Azure AI Content Safety é uma solução abrangente projetada para detetar conteúdo prejudicial gerado pelo usuário e gerado por IA em aplicativos e serviços. O Azure AI Content Safety é adequado para muitos cenários, como mercados online, empresas de jogos, plataformas de mensagens sociais, empresas de mídia corporativa e provedores de soluções educacionais K-12. Aqui está uma visão geral de seus recursos e capacidades:

  • APIs de deteção de texto e imagem: analise texto e imagens em busca de conteúdo sexual, violência, ódio e automutilação com vários níveis de gravidade.
  • Content Safety Studio: Uma ferramenta on-line projetada para lidar com conteúdo potencialmente ofensivo, arriscado ou indesejável usando nossos modelos mais recentes de ML de moderação de conteúdo. Ele fornece modelos e fluxos de trabalho personalizados que permitem que os usuários criem seus próprios sistemas de moderação de conteúdo.
  • Suporte a idiomas: o Azure AI Content Safety dá suporte a mais de 100 idiomas e é treinado especificamente em inglês, alemão, japonês, espanhol, francês, italiano, português e chinês.

O Azure AI Content Safety fornece uma solução robusta e flexível para as suas necessidades de moderação de conteúdo. Ao mudar do Moderador de Conteúdo para o Azure AI Content Safety, pode tirar partido das ferramentas e tecnologias mais recentes para garantir que o seu conteúdo é sempre moderado de acordo com as suas especificações exatas.

Saiba mais sobre a Segurança de Conteúdo de IA do Azure e explore como ela pode elevar sua estratégia de moderação de conteúdo.

Introdução à biblioteca de cliente do Azure Content Moderator para .NET. Siga estas etapas para instalar o pacote NuGet e experimente o código de exemplo para tarefas básicas.

O Moderador de Conteúdo é um serviço de IA que permite lidar com conteúdo potencialmente ofensivo, arriscado ou indesejável. Use o serviço de moderação de conteúdo alimentado por IA para digitalizar texto, imagem e vídeos e aplicar sinalizadores de conteúdo automaticamente. Crie software de filtragem de conteúdo em seu aplicativo para cumprir as regulamentações ou manter o ambiente pretendido para seus usuários.

Use a biblioteca de cliente do Content Moderator para .NET para:

  • Moderar texto
  • Moderar imagens

Documentação | de referência Pacote de código-fonte | da biblioteca (NuGet)Amostras |

Pré-requisitos

  • Subscrição do Azure - Criar uma gratuitamente
  • O IDE do Visual Studio ou a versão atual do .NET Core.
  • Depois de ter sua assinatura do Azure, crie um recurso do Content Moderator no portal do Azure para obter sua chave e ponto de extremidade. Aguarde a implantação e clique no botão Ir para recurso.
    • Você precisará da chave e do ponto de extremidade do recurso criado para conectar seu aplicativo ao Content Moderator. Você colará sua chave e ponto de extremidade no código abaixo mais adiante no início rápido.
    • Você pode usar o nível de preço gratuito (F0) para experimentar o serviço e atualizar posteriormente para um nível pago para produção.

Configuração

Criar um novo aplicativo C#

Usando o Visual Studio, crie um novo aplicativo .NET Core.

Instalar a biblioteca de cliente

Depois de criar um novo projeto, instale a biblioteca de cliente clicando com o botão direito do mouse na solução do projeto no Gerenciador de Soluções e selecionando Gerenciar Pacotes NuGet. No gestor de pacotes que abre, selecione Procurar, marque a caixa Incluir pré-lançamento e procure Microsoft.Azure.CognitiveServices.ContentModerator. Selecione a versão 2.0.0 e, em seguida, Instalar.

Gorjeta

Quer ver todo o ficheiro de código do início rápido de uma vez? Pode encontrá-lo no GitHub, que contém os exemplos de código deste início rápido.

No diretório do projeto, abra o arquivo Program.cs em seu editor ou IDE preferido. Adicione as seguintes instruções 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;

Na classe Program, crie variáveis para a chave e o ponto de extremidade do seu recurso.

Importante

Aceda ao portal do Azure. Se o recurso Moderador de Conteúdo criado na seção Pré-requisitos for implantado com êxito, clique no botão Ir para Recurso em Próximas etapas. Você pode encontrar sua chave e ponto de extremidade na página de chave e ponto de extremidade do recurso, em Gerenciamento 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

Lembre-se de remover a chave do seu código quando terminar e nunca publicá-la publicamente. Para produção, use uma maneira segura de armazenar e acessar suas credenciais, como o Azure Key Vault. Consulte o artigo de segurança dos serviços de IA do Azure para obter mais informações.

No método do main() aplicativo, adicione chamadas para os métodos usados neste início rápido. Você irá criá-los mais tarde.

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

As classes a seguir manipulam alguns dos principais recursos da biblioteca de cliente .NET do Content Moderator.

Nome Descrição
ContentModeratorClient Esta classe é necessária para todas as funcionalidades do Content Moderator. Você o instancia com suas informações de assinatura e o usa para produzir instâncias de outras classes.
ImagemModeração Esta classe fornece a funcionalidade para analisar imagens para conteúdo adulto, informações pessoais ou rostos humanos.
Moderação de texto Esta classe fornece a funcionalidade para analisar o texto em busca de linguagem, palavrões, erros e informações pessoais.

Exemplos de código

Esses trechos de código mostram como executar as seguintes tarefas com a biblioteca de cliente do Content Moderator para .NET:

Autenticar o cliente

Em um novo método, instancie objetos de cliente com seu ponto de extremidade e chave.

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

    return client;
}

Moderar texto

O código a seguir usa um cliente Content Moderator para analisar um corpo de texto e imprimir os resultados no console. Na raiz da classe Program , defina os arquivos de entrada e saída:

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

Em seguida, na raiz do seu projeto, adicione um arquivo TextFile.txt . Adicione seu próprio texto a este arquivo ou use o seguinte texto de exemplo:

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

Em seguida, defina o método de moderação de texto em algum lugar na sua 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();
}

Moderar imagens

O código a seguir usa um cliente Content Moderator, juntamente com um objeto ImageModeration , para analisar imagens remotas para conteúdo adulto e racista.

Nota

Você também pode analisar o conteúdo de uma imagem local. Consulte a documentação de referência para métodos e operações que funcionam com imagens locais.

Obter imagens de exemplo

Defina seus arquivos de entrada e saída na raiz da sua 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";

Em seguida, crie o arquivo de entrada, ImageFiles.txt, na raiz do seu projeto. Nesse arquivo, você adiciona as URLs das imagens a serem analisadas — uma URL em cada linha. Você pode usar as seguintes imagens de exemplo:

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

Definir helper class

Adicione a seguinte definição de classe dentro da classe Program . Essa classe interna lidará com os resultados da moderação de imagem.

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

Definir o método de moderação de imagem

O método a seguir itera através das URLs de imagem em um arquivo de texto, cria uma instância EvaluationData e analisa a imagem para conteúdo adulto/racy, texto e rostos humanos. Em seguida, ele adiciona a instância final de EvaluationData a uma lista e grava a lista completa de dados retornados no console.

Iterar através de imagens

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

Analisar conteúdo

Para obter mais informações sobre os atributos de imagem que o Content Moderator seleciona, consulte o Guia de conceitos de moderação de imagem.

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

Gravar resultados de moderação no arquivo

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

Executar a aplicação

Execute o aplicativo clicando no botão Depurar na parte superior da janela do IDE.

Clean up resources (Limpar recursos)

Se quiser limpar e remover uma assinatura de serviços do Azure AI, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele.

Próximos passos

Neste guia de início rápido, você aprendeu a usar a biblioteca .NET do Content Moderator para executar tarefas de moderação. Em seguida, saiba mais sobre a moderação de imagens ou outras mídias lendo um guia conceitual.

Introdução à biblioteca de cliente do Azure Content Moderator para Java. Siga estas etapas para instalar o pacote Maven e experimentar o código de exemplo para tarefas básicas.

O Moderador de Conteúdo é um serviço de IA que permite lidar com conteúdo potencialmente ofensivo, arriscado ou indesejável. Use o serviço de moderação de conteúdo alimentado por IA para digitalizar texto, imagem e vídeos e aplicar sinalizadores de conteúdo automaticamente. Crie software de filtragem de conteúdo em seu aplicativo para cumprir as regulamentações ou manter o ambiente pretendido para seus usuários.

Use a biblioteca de cliente do Content Moderator para Java para:

  • Moderar texto
  • Moderar imagens

Documentação | de referência Código fonte |da biblioteca Artifact (Maven)Samples |

Pré-requisitos

  • Uma assinatura do Azure - Crie uma gratuitamente
  • A versão atual do Java Development Kit (JDK)
  • A ferramenta de compilação Gradle ou outro gerenciador de dependência.
  • Depois de ter sua assinatura do Azure, crie um recurso do Content Moderator no portal do Azure para obter sua chave e ponto de extremidade. Aguarde a implantação e clique no botão Ir para recurso.
    • Você precisará da chave e do ponto de extremidade do recurso criado para conectar seu aplicativo ao Content Moderator. Você colará sua chave e ponto de extremidade no código abaixo mais adiante no início rápido.
    • Você pode usar o nível de preço gratuito (F0) para experimentar o serviço e atualizar posteriormente para um nível pago para produção.

Configuração

Criar um novo projeto Gradle

Numa janela de consola (como cmd, PowerShell ou Bash), crie um novo diretório para a sua aplicação e navegue para a mesma.

mkdir myapp && cd myapp

Execute o comando a gradle init partir do seu diretório de trabalho. Este comando criará arquivos de compilação essenciais para o Gradle, incluindo build.gradle.kts, que é usado em tempo de execução para criar e configurar seu aplicativo.

gradle init --type basic

Quando solicitado a escolher uma DSL, selecione Kotlin.

Instalar a biblioteca de cliente

Encontre build.gradle.kts e abra-o com o seu IDE ou editor de texto preferido. Em seguida, copie na seguinte configuração de compilação. Esta configuração define o projeto como uma aplicação Java cujo ponto de entrada é a classe ContentModeratorQuickstart. Ele importa a biblioteca de cliente do Content Moderator e o sdk GSON para serialização 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")
}

Criar um arquivo Java

No diretório de trabalho, execute o seguinte comando para criar uma pasta de origem do projeto:

mkdir -p src/main/java

Navegue até a nova pasta e crie um arquivo chamado ContentModeratorQuickstart.java. Abra-o em seu editor ou IDE preferido e adicione as seguintes import instruções:

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

Gorjeta

Quer ver todo o ficheiro de código do início rápido de uma vez? Pode encontrá-lo no GitHub, que contém os exemplos de código deste início rápido.

Na classe ContentModeratorQuickstart do aplicativo, crie variáveis para a chave e o ponto de extremidade do recurso.

Importante

Aceda ao portal do Azure. Se o recurso Moderador de Conteúdo criado na seção Pré-requisitos for implantado com êxito, clique no botão Ir para Recurso em Próximas etapas. Você pode encontrar sua chave e ponto de extremidade na página de chave e ponto de extremidade do recurso, em Gerenciamento de recursos.

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

Importante

Lembre-se de remover a chave do seu código quando terminar e nunca publicá-la publicamente. Para produção, use uma maneira segura de armazenar e acessar suas credenciais, como o Azure Key Vault. Consulte o artigo de segurança dos serviços de IA do Azure para obter mais informações.

No método principal do aplicativo, adicione chamadas para os métodos usados neste início rápido. Você definirá esses métodos mais tarde.

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

As classes a seguir lidam com alguns dos principais recursos da biblioteca de cliente Java do Content Moderator.

Nome Descrição
ContentModeratorClient Esta classe é necessária para todas as funcionalidades do Content Moderator. Você o instancia com suas informações de assinatura e o usa para produzir instâncias de outras classes.
ImagemModeração Esta classe fornece a funcionalidade para analisar imagens para conteúdo adulto, informações pessoais ou rostos humanos.
TextoModeração Esta classe fornece a funcionalidade para analisar o texto em busca de linguagem, palavrões, erros e informações pessoais.

Exemplos de código

Esses trechos de código mostram como executar as seguintes tarefas com a biblioteca de cliente do Content Moderator para Java:

Autenticar o cliente

No método do aplicativo, crie um objeto ContentModeratorClient usando o valor do ponto de extremidade da assinatura e a chave da main assinatura.

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

Moderar texto

Configurar texto de exemplo

Na parte superior da classe ContentModeratorQuickstart, defina uma referência a um arquivo de texto local. Adicione um arquivo .txt ao diretório do projeto e insira o texto que deseja analisar.

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

Analisar texto

Crie um novo método que leia o arquivo .txt e chame o método screenText em cada linha.

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

Adicione o seguinte código para imprimir os resultados da moderação em um arquivo .json no diretório do projeto.

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

Feche a try instrução e catch para concluir o método.

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

Moderar imagens

Configurar imagem de exemplo

Em um novo método, construa um objeto BodyModelModel com uma determinada cadeia de caracteres de URL que aponte para uma imagem.

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

Definir helper class

Em seguida, no arquivo ContentModeratorQuickstart.java , adicione a seguinte definição de classe dentro da classe ContentModeratorQuickstart . Esta classe interna é usada no processo de moderação de imagem.

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

Analisar conteúdo

Esta linha de código verifica a imagem no URL fornecido para conteúdo adulto ou racista. Consulte o Guia conceitual de moderação de imagem para obter informações sobre estes termos.

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

Verificar se há texto

Esta linha de código verifica a imagem em busca de texto visível.

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

Verifique se há rostos

Esta linha de código verifica a imagem em busca de rostos humanos.

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

Finalmente, armazene as informações retornadas na EvaluationData lista.

resultsList.add(imageData);

Após o while loop, adicione o seguinte código, que imprime os resultados no console e em um arquivo de saída, 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();

Feche a try instrução e adicione uma catch instrução para concluir o método.

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

Executar a aplicação

Você pode criar o aplicativo com:

gradle build

Execute o aplicativo com o gradle run comando:

gradle run

Em seguida, navegue até o arquivo src/main/resources/ModerationOutput.json e visualize os resultados da moderação de conteúdo.

Clean up resources (Limpar recursos)

Se quiser limpar e remover uma assinatura de serviços do Azure AI, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele.

Próximos passos

Neste início rápido, você aprendeu como usar a biblioteca Java do Content Moderator para executar tarefas de moderação. Em seguida, saiba mais sobre a moderação de imagens ou outras mídias lendo um guia conceitual.

Introdução à biblioteca de cliente do Azure Content Moderator para Python. Siga estas etapas para instalar o pacote PiPy e experimente o código de exemplo para tarefas básicas.

O Moderador de Conteúdo é um serviço de IA que permite lidar com conteúdo potencialmente ofensivo, arriscado ou indesejável. Use o serviço de moderação de conteúdo alimentado por IA para digitalizar texto, imagem e vídeos e aplicar sinalizadores de conteúdo automaticamente. Crie software de filtragem de conteúdo em seu aplicativo para cumprir as regulamentações ou manter o ambiente pretendido para seus usuários.

Use a biblioteca de cliente do Content Moderator para Python para:

  • Moderar texto
  • Usar uma lista de termos personalizada
  • Moderar imagens
  • Usar uma lista de imagens personalizadas

Documentação | de referência Pacote de código-fonte | da biblioteca (PiPy)Amostras |

Pré-requisitos

  • Subscrição do Azure - Criar uma gratuitamente
  • Python 3.x
    • Sua instalação do Python deve incluir pip. Você pode verificar se você tem pip instalado executando pip --version na linha de comando. Obtenha pip instalando a versão mais recente do Python.
  • Depois de ter sua assinatura do Azure, crie um recurso do Content Moderator no portal do Azure para obter sua chave e ponto de extremidade. Aguarde a implantação e clique no botão Ir para recurso.
    • Você precisará da chave e do ponto de extremidade do recurso criado para conectar seu aplicativo ao Content Moderator. Você colará sua chave e ponto de extremidade no código abaixo mais adiante no início rápido.
    • Você pode usar o nível de preço gratuito (F0) para experimentar o serviço e atualizar posteriormente para um nível pago para produção.

Configuração

Instalar a biblioteca de cliente

Depois de instalar o Python, você pode instalar a biblioteca de cliente do Content Moderator com o seguinte comando:

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

Criar uma aplicação Python nova

Crie um novo script Python e abra-o no seu editor ou IDE preferido. Em seguida, adicione as seguintes import instruções à parte superior do arquivo.

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

Gorjeta

Quer ver todo o ficheiro de código do início rápido de uma vez? Pode encontrá-lo no GitHub, que contém os exemplos de código deste início rápido.

Em seguida, crie variáveis para a localização e a chave do ponto de extremidade do seu recurso.

Importante

Aceda ao portal do Azure. Se o recurso Moderador de Conteúdo criado na seção Pré-requisitos for implantado com êxito, clique no botão Ir para Recurso em Próximas etapas. Você pode encontrar sua chave e ponto de extremidade na página de chave e ponto de extremidade do recurso, em Gerenciamento de recursos.

CONTENT_MODERATOR_ENDPOINT = "PASTE_YOUR_CONTENT_MODERATOR_ENDPOINT_HERE"
subscription_key = "PASTE_YOUR_CONTENT_MODERATOR_SUBSCRIPTION_KEY_HERE"

Importante

Lembre-se de remover a chave do seu código quando terminar e nunca publicá-la publicamente. Para produção, use uma maneira segura de armazenar e acessar suas credenciais, como o Azure Key Vault. Consulte o artigo de segurança dos serviços de IA do Azure para obter mais informações.

Modelo de objeto

As classes a seguir lidam com alguns dos principais recursos da biblioteca de cliente Python do Content Moderator.

Nome Descrição
ContentModeratorClient Esta classe é necessária para todas as funcionalidades do Content Moderator. Você o instancia com suas informações de assinatura e o usa para produzir instâncias de outras classes.
ImageModerationOperations Esta classe fornece a funcionalidade para analisar imagens para conteúdo adulto, informações pessoais ou rostos humanos.
TextModerationOperations Esta classe fornece a funcionalidade para analisar o texto em busca de linguagem, palavrões, erros e informações pessoais.

Exemplos de código

Esses trechos de código mostram como executar as seguintes tarefas com a biblioteca de cliente do Content Moderator para Python:

Autenticar o cliente

Instancie um cliente com seu ponto de extremidade e chave. Crie um objeto CognitiveServicesCredentials](/python/api/msrest/msrest.authentication.cognitiveservicescredentials com sua chave e use-o com seu ponto de extremidade para criar um objeto ContentModeratorClient .

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

Moderar texto

O código a seguir usa um cliente Content Moderator para analisar um corpo de texto e imprimir os resultados no console. Primeiro, crie uma pasta text_files/ na raiz do seu projeto e adicione um arquivo content_moderator_text_moderation.txt . Adicione seu próprio texto a este arquivo ou use o seguinte texto de exemplo:

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

Adicione uma referência à nova pasta.

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

Em seguida, adicione o seguinte código ao seu 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())

Usar uma lista de termos personalizada

O código a seguir mostra como gerenciar uma lista de termos personalizados para moderação de texto. Você pode usar a classe ListManagementTermListsOperations para criar uma lista de termos, gerenciar os termos individuais e exibir outros corpos de texto em relação a ela.

Obter texto de exemplo

Para usar este exemplo, você deve criar uma pasta text_files/ na raiz do seu projeto e adicionar um arquivo content_moderator_term_list.txt . Este ficheiro deve conter texto orgânico que será verificado em relação à lista de termos. Você pode usar o seguinte texto de exemplo:

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

Adicione uma referência à pasta se ainda não tiver definido uma.

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

Criar uma lista

Adicione o seguinte código ao seu script Python para criar uma lista de termos personalizada e salvar seu valor de 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

Definir detalhes da lista

Você pode usar o ID de uma lista para editar seu nome e descrição.

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

Adicionar um termo à lista

O código a seguir adiciona os termos "term1" e "term2" à 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"
)

Obter todos os termos na lista

Você pode usar o ID da lista para retornar todos os termos da 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())

Atualizar o índice da lista

Sempre que adicionar ou remover termos da lista, tem de atualizar o índice antes de poder utilizar a lista atualizada.

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

Texto da tela na lista

A principal funcionalidade da lista de termos personalizados é comparar um corpo de texto com a lista e descobrir se há termos correspondentes.

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

Remover um termo de uma lista

O código a seguir remove o termo "term1" da 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"
)

Remover todos os termos de uma lista

Use o código a seguir para limpar uma lista de todos os seus termos.

#
# 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 uma lista

Use o código a seguir para excluir uma lista de termos personalizada.

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

Moderar imagens

O código a seguir usa um cliente Content Moderator, juntamente com um objeto ImageModerationOperations , para analisar imagens para conteúdo adulto e racista.

Obter imagens de exemplo

Defina uma referência a algumas imagens para analisar.

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

Em seguida, adicione o seguinte código para iterar através de suas imagens. O resto do código nesta seção irá dentro deste loop.

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

Verificar se há conteúdo adulto/racista

O código a seguir verifica a imagem no URL fornecido para conteúdo adulto ou racista e imprime os resultados no console. Consulte o guia de conceitos de moderação de imagem para obter informações sobre o significado desses termos.

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

Verificar se há texto visível

O código a seguir verifica a imagem em busca de conteúdo de texto visível e imprime os resultados no 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())

Verifique se há rostos

O código a seguir verifica a imagem em busca de rostos humanos e imprime os resultados no 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())

Usar uma lista de imagens personalizadas

O código a seguir mostra como gerenciar uma lista personalizada de imagens para moderação de imagem. Esse recurso é útil se sua plataforma receber frequentemente instâncias do mesmo conjunto de imagens que você deseja excluir. Ao manter uma lista dessas imagens específicas, você pode melhorar o desempenho. A classe ListManagementImageListsOperations permite criar uma lista de imagens, gerenciar as imagens individuais na lista e comparar outras imagens com ela.

Crie as seguintes variáveis de texto para armazenar as URLs de imagem que você usará nesse cenário.

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 não é a lista adequada em si, mas uma lista informal de imagens que serão adicionadas na add images seção do código.

Criar uma lista de imagens

Adicione o seguinte código para criar uma lista de imagens e salvar uma referência ao seu 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

Adicionar imagens a uma lista

O código a seguir adiciona todas as suas imagens à 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 a função auxiliar add_images em outro lugar do 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

Obter imagens na lista

O código a seguir imprime os nomes de todas as imagens da sua 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())

Atualizar detalhes da lista

Você pode usar o ID da lista para atualizar o nome e a descrição da 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())

Obter detalhes da lista

Use o código a seguir para imprimir os detalhes atuais da sua 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())

Atualizar o índice da lista

Depois de adicionar ou remover imagens, você deve atualizar o índice da lista antes de poder usá-lo para filtrar outras imagens.

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

Fazer corresponder imagens à lista

A principal função das listas de imagens é comparar novas imagens e ver se há alguma correspondência.

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

Remover uma imagem da lista

O código a seguir remove um item da lista. Neste caso, é uma imagem que não corresponde à categoria da 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]
)

Remover todas as imagens de uma lista

Use o código a seguir para limpar uma lista de imagens.

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

Excluir a lista de imagens

Use o código a seguir para excluir uma determinada lista de imagens.

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

Executar a aplicação

Execute a aplicação com o comando python no seu ficheiro de início rápido.

python quickstart-file.py

Clean up resources (Limpar recursos)

Se quiser limpar e remover uma assinatura de serviços do Azure AI, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele.

Próximos passos

Neste início rápido, você aprendeu como usar a biblioteca Python do Content Moderator para executar tarefas de moderação. Em seguida, saiba mais sobre a moderação de imagens ou outras mídias lendo um guia conceitual.

Introdução à API REST do Azure Content Moderator.

O Moderador de Conteúdo é um serviço de IA que permite lidar com conteúdo potencialmente ofensivo, arriscado ou indesejável. Use o serviço de moderação de conteúdo alimentado por IA para digitalizar texto, imagem e vídeos e aplicar sinalizadores de conteúdo automaticamente. Crie software de filtragem de conteúdo em seu aplicativo para cumprir as regulamentações ou manter o ambiente pretendido para seus usuários.

Use a API REST do Content Moderator para:

  • Moderar texto
  • Moderar imagens

Pré-requisitos

  • Subscrição do Azure - Criar uma gratuitamente
  • Depois de ter sua assinatura do Azure, crie um recurso do Content Moderator no portal do Azure para obter sua chave e ponto de extremidade. Aguarde a implantação e clique no botão Ir para recurso.
    • Você precisará da chave e do ponto de extremidade do recurso criado para conectar seu aplicativo ao Content Moderator. Você colará sua chave e ponto de extremidade no código abaixo mais adiante no início rápido.
    • Você pode usar o nível de preço gratuito (F0) para experimentar o serviço e atualizar posteriormente para um nível pago para produção.
  • PowerShell versão 6.0+ ou um aplicativo de linha de comando semelhante.

Moderar texto

Você usará um comando como o seguinte para chamar a API do Content Moderator para analisar um corpo de texto e imprimir os resultados no 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"

Copie o comando para um editor de texto e faça as seguintes alterações:

  1. Atribua Ocp-Apim-Subscription-Key à sua chave de subscrição Face válida.

    Importante

    Lembre-se de remover a chave do seu código quando terminar e nunca publicá-la publicamente. Para produção, use uma maneira segura de armazenar e acessar suas credenciais, como o Azure Key Vault. Consulte o artigo de segurança dos serviços de IA do Azure para obter mais informações.

  2. Altere a primeira parte do URL de consulta para corresponder ao ponto de extremidade que corresponde à sua chave de subscrição.

    Nota

    Novos recursos criados após 1º de julho de 2019 usarão nomes de subdomínio personalizados. Para obter mais informações e uma lista completa de pontos de extremidade regionais, consulte Nomes de subdomínio personalizados para serviços de IA do Azure.

  3. Opcionalmente, altere o corpo da solicitação para qualquer cadeia de caracteres de texto que você queira analisar.

Depois de fazer as alterações, abra um prompt de comando e digite o novo comando.

Examinar os resultados

Você deve ver os resultados da moderação de texto exibidos como dados JSON na janela do console. Por exemplo:

{
  "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 obter mais informações sobre os atributos de texto para os quais o Moderador de Conteúdo seleciona, consulte o Guia de conceitos de moderação de texto.

Moderar imagens

Você usará um comando como o seguinte para chamar a API do Content Moderator para moderar uma imagem remota e imprimir os resultados no 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\"}"

Copie o comando para um editor de texto e faça as seguintes alterações:

  1. Atribua Ocp-Apim-Subscription-Key à sua chave de subscrição Face válida.
  2. Altere a primeira parte do URL de consulta para corresponder ao ponto de extremidade que corresponde à sua chave de subscrição.
  3. Opcionalmente, altere o "Value" URL no corpo da solicitação para qualquer imagem remota que você queira moderar.

Gorjeta

Você também pode moderar imagens locais passando seus dados de byte para o corpo da solicitação. Consulte a documentação de referência para saber como fazer isso.

Depois de fazer as alterações, abra um prompt de comando e digite o novo comando.

Examinar os resultados

Você deve ver os resultados da moderação de imagem exibidos como dados JSON na janela do 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>"
}

Para obter mais informações sobre os atributos de imagem que o Content Moderator seleciona, consulte o Guia de conceitos de moderação de imagem.

Clean up resources (Limpar recursos)

Se quiser limpar e remover uma assinatura de serviços do Azure AI, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele.

Próximos passos

Neste guia de início rápido, você aprendeu como usar a API REST do Content Moderator para executar tarefas de moderação. Em seguida, saiba mais sobre a moderação de imagens ou outras mídias lendo um guia conceitual.