Rychlý start: Použití klientské knihovny Content Moderatoru

Důležité

Azure Content Moderator je v únoru 2024 zastaralý a do února 2027 bude vyřazený. Nahrazuje se obsahem Azure AI Sejf ty, který nabízí pokročilé funkce AI a vyšší výkon.

Azure AI Content Sejf ty je komplexní řešení navržené k detekci škodlivého uživatelem generovaného a generovaného obsahu AI v aplikacích a službách. Obsah Azure AI Sejf ty je vhodný pro celou řadu scénářů, jako jsou online marketplace, herní společnosti, platformy sociálních zpráv, podnikové mediální společnosti a poskytovatelé řešení pro vzdělávání K-12. Tady je přehled jeho funkcí a možností:

  • Rozhraní API pro rozpoznávání textu a obrázků: Prohledávat text a obrázky pro sexuální obsah, násilí, nenávist a sebepoškozování s několika úrovněmi závažnosti.
  • Content Sejf ty Studio: Online nástroj navržený pro zpracování potenciálně urážlivého, rizikového nebo nežádoucího obsahu pomocí našich nejnovějších modelů strojového učení režim stanu ration. Poskytuje šablony a přizpůsobené pracovní postupy, které uživatelům umožňují vytvářet vlastní systémy kon režim stanu ration.
  • Podpora jazyků: Azure AI Content Sejf ty podporuje více než 100 jazyků a je speciálně natrénovaný v angličtině, němčině, japonštině, španělštině, francouzštině, italštině, portugalštině a čínštině.

Azure AI Content Sejf ty poskytuje robustní a flexibilní řešení pro potřeby kon režim stanu race. Přepnutím z Content Moderatoru na obsah Azure AI Sejf ty můžete využít nejnovější nástroje a technologie, abyste zajistili, že se váš obsah bude vždy moderovat podle vašich přesných specifikací.

Přečtěte si další informace o obsahu Azure AI Sejf ty a zjistěte, jak může zvýšit úroveň strategie kon režim stanu ration.

Začínáme s klientskou knihovnou Azure Content Moderatoru pro .NET Podle těchto kroků nainstalujte balíček NuGet a vyzkoušejte ukázkový kód pro základní úlohy.

Content Moderator je služba umělé inteligence, která umožňuje zpracovávat obsah, který je potenciálně urážlivý, rizikový nebo jinak nežádoucí. Pomocí služby AI kon režim stanu ration můžete kontrolovat text, obrázek a videa a automaticky používat příznaky obsahu. Sestavte software pro filtrování obsahu do vaší aplikace tak, aby vyhovoval předpisům nebo udržoval zamýšlené prostředí pro vaše uživatele.

Pomocí klientské knihovny Content Moderatoru pro .NET můžete:

  • Moderování textu
  • Moderování obrázků

Referenční dokumentace | – ukázky balíčku zdrojového kódu | knihovny (NuGet) |

Požadavky

  • Předplatné Azure: Můžete si ho vytvořit zdarma.
  • Integrované vývojové prostředí sady Visual Studio nebo aktuální verze .NET Core.
  • Jakmile budete mít předplatné Azure, vytvořte na webu Azure Portal prostředek Content Moderator, abyste získali klíč a koncový bod. Počkejte, až se nasazení nasadí, a klikněte na tlačítko Přejít k prostředku .
    • K připojení aplikace k Content Moderatoru budete potřebovat klíč a koncový bod z prostředku, který vytvoříte. Klíč a koncový bod vložíte do kódu níže v rychlém startu.
    • K vyzkoušení služby můžete použít cenovou úroveňF0 Free a později upgradovat na placenou úroveň pro produkční prostředí.

Nastavení

Vytvoření nové aplikace jazyka C#

Pomocí sady Visual Studio vytvořte novou aplikaci .NET Core.

Instalace klientské knihovny

