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

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

Content Moderator je služba AI, která umožňuje zpracovávat obsah, který může být urážlivý, rizikový nebo jinak nežádoucí. Pomocí služby moderování obsahu využívající AI můžete skenovat 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.

Použijte klientskou knihovnu Content Moderatoru pro .NET k:

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

Referenční dokumentace | Zdrojový kód | knihovny Balíček (NuGet) | Vzorky

Požadavky

  • Předplatné Azure – Vytvoření bezplatného předplatného
  • Integrované vývojové prostředí sady Visual Studio nebo aktuální verze .NET Core.
  • Jakmile budete mít předplatné Azure, v Azure Portal, 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.
    • Pomocí cenové úrovně Free (F0) můžete službu vyzkoušet a upgradovat později 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 kliknutím pravým tlačítkem na řešení projektu v Průzkumník řešení a výběrem možnosti 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.0a pak nainstalujte.

Tip

Chcete zobrazit celý soubor kódu pro rychlý start najednou? Najdete ho na GitHubu, který obsahuje příklady kódu v tomto rychlém startu.

V adresáři projektu otevřete soubor Program.cs v preferovaném editoru nebo integrovaném vývojovém prostředí. 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ž budete hotovi, a nikdy ho veřejně publikovat. V produkčním prostředí použijte zabezpečený způsob ukládání přihlašovacích údajů a přístup k nim, jako je Azure Key Vault. Další informace najdete v článku o zabezpečení služeb Cognitive Services.

V metodě aplikace main() přidejte volání metod použitých v tomto rychlém startu. Tyto funkce 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 Description
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í, 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 Moderator 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 vaší 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 souborTextFile.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é a obsah pro dospělé.

Poznámka

Můžete také analyzovat obsah místního obrázku. Referenční dokumentace k metodám a operacím, 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 vaší 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í souborImageFiles.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ázku v textovém souboru, vytvoří instanci EvaluationData a analyzuje obrázek pro obsah pro dospělé aracii, 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 prostřednictvím 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é se zobrazují 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 Ladění v horní části okna integrovaného vývojového prostředí.

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

Pokud chcete vyčistit a odebrat předplatné služeb Cognitive Services, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků odstraníte také všechny další 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 Moderator 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 AI, která umožňuje zpracovávat obsah, který je potenciálně urážlivý, rizikový nebo jinak nežádoucí. Pomocí služby moderování obsahu využívající AI 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 zachoval zamýšlené prostředí pro vaše uživatele.

Použijte klientskou knihovnu Content Moderatoru pro Javu k:

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

Referenční dokumentace | Zdrojový kód | knihovny Artefakt (Maven) | Vzorky

Požadavky

  • Předplatné Azure – Vytvoření bezplatného předplatného
  • 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, v Azure Portal a získejte klíč a koncový bod. Počkejte, až se 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 nový adresář aplikace a přejděte na 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žívá 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í (IDE) nebo textového editoru. Potom zkopírujte následující konfiguraci sestavení. Tato konfigurace definuje projekt jako aplikaci Java, jejíž vstupní bod je třída ContentModeratorQuickstart. Importuje klientskou knihovnu Content Moderatoru a sadu GSON SDK 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 kódu rychlého startu najednou? Najdete ho na GitHubu, který obsahuje příklady kódu v tomto rychlém startu.

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ž budete hotovi, a nikdy ho veřejně nesdělíte. V produkčním prostředí použijte zabezpečený způsob ukládání a přístupu k vašim přihlašovacím údajům, jako je Azure Key Vault. Další informace najdete v článku o zabezpečení služeb Cognitive Services.

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 Description
ContentModeratorClient Tato třída je nutná pro všechny funkce Content Moderatoru. Vytvoříte instanci s informacemi o předplatném a použijete ji 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í, 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 soubor .txt 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á čte .txt soubor a volá metodu screenText na každém řádku.

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 ukonč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é neborací. Informace o těchto termínech najdete v koncepční příručce pro moderování 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 obrázek viditelného textu.

