Rychlý start: Použití klientské knihovny Content Moderatoru
Důležité
Azure Content Moderator je od února 2024 zastaralý a do února 2027 bude vyřazený. Nahrazuje ji Azure AI Content Safety, která nabízí pokročilé funkce AI a vyšší výkon.
Azure AI Content Safety je komplexní řešení navržené k detekci škodlivého uživatelem generovaného a generovaného obsahu umělé inteligence v aplikacích a službách. Azure AI Content Safety je vhodný pro mnoho 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 Safety Studio: Online nástroj navržený ke 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í s kon 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 Safety podporuje více než 100 jazyků a je speciálně vytrénovaný v angličtině, němčině, japonštině, španělštině, francouzštině, italštině, portugalštině a čínštině.
Azure AI Content Safety poskytuje robustní a flexibilní řešení pro potřeby kon režim stanu race. Přechodem z Content Moderatoru na Azure AI Content Safety můžete využít nejnovější nástroje a technologie, abyste zajistili, že váš obsah bude vždy moderovaný na vaše přesné specifikace.
Přečtěte si další informace o bezpečnosti obsahu Azure AI a prozkoumejte, 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());
}
}
Tisk výsledků moderování textu
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);
Tisk výsledků
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.
- Vaše instalace Pythonu by měla obsahovat pip. Spuštěním na příkazovém
- 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
- Moderování textu
- Použití vlastního seznamu termínů
- Moderování obrázků
- Použití vlastního seznamu imagí
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:
- 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.
- 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.
- 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:
- Přiřaďte
Ocp-Apim-Subscription-Key
platný klíč předplatného rozpoznávání tváře. - Změňte první část adresy URL dotazu tak, aby odpovídala koncovému bodu, který odpovídá vašemu klíči předplatného.
- 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.