Po vytvoření nového projektu nainstalujte klientskou knihovnu tak, že v Průzkumník řešení kliknete pravým tlačítkem na řešení projektu a vyberete Spravovat balíčky NuGet. Ve správci balíčků, který se otevře, vyberte Procházet, zaškrtněte políčko Zahrnout předběžné verze a vyhledejte Microsoft.Azure.CognitiveServices.ContentModerator. Vyberte verzi 2.0.0 a pak vyberte Nainstalovat.

Tip

Chcete zobrazit celý soubor s kódem rychlého startu najednou? Soubor s příklady kódu v tomto rychlém startu najdete na GitHubu.

V adresáři projektu otevřete soubor Program.cs v preferovaném editoru nebo integrovaném vývojovém prostředí (IDE). Přidejte následující příkazy 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;

Ve třídě Program vytvořte proměnné pro klíč a koncový bod vašeho prostředku.

Důležité

Přejděte na Azure Portal. Pokud se prostředek Content Moderatoru, který jste vytvořili v části Požadavky, úspěšně nasadil, klikněte v části Další kroky na tlačítko Přejít k prostředku. Klíč a koncový bod najdete na stránce klíče a koncového bodu prostředku v části Správa prostředků.

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

Důležité

Nezapomeňte klíč z kódu odebrat, až to budete hotovi, a nikdy ho veřejně neposílejte. V produkčním prostředí použijte bezpečný způsob ukládání přihlašovacích údajů a přístupu k vašim přihlašovacím údajům, jako je Azure Key Vault. Další informace najdete v článku zabezpečení služeb Azure AI.

V metodě aplikace main() přidejte volání metod použitých v tomto rychlém startu. Tyto hodnoty vytvoříte později.

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

Objektový model

Následující třídy zpracovávají některé z hlavních funkcí klientské knihovny Content Moderator .NET.

Název Popis
ContentModeratorClient Tato třída je nutná pro všechny funkce Content Moderatoru. Vytvoříte instanci s informacemi o předplatném a použijete je k vytváření instancí jiných tříd.
ImageModeration Tato třída poskytuje funkce pro analýzu obrázků pro obsah pro dospělé, osobní údaje nebo lidské tváře.
TextModeration Tato třída poskytuje funkce pro analýzu textu pro jazyk, vulgární výrazy, chyby a osobní údaje.

Příklady kódu

Tyto fragmenty kódu ukazují, jak provádět následující úlohy s klientskou knihovnou Content Moderatoru pro .NET:

Ověření klienta

V nové metodě vytvořte instanci klientských objektů pomocí koncového bodu a klíče.

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

    return client;
}

Moderování textu

Následující kód používá klienta Content Moderatoru k analýze textu a tisku výsledků do konzoly. V kořenovém adresáři třídy Program definujte vstupní a výstupní soubory:

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

Potom v kořenovém adresáři projektu přidejte soubor TextFile.txt . Přidejte do tohoto souboru vlastní text nebo použijte následující ukázkový text:

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

Pak definujte metodu moderování textu někde ve třídě 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();
}

Moderování obrázků

Následující kód používá klienta Content Moderatoru spolu s objektem ImageModeration k analýze vzdálených obrázků pro obsah pro dospělé araci.

Poznámka:

Můžete také analyzovat obsah místního obrázku. V referenční dokumentaci najdete metody a operace, které pracují s místními imagemi.

Získání ukázkových obrázků

Definujte vstupní a výstupní soubory v kořenovém adresáři třídy 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";

Potom v kořenovém adresáři projektu vytvořte vstupní soubor ImageFiles.txt. V tomto souboru přidáte adresy URL obrázků k analýze – jednu adresu URL na každém řádku. Můžete použít následující ukázkové obrázky:

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

Definování pomocné třídy

Do třídy Program přidejte následující definici třídy. Tato vnitřní třída zpracuje výsledky moderování obrázků.

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

Definování metody moderování obrázků