// 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ý vytiskne 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í:

gradle build

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

gradle run

Pak přejděte do souboru src/main/resources/ModerationOutput.json a zobrazte výsledky moderování obsahu.

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

Pokud chcete vyčistit a odebrat předplatné služeb Cognitive Services, můžete prostředek nebo skupinu prostředků odstranit. Odstraněním skupiny prostředků odstraníte 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 Moderator 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 AI, která umožňuje zpracovávat obsah, který může být urážlivý, rizikový nebo jinak nežádoucí. Pomocí služby moderování obsahu využívající AI můžete skenovat 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.

Použijte klientskou knihovnu Content Moderatoru pro Python k:

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

Referenční dokumentace | Zdrojový kód | knihovny Balíček (PiPy) | Vzorky

Požadavky

  • Předplatné Azure – Vytvoření bezplatného předplatného
  • Python 3.x
    • Instalace Pythonu by měla obsahovat pip. Pokud máte nainstalovaný pip, můžete zkontrolovat spuštěním pip --version na příkazovém řádku. Získejte pip instalací nejnovější verze Pythonu.
  • Jakmile budete mít předplatné Azure, v Azure Portal, 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.
    • Pomocí cenové úrovně Free (F0) můžete službu vyzkoušet a upgradovat později 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 do horní části 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 kódu pro rychlý start najednou? Najdete ho na GitHubu, který obsahuje příklady kódu v tomto rychlém startu.

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ž budete hotovi, a nikdy ho veřejně publikovat. V produkčním prostředí použijte zabezpečený způsob ukládání přihlašovacích údajů a přístup k nim, jako je Azure Key Vault. Další informace najdete v článku o zabezpečení služeb Cognitive Services.

Objektový model

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

Název Description
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í, 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 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 souborcontent_moderator_text_moderation.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 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ý se bude kontrolovat podle 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ření seznamu

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

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

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

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

Text obrazovky se seznamem

Hlavní funkcí seznamu vlastních termínů je porovnání textu 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"
]

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

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

Kontrola obsahu pro dospělé nebo obsah

Následující kód zkontroluje obrázek na dané adrese URL pro obsah pro dospělé neboraci 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 obrázek viditelného textového obsahu 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 další 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á v add images části kódu.

Vytvoření seznamu obrázků

Přidejte následující kód pro vytvoření seznamu obrázků a uložení odkazu 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 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í 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ání obrázků se seznamem

Hlavní funkcí seznamů obrázků je porovnat nové obrázky a zjistit, jestli existují nějaké shody.

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

Pomocí následujícího kódu odstraňte daný seznam obrázků.

#
# 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í python příkazu v souboru rychlého startu.

python quickstart-file.py

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

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

Další kroky

V tomto rychlém startu jste zjistili, jak používat knihovnu Pythonu Content Moderatoru k moderování úkolů. 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 služby Azure Content Moderator

Content Moderator je služba AI, která umožňuje zpracovávat obsah, který je potenciálně urážlivý, rizikový nebo jinak nežádoucí. Pomocí služby moderování obsahu využívající AI 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 zachoval zamýšlené prostředí pro vaše uživatele.

Rozhraní REST API Content Moderatoru použijte k:

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

Požadavky

  • Předplatné Azure – Vytvoření bezplatného předplatného
  • Jakmile budete mít předplatné Azure, v Azure Portal a získejte klíč a koncový bod. Počkejte, až se 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

K analýze textu textu 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/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ž budete hotovi, a nikdy ho veřejně nesdělíte. V produkčním prostředí použijte zabezpečený způsob ukládání a přístupu k vašim přihlašovacím údajům, jako je Azure Key Vault. Další informace najdete v článku o zabezpečení služeb Cognitive Services.

  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í názvy subdomén pro Cognitive Services.

  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 příkazu.

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 také moderovat předáním bajtů 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 Cognitive Services, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků odstraníte také všechny další 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.