Následující metoda iteruje adresy URL obrázků v textovém souboru, vytvoří instanci EvaluationData a analyzuje obrázek pro obsah pro dospělé/raci, text a lidské tváře. Pak přidá konečnou instanci EvaluationData do seznamu a zapíše úplný seznam vrácených dat do konzoly.

Iterace pomocí obrázků

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

Analýza obsahu

Další informace o atributech obrázků, pro které jsou obrazovky Content Moderatoru, najdete v průvodci koncepty moderování obrázků.

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

Výsledky moderování zápisu do souboru

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

Spuštění aplikace

Spusťte aplikaci kliknutím na tlačítko Ladit v horní části okna integrovaného vývojového prostředí ( IDE).

Vyčištění prostředků

Pokud chcete vyčistit a odebrat předplatné služeb Azure AI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.

Další kroky

V tomto rychlém startu jste zjistili, jak pomocí knihovny Content Moderator .NET provádět úlohy moderování. Další informace o moderování obrázků nebo jiných médií najdete v koncepční příručce.

Začínáme s klientskou knihovnou Azure Content Moderatoru pro Javu Podle těchto kroků nainstalujte balíček Maven a vyzkoušejte ukázkový kód pro základní úlohy.

Content Moderator je služba umělé inteligence, která umožňuje zpracovávat obsah, který je potenciálně urážlivý, rizikový nebo jinak nežádoucí. Pomocí služby AI kon režim stanu ration můžete kontrolovat text, obrázek a videa a automaticky používat příznaky obsahu. Sestavte software pro filtrování obsahu do vaší aplikace tak, aby vyhovoval předpisům nebo udržoval zamýšlené prostředí pro vaše uživatele.

Pomocí klientské knihovny Content Moderatoru pro Javu můžete:

  • Moderování textu
  • Moderování obrázků

Referenční dokumentace | – ukázky artefaktu zdrojového kódu |knihovny (Maven) |

Požadavky

  • Předplatné Azure – Vytvoření předplatného zdarma
  • Aktuální verze sady Java Development Kit (JDK)
  • Nástroj sestavení Gradle nebo jiný správce závislostí.
  • Jakmile budete mít předplatné Azure, vytvořte na webu Azure Portal prostředek Content Moderator, abyste získali klíč a koncový bod. Počkejte, až se nasazení nasadí, a klikněte na tlačítko Přejít k prostředku .
    • K připojení aplikace k Content Moderatoru budete potřebovat klíč a koncový bod z prostředku, který vytvoříte. Klíč a koncový bod vložíte do kódu níže v rychlém startu.
    • K vyzkoušení služby můžete použít cenovou úroveňF0 Free a později upgradovat na placenou úroveň pro produkční prostředí.

Nastavení

Vytvoření nového projektu Gradle

V okně konzoly (například cmd, PowerShell nebo Bash) vytvořte pro vaši aplikaci nový adresář a přejděte do něj.

mkdir myapp && cd myapp

gradle init Spusťte příkaz z pracovního adresáře. Tento příkaz vytvoří základní soubory sestavení pro Gradle, včetně build.gradle.kts, které se používají za běhu k vytvoření a konfiguraci aplikace.

gradle init --type basic

Po zobrazení výzvy k výběru DSL vyberte Kotlin.

Instalace klientské knihovny

Najděte build.gradle.kts a otevřete ho pomocí preferovaného integrovaného vývojového prostředí nebo textového editoru. Pak zkopírujte následující konfiguraci sestavení. Tato konfigurace definuje projekt jako aplikaci Java, jejíž vstupním bodem je třída ContentModeratorQuickstart. Naimportuje klientskou knihovnu Content Moderatoru a sadu SDK GSON pro serializaci 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")
}

Vytvoření souboru Java

Spuštěním následujícího příkazu z pracovního adresáře vytvořte zdrojovou složku projektu:

mkdir -p src/main/java

Přejděte do nové složky a vytvořte soubor s názvem ContentModeratorQuickstart.java. Otevřete ho v preferovaném editoru nebo integrovaném vývojovém prostředí a přidejte následující import příkazy:

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

Tip

Chcete zobrazit celý soubor s kódem rychlého startu najednou? Soubor s příklady kódu v tomto rychlém startu najdete na GitHubu.

Ve třídě ContentModeratorQuickstart aplikace vytvořte proměnné pro klíč a koncový bod vašeho prostředku.

Důležité

Přejděte na Azure Portal. Pokud se prostředek Content Moderatoru, který jste vytvořili v části Požadavky, úspěšně nasadil, klikněte v části Další kroky na tlačítko Přejít k prostředku. Klíč a koncový bod najdete na stránce klíče a koncového bodu prostředku v části Správa prostředků.

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

Důležité

Nezapomeňte klíč z kódu odebrat, až to budete hotovi, a nikdy ho veřejně neposílejte. V produkčním prostředí použijte bezpečný způsob ukládání přihlašovacích údajů a přístupu k vašim přihlašovacím údajům, jako je Azure Key Vault. Další informace najdete v článku zabezpečení služeb Azure AI.

V hlavní metodě aplikace přidejte volání metod použitých v tomto rychlém startu. Tyto metody definujete později.

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

Objektový model

Následující třídy zpracovávají některé z hlavních funkcí klientské knihovny Content Moderator Java.

Název Popis
ContentModeratorClient Tato třída je nutná pro všechny funkce Content Moderatoru. Vytvoříte instanci s informacemi o předplatném a použijete je k vytváření instancí jiných tříd.
ImageModeration Tato třída poskytuje funkce pro analýzu obrázků pro obsah pro dospělé, osobní údaje nebo lidské tváře.
Textovémoderace Tato třída poskytuje funkce pro analýzu textu pro jazyk, vulgární výrazy, chyby a osobní údaje.

Příklady kódu

Tyto fragmenty kódu ukazují, jak provádět následující úlohy s klientskou knihovnou Content Moderatoru pro Javu:

Ověření klienta

V metodě aplikace main vytvořte objekt ContentModeratorClient pomocí hodnoty koncového bodu předplatného a klíče předplatného.

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

Moderování textu

Nastavení ukázkového textu

V horní části třídy ContentModeratorQuickstart definujte odkaz na místní textový soubor. Přidejte do adresáře projektu .txt soubor a zadejte text, který chcete analyzovat.

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

Analýza textu

Vytvořte novou metodu, která na každém řádku čte .txt soubor a volá metodu screenText .

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

Přidejte následující kód pro tisk výsledků moderování do souboru .json v adresáři projektu.

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

Zavřete příkaz a catch zavřete try metodu.

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

Moderování obrázků

Nastavení ukázkového obrázku

V nové metodě vytvořte Objekt BodyModelModel s daným řetězcem adresy URL, který odkazuje na obrázek.

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

Definování pomocné třídy

Potom do souboru ContentModeratorQuickstart.java přidejte do třídy ContentModeratorQuickstart následující definici třídy. Tato vnitřní třída se používá v procesu moderování obrázků.

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

Analýza obsahu

Tento řádek kódu zkontroluje obrázek na dané adrese URL pro obsah pro dospělé nebo nevhodný obsah. Informace o těchto termínech najdete v koncepčním průvodci moderováním obrázků.

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

Kontrola textu

Tento řádek kódu zkontroluje, jestli je na obrázku viditelný text.

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

Kontrola tváří

Tento řádek kódu zkontroluje obrázek lidských tváří.

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

Nakonec uložte vrácené informace do EvaluationData seznamu.

resultsList.add(imageData);

Za smyčku while přidejte následující kód, který vypíše výsledky do konzoly a do výstupního souboru 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();

Zavřete try příkaz a přidejte catch příkaz pro dokončení metody.

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

Spuštění aplikace

Aplikaci můžete sestavit pomocí následujících:

gradle build

Spusťte aplikaci pomocí gradle run příkazu:

gradle run

Pak přejděte do souboru src/main/resources/ModerationOutput.json a prohlédněte si výsledky con režim stanu ration.

Vyčištění prostředků

Pokud chcete vyčistit a odebrat předplatné služeb Azure AI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.

Další kroky

V tomto rychlém startu jste se naučili používat knihovnu Content Moderator Java k provádění úloh moderování. Další informace o moderování obrázků nebo jiných médií najdete v koncepční příručce.

Začínáme s klientskou knihovnou Azure Content Moderatoru pro Python Pomocí těchto kroků nainstalujte balíček PiPy a vyzkoušejte ukázkový kód pro základní úlohy.

Content Moderator je služba umělé inteligence, která umožňuje zpracovávat obsah, který je potenciálně urážlivý, rizikový nebo jinak nežádoucí. Pomocí služby AI kon režim stanu ration můžete kontrolovat text, obrázek a videa a automaticky používat příznaky obsahu. Sestavte software pro filtrování obsahu do vaší aplikace tak, aby vyhovoval předpisům nebo udržoval zamýšlené prostředí pro vaše uživatele.

Pomocí klientské knihovny Content Moderatoru pro Python můžete:

  • Moderování textu
  • Použití vlastního seznamu termínů
  • Moderování obrázků
  • Použití vlastního seznamu imagí

Referenční dokumentace | – ukázky balíčku zdrojového kódu | knihovny (PiPy) |

Požadavky

  • Předplatné Azure: Můžete si ho vytvořit zdarma.
  • Python 3.x
    • Vaše instalace Pythonu by měla obsahovat pip. Spuštěním na příkazovém pip --version řádku můžete zkontrolovat, jestli máte nainstalovaný pip. Získejte pip instalací nejnovější verze Pythonu.
  • Jakmile budete mít předplatné Azure, vytvořte na webu Azure Portal prostředek Content Moderator, abyste získali klíč a koncový bod. Počkejte, až se nasazení nasadí, a klikněte na tlačítko Přejít k prostředku .
    • K připojení aplikace k Content Moderatoru budete potřebovat klíč a koncový bod z prostředku, který vytvoříte. Klíč a koncový bod vložíte do kódu níže v rychlém startu.
    • K vyzkoušení služby můžete použít cenovou úroveňF0 Free a později upgradovat na placenou úroveň pro produkční prostředí.

Nastavení

Instalace klientské knihovny

Po instalaci Pythonu můžete klientskou knihovnu Content Moderator nainstalovat pomocí následujícího příkazu:

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

Vytvoření nové aplikace v Pythonu

Vytvořte nový skript Pythonu a otevřete ho v preferovaném editoru nebo integrovaném vývojovém prostředí (IDE). Pak na začátek souboru přidejte následující import příkazy.

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

Tip

Chcete zobrazit celý soubor s kódem rychlého startu najednou? Soubor s příklady kódu v tomto rychlém startu najdete na GitHubu.

Dále vytvořte proměnné pro umístění a klíč koncového bodu vašeho prostředku.

Důležité

Přejděte na Azure Portal. Pokud se prostředek Content Moderatoru, který jste vytvořili v části Požadavky, úspěšně nasadil, klikněte v části Další kroky na tlačítko Přejít k prostředku. Klíč a koncový bod najdete na stránce klíče a koncového bodu prostředku v části Správa prostředků.

CONTENT_MODERATOR_ENDPOINT = "PASTE_YOUR_CONTENT_MODERATOR_ENDPOINT_HERE"
subscription_key = "PASTE_YOUR_CONTENT_MODERATOR_SUBSCRIPTION_KEY_HERE"

Důležité

Nezapomeňte klíč z kódu odebrat, až to budete hotovi, a nikdy ho veřejně neposílejte. V produkčním prostředí použijte bezpečný způsob ukládání přihlašovacích údajů a přístupu k vašim přihlašovacím údajům, jako je Azure Key Vault. Další informace najdete v článku zabezpečení služeb Azure AI.

Objektový model

Následující třídy zpracovávají některé hlavní funkce klientské knihovny Content Moderator Pythonu.

Název Popis
ContentModeratorClient Tato třída je nutná pro všechny funkce Content Moderatoru. Vytvoříte instanci s informacemi o předplatném a použijete je k vytváření instancí jiných tříd.
ImageModerationOperations Tato třída poskytuje funkce pro analýzu obrázků pro obsah pro dospělé, osobní údaje nebo lidské tváře.
TextModerationOperations Tato třída poskytuje funkce pro analýzu textu pro jazyk, vulgární výrazy, chyby a osobní údaje.

Příklady kódu

Tyto fragmenty kódu ukazují, jak provádět následující úlohy s klientskou knihovnou Content Moderatoru pro Python:

Ověření klienta

Vytvořte instanci klienta pomocí koncového bodu a klíče. Vytvořte objekt CognitiveServicesCredentials](/python/api/msrest/msrest.authentication.cognitiveservicescredentials s klíčem a použijte ho s koncovým bodem k vytvoření objektu ContentModeratorClient .

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

Moderování textu

Následující kód používá klienta Content Moderatoru k analýze textu a tisku výsledků do konzoly. Nejprve vytvořte text_files/ složku v kořenovém adresáři projektu a přidejte content_moderator_text_moderation.txt soubor. Přidejte do tohoto souboru vlastní text nebo použijte následující ukázkový text:

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

Přidejte odkaz na novou složku.

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

Pak do skriptu Pythonu přidejte následující kód.

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

Použití vlastního seznamu termínů

Následující kód ukazuje, jak spravovat seznam vlastních termínů pro moderování textu. Pomocí Třídy ListManagementTermListsOperations můžete vytvořit seznam termínů, spravovat jednotlivé termíny a zobrazit další texty textu.

Získání ukázkového textu

Pokud chcete tuto ukázku použít, musíte vytvořit text_files/ složku v kořenovém adresáři projektu a přidat content_moderator_term_list.txt soubor. Tento soubor by měl obsahovat organický text, který bude zkontrolován v seznamu termínů. Můžete použít následující ukázkový text:

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

Pokud jste ho ještě nenadefinili, přidejte do složky odkaz.

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

Vytvořit seznam

Do skriptu Pythonu přidejte následující kód, který vytvoří vlastní seznam termínů a uloží jeho hodnotu 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

Definování podrobností seznamu

POMOCÍ ID seznamu můžete upravit jeho název a popis.

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

Přidání termínu do seznamu

Následující kód přidá termíny "term1" a "term2" do seznamu.

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

Získání všech termínů v seznamu

POMOCÍ ID seznamu můžete vrátit všechny termíny v seznamu.

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

Aktualizace indexu seznamu

Pokaždé, když ze seznamu přidáte nebo odeberete termíny, musíte aktualizovat index, abyste mohli aktualizovaný seznam použít.

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

Screen text against the list

Hlavní funkcí seznamu vlastních termínů je porovnání textu se seznamem a zjištění, jestli existují nějaké odpovídající termíny.

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

Odebrání termínu ze seznamu

Následující kód odebere termín "term1" ze seznamu.

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

Odebrání všech termínů ze seznamu

Pomocí následujícího kódu vymažte seznam všech jeho termínů.

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

Odstranění seznamu

Pomocí následujícího kódu odstraňte vlastní seznam termínů.

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

Moderování obrázků

Následující kód používá klienta Content Moderatoru spolu s objektem ImageModerationOperations k analýze obrázků pro obsah pro dospělé araci.

Získání ukázkových obrázků

Definujte odkaz na některé obrázky, které chcete analyzovat.

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

Potom přidejte následující kód, který iteruje obrázky. Zbytek kódu v této části se přesune do této smyčky.

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

Kontrola obsahu pro dospělé/nevhodného obsahu

Následující kód zkontroluje obrázek na dané adrese URL pro dospělé nebo nevhodný obsah a vytiskne výsledky do konzoly. Informace o tom, co tyto termíny znamenají, najdete v průvodci koncepty moderování obrázků.

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

Kontrola viditelného textu

Následující kód zkontroluje, jestli obrázek obsahuje viditelný textový obsah, a vytiskne výsledky do konzoly.

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

Kontrola tváří

Následující kód zkontroluje obrázek lidských tváří a vytiskne výsledky do konzoly.

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

Použití vlastního seznamu imagí

Následující kód ukazuje, jak spravovat vlastní seznam obrázků pro moderování obrázků. Tato funkce je užitečná, pokud vaše platforma často přijímá instance stejné sady obrázků, které chcete zobrazit. Udržováním seznamu těchto konkrétních imagí můžete zlepšit výkon. Třída ListManagementImageListsOperations umožňuje vytvořit seznam imagí, spravovat jednotlivé image v seznamu a porovnávat ostatní obrázky s ním.

Vytvořte následující textové proměnné pro uložení adres URL obrázků, které použijete v tomto scénáři.

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

Poznámka:

Nejedná se o správný seznam samotný, ale neformální seznam obrázků, který se přidá do add images části kódu.

Vytvoření seznamu imagí

Přidejte následující kód, který vytvoří seznam obrázků a uloží odkaz na jeho 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

Přidání obrázků do seznamu

Následující kód přidá do seznamu všechny vaše obrázky.

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

Definujte funkci pomocné rutiny add_images jinde ve vašem skriptu.

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

Získání obrázků v seznamu

Následující kód vytiskne názvy všech obrázků v seznamu.

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

Aktualizace podrobností seznamu

ID seznamu můžete použít k aktualizaci názvu a popisu seznamu.

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

Získání podrobností o seznamu

K vytištění aktuálních podrobností seznamu použijte následující kód.

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

Aktualizace indexu seznamu

Po přidání nebo odebrání obrázků je nutné aktualizovat index seznamu, abyste ho mohli použít k zobrazení dalších obrázků.

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

Porovnávání obrázků se seznamem

Hlavní funkcí seznamůobrázkůch

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

Odebrání obrázku ze seznamu

Následující kód odebere položku ze seznamu. V tomto případě se jedná o obrázek, který neodpovídá kategorii seznamu.

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

Odebrání všech obrázků ze seznamu

Pomocí následujícího kódu vymažte seznam obrázků.

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

Odstranění seznamu obrázků

K odstranění daného seznamu obrázků použijte následující kód.

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

Spuštění aplikace

Spusťte aplikaci pomocí příkazu python pro soubor rychlého startu.

python quickstart-file.py

Vyčištění prostředků

Pokud chcete vyčistit a odebrat předplatné služeb Azure AI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.

Další kroky

V tomto rychlém startu jste zjistili, jak pomocí knihovny Content Moderator Python provádět úlohy moderování. Další informace o moderování obrázků nebo jiných médií najdete v koncepční příručce.

Začínáme s rozhraním REST API Azure Content Moderatoru

Content Moderator je služba umělé inteligence, která umožňuje zpracovávat obsah, který je potenciálně urážlivý, rizikový nebo jinak nežádoucí. Pomocí služby AI kon režim stanu ration můžete kontrolovat text, obrázek a videa a automaticky používat příznaky obsahu. Sestavte software pro filtrování obsahu do vaší aplikace tak, aby vyhovoval předpisům nebo udržoval zamýšlené prostředí pro vaše uživatele.

Pomocí rozhraní REST API Content Moderatoru můžete:

  • Moderování textu
  • Moderování obrázků

Požadavky

  • Předplatné Azure: Můžete si ho vytvořit zdarma.
  • Jakmile budete mít předplatné Azure, vytvořte na webu Azure Portal prostředek Content Moderator, abyste získali klíč a koncový bod. Počkejte, až se nasazení nasadí, a klikněte na tlačítko Přejít k prostředku .
    • K připojení aplikace k Content Moderatoru budete potřebovat klíč a koncový bod z prostředku, který vytvoříte. Klíč a koncový bod vložíte do kódu níže v rychlém startu.
    • K vyzkoušení služby můžete použít cenovou úroveňF0 Free a později upgradovat na placenou úroveň pro produkční prostředí.
  • PowerShell verze 6.0 nebo podobná aplikace příkazového řádku

Moderování textu

Pomocí následujícího příkazu zavoláte rozhraní API Content Moderatoru k analýze textu a vytištění výsledků do konzoly.

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"

Zkopírujte příkaz do textového editoru a proveďte následující změny:

  1. Přiřaďte Ocp-Apim-Subscription-Key platný klíč předplatného rozpoznávání tváře.

    Důležité

    Nezapomeňte klíč z kódu odebrat, až to budete hotovi, a nikdy ho veřejně neposílejte. V produkčním prostředí použijte bezpečný způsob ukládání přihlašovacích údajů a přístupu k vašim přihlašovacím údajům, jako je Azure Key Vault. Další informace najdete v článku zabezpečení služeb Azure AI.

  2. Změňte první část adresy URL dotazu tak, aby odpovídala koncovému bodu, který odpovídá vašemu klíči předplatného.

    Poznámka:

    Nové prostředky vytvořené po 1. červenci 2019 budou používat vlastní názvy subdomén. Další informace a úplný seznam regionálních koncových bodů najdete v tématu Vlastní subdomény pro služby Azure AI.

  3. Volitelně můžete změnit text požadavku na jakýkoli řetězec textu, který chcete analyzovat.

Po provedení změn otevřete příkazový řádek a zadejte nový příkaz.

Prozkoumání výsledků

Výsledky moderování textu by se měly zobrazit jako data JSON v okně konzoly. Příklad:

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

Další informace o textových atributech, pro které jsou obrazovky Content Moderatoru, najdete v průvodci koncepty moderování textu.

Moderování obrázků

K moderování vzdáleného obrázku a tisku výsledků do konzoly použijete příkaz podobný následujícímu volání rozhraní API Content Moderatoru.

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

Zkopírujte příkaz do textového editoru a proveďte následující změny:

  1. Přiřaďte Ocp-Apim-Subscription-Key platný klíč předplatného rozpoznávání tváře.
  2. Změňte první část adresy URL dotazu tak, aby odpovídala koncovému bodu, který odpovídá vašemu klíči předplatného.
  3. Volitelně můžete změnit "Value" adresu URL v textu požadavku na jakýkoli vzdálený obrázek, který chcete moderovat.

Tip

Místní obrázky můžete moderovat také předáním jejich bajtových dat do textu požadavku. Informace o tom, jak to udělat, najdete v referenční dokumentaci .

Po provedení změn otevřete příkazový řádek a zadejte nový příkaz.

Prozkoumání výsledků

Výsledky moderování obrázků by se měly zobrazit jako data JSON v okně konzoly.

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

Další informace o atributech obrázků, pro které jsou obrazovky Content Moderatoru, najdete v průvodci koncepty moderování obrázků.

Vyčištění prostředků

Pokud chcete vyčistit a odebrat předplatné služeb Azure AI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.

Další kroky

V tomto rychlém startu jste zjistili, jak pomocí rozhraní REST API Content Moderatoru provádět úlohy moderování. Další informace o moderování obrázků nebo jiných médií najdete v koncepční příručce.