Szybki start: korzystanie z biblioteki klienta usługi Content Moderator
Ważne
Usługa Azure Content Moderator jest przestarzała od lutego 2024 r. i zostanie wycofana do lutego 2027 r. Jest on zastępowany przez bezpieczeństwo zawartości sztucznej inteligencji platformy Azure, który oferuje zaawansowane funkcje sztucznej inteligencji i zwiększoną wydajność.
Bezpieczeństwo zawartości sztucznej inteligencji platformy Azure to kompleksowe rozwiązanie przeznaczone do wykrywania szkodliwej zawartości generowanej przez użytkownika i generowanej przez sztuczną inteligencję w aplikacjach i usługach. Bezpieczeństwo zawartości sztucznej inteligencji platformy Azure jest odpowiednie dla wielu scenariuszy, takich jak witryny internetowe, firmy zajmujące się grami, platformy do obsługi wiadomości społecznościowych, firmy zajmujące się mediami korporacyjnymi i dostawcy rozwiązań edukacyjnych K-12. Poniżej przedstawiono omówienie jej funkcji i możliwości:
- Interfejsy API wykrywania tekstu i obrazu: skanuje tekst i obrazy pod kątem zawartości seksualnej, przemocy, nienawiści i samookaleczenia przy użyciu wielu poziomów ważności.
- Content Safety Studio: narzędzie online przeznaczone do obsługi potencjalnie obraźliwych, ryzykownych lub niepożądanych treści przy użyciu naszych najnowszych modeli con tryb namiotu ration ML. Udostępnia szablony i dostosowane przepływy pracy, które umożliwiają użytkownikom tworzenie własnych systemów con tryb namiotu ration.
- Obsługa języka: Bezpieczeństwo zawartości sztucznej inteligencji platformy Azure obsługuje ponad 100 języków i jest specjalnie przeszkolony w języku angielskim, niemieckim, japońskim, hiszpańskim, francuskim, włoskim, portugalskim i chińskim.
Bezpieczeństwo zawartości sztucznej inteligencji platformy Azure zapewnia niezawodne i elastyczne rozwiązanie dla potrzeb dotyczących tryb namiotu ration. Przełączając się z usługi Content Moderator na bezpieczeństwo zawartości sztucznej inteligencji platformy Azure, możesz skorzystać z najnowszych narzędzi i technologii, aby upewnić się, że zawartość jest zawsze moderowana zgodnie z dokładnymi specyfikacjami.
Dowiedz się więcej o bezpieczeństwie zawartości usługi Azure AI i dowiedz się, jak może podnieść poziom strategii kon tryb namiotu ration.
Rozpocznij pracę z biblioteką klienta usługi Azure Content Moderator dla platformy .NET. Wykonaj następujące kroki, aby zainstalować pakiet NuGet i wypróbować przykładowy kod dla podstawowych zadań.
Content Moderator to usługa sztucznej inteligencji, która umożliwia obsługę zawartości potencjalnie obraźliwej, ryzykownej lub w inny sposób niepożądanej. Użyj usługi con tryb namiotu ration opartej na sztucznej inteligencji, aby automatycznie skanować tekst, obraz i filmy wideo oraz stosować flagi zawartości. Twórz oprogramowanie do filtrowania zawartości w aplikacji w celu zachowania zgodności z przepisami lub utrzymania zamierzonego środowiska dla użytkowników.
Użyj biblioteki klienta Content Moderator dla platformy .NET, aby:
- Tekst umiarkowany
- Moderowanie obrazów
Dokumentacja referencyjna — pakiet | kodu | źródłowego biblioteki źródłowej (NuGet)Samples |
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie
- Środowisko IDE programu Visual Studio lub bieżąca wersja platformy .NET Core.
- Po utworzeniu subskrypcji platformy Azure utwórz zasób usługi Content Moderator w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Poczekaj na wdrożenie i kliknij przycisk Przejdź do zasobu .
- Będziesz potrzebować klucza i punktu końcowego z utworzonego zasobu, aby połączyć aplikację z usługą Content Moderator. W dalszej części przewodnika Szybki start wklejesz klucz i punkt końcowy do poniższego kodu.
- Możesz użyć warstwy cenowej bezpłatna (
F0
), aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego.
Konfigurowanie
Tworzenie nowej aplikacji w języku C#
Za pomocą programu Visual Studio utwórz nową aplikację .NET Core.
Instalowanie biblioteki klienta
Po utworzeniu nowego projektu zainstaluj bibliotekę klienta, klikając prawym przyciskiem myszy rozwiązanie projektu w Eksplorator rozwiązań i wybierając polecenie Zarządzaj pakietami NuGet. W otwartym menedżerze pakietów wybierz pozycję Przeglądaj, zaznacz opcję Uwzględnij wersję wstępną i wyszukaj ciąg Microsoft.Azure.CognitiveServices.ContentModerator
. Wybierz wersję 2.0.0
, a następnie pozycję Zainstaluj.
Napiwek
Czy chcesz wyświetlić cały plik z kodem przewodnika Szybki start od razu? Można go znaleźć w witrynie GitHub, która zawiera przykłady kodu z tego przewodnika Szybki start.
W katalogu projektu otwórz plik Program.cs w preferowanym edytorze lub środowisku IDE. Dodaj następujące instrukcje 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;
W klasie Program utwórz zmienne dla klucza i punktu końcowego zasobu.
Ważne
Przejdź do portalu Azure Portal. Jeśli zasób Content Moderator utworzony w sekcji Wymagania wstępne został wdrożony pomyślnie, kliknij przycisk Przejdź do zasobu w obszarze Następne kroki. Klucz i punkt końcowy można znaleźć na stronie klucza i punktu końcowego zasobu w obszarze zarządzanie zasobami.
// 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";
Ważne
Pamiętaj, aby usunąć klucz z kodu po zakończeniu i nigdy nie publikować go publicznie. W przypadku środowiska produkcyjnego użyj bezpiecznego sposobu przechowywania i uzyskiwania dostępu do poświadczeń, takich jak usługa Azure Key Vault. Aby uzyskać więcej informacji, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.
W metodzie aplikacji main()
dodaj wywołania metod używanych w tym przewodniku Szybki start. Zostaną one utworzone później.
// 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);
Model obiektów
Poniższe klasy obsługują niektóre główne funkcje biblioteki klienta platformy .NET usługi Content Moderator.
Nazwa/nazwisko | opis |
---|---|
ContentModeratorClient | Ta klasa jest wymagana dla wszystkich funkcji usługi Content Moderator. Tworzysz wystąpienie z informacjami o subskrypcji i używasz ich do tworzenia wystąpień innych klas. |
Tryb obrazu | Ta klasa udostępnia funkcje analizowania obrazów pod kątem zawartości dla dorosłych, informacji osobistych lub ludzkich twarzy. |
TextModeration | Ta klasa udostępnia funkcje analizowania tekstu pod kątem języka, wulgaryzmów, błędów i informacji osobistych. |
Przykłady kodu
Te fragmenty kodu pokazują, jak wykonać następujące zadania za pomocą biblioteki klienta Content Moderator dla platformy .NET:
Uwierzytelnianie użytkownika
W nowej metodzie utwórz wystąpienie obiektów klienta przy użyciu punktu końcowego i klucza.
public static ContentModeratorClient Authenticate(string key, string endpoint)
{
ContentModeratorClient client = new ContentModeratorClient(new ApiKeyServiceClientCredentials(key));
client.Endpoint = endpoint;
return client;
}
Tekst umiarkowany
Poniższy kod używa klienta usługi Content Moderator do analizowania treści tekstu i drukowania wyników w konsoli. W katalogu głównym klasy Program zdefiniuj pliki wejściowe i wyjściowe:
// 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";
Następnie w katalogu głównym projektu dodaj plik TextFile.txt . Dodaj własny tekst do tego pliku lub użyj następującego przykładowego tekstu:
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
Następnie zdefiniuj metodę moderowania tekstu w klasie 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();
}
Moderowanie obrazów
Poniższy kod używa klienta usługi Content Moderator wraz z obiektem ImageModeration do analizowania obrazów zdalnych pod kątem zawartości dla dorosłych i zawartości erotycznej.
Uwaga
Możesz również przeanalizować zawartość obrazu lokalnego. Zapoznaj się z dokumentacją referencyjną metod i operacji, które współpracują z obrazami lokalnymi.
Pobieranie przykładowych obrazów
Zdefiniuj pliki wejściowe i wyjściowe w katalogu głównym klasy 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";
Następnie utwórz plik wejściowy ImageFiles.txt w katalogu głównym projektu. W tym pliku dodasz adresy URL obrazów do analizy — jeden adres URL w każdym wierszu. Możesz użyć następujących przykładowych obrazów:
https://moderatorsampleimages.blob.core.windows.net/samples/sample2.jpg
https://moderatorsampleimages.blob.core.windows.net/samples/sample5.png
Definiowanie klasy pomocnika
Dodaj następującą definicję klasy w klasie Program . Ta klasa wewnętrzna będzie obsługiwać wyniki moderowania obrazów.
// 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;
}
Definiowanie metody moderowania obrazu
Poniższa metoda wykonuje iterację po adresach URL obrazów w pliku tekstowym, tworzy wystąpienie EvaluationData i analizuje obraz pod kątem zawartości dla dorosłych/rasistowskich, tekstu i ludzkich twarzy. Następnie dodaje końcowe wystąpienie EvaluationData do listy i zapisuje pełną listę zwracanych danych do konsoli.
Iterowanie obrazów
/*
* 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());
Analizowanie zawartości
Aby uzyskać więcej informacji na temat atrybutów obrazu wyświetlanych przez usługę Content Moderator, zobacz przewodnik Pojęcia dotyczące moderowania obrazów .
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);
}
}
}
Zapisywanie wyników moderowania do pliku
// 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();
}
}
Uruchamianie aplikacji
Uruchom aplikację, klikając przycisk Debuguj w górnej części okna IDE.
Czyszczenie zasobów
Jeśli chcesz wyczyścić i usunąć subskrypcję usług Azure AI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Następne kroki
W tym przewodniku Szybki start przedstawiono sposób używania biblioteki .NET usługi Content Moderator do wykonywania zadań moderowania. Następnie dowiedz się więcej na temat moderowania obrazów lub innych multimediów, czytając koncepcyjny przewodnik.
Wprowadzenie do biblioteki klienta usługi Azure Content Moderator dla języka Java. Wykonaj następujące kroki, aby zainstalować pakiet Maven i wypróbować przykładowy kod dla podstawowych zadań.
Content Moderator to usługa sztucznej inteligencji, która umożliwia obsługę zawartości potencjalnie obraźliwej, ryzykownej lub w inny sposób niepożądanej. Użyj usługi con tryb namiotu ration opartej na sztucznej inteligencji, aby automatycznie skanować tekst, obraz i filmy wideo oraz stosować flagi zawartości. Twórz oprogramowanie do filtrowania zawartości w aplikacji w celu zachowania zgodności z przepisami lub utrzymania zamierzonego środowiska dla użytkowników.
Użyj biblioteki klienta Content Moderator dla języka Java, aby:
- Tekst umiarkowany
- Moderowanie obrazów
Dokumentacja referencyjna | — artefakt kodu |źródłowego biblioteki (Maven)Przykłady |
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie
- Bieżąca wersja zestawu Java Development Kit (JDK)
- Narzędzie kompilacji narzędzia Gradle lub inny menedżer zależności.
- Po utworzeniu subskrypcji platformy Azure utwórz zasób usługi Content Moderator w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Poczekaj na wdrożenie i kliknij przycisk Przejdź do zasobu .
- Będziesz potrzebować klucza i punktu końcowego z utworzonego zasobu, aby połączyć aplikację z usługą Content Moderator. W dalszej części przewodnika Szybki start wklejesz klucz i punkt końcowy do poniższego kodu.
- Możesz użyć warstwy cenowej bezpłatna (
F0
), aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego.
Konfigurowanie
Tworzenie nowego projektu narzędzia Gradle
W oknie konsoli (na przykład cmd, PowerShell lub Bash) utwórz nowy katalog dla aplikacji i przejdź do niego.
mkdir myapp && cd myapp
gradle init
Uruchom polecenie z katalogu roboczego. To polecenie spowoduje utworzenie podstawowych plików kompilacji dla narzędzia Gradle, w tym pliku build.gradle.kts, który jest używany w czasie wykonywania do tworzenia i konfigurowania aplikacji.
gradle init --type basic
Po wyświetleniu monitu wybierz pozycję Język DSL, a następnie Kotlin.
Instalowanie biblioteki klienta
Znajdź plik build.gradle.kts i otwórz go przy użyciu preferowanego środowiska IDE lub edytora tekstów. Następnie skopiuj poniższą konfigurację kompilacji. Ta konfiguracja definiuje projekt jako aplikację Java, której punktem wejścia jest klasa ContentModeratorQuickstart. Importuje bibliotekę klienta usługi Content Moderator i zestaw SDK GSON na potrzeby serializacji 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")
}
Tworzenie pliku języka Java
W katalogu roboczym uruchom następujące polecenie, aby utworzyć folder źródłowy projektu:
mkdir -p src/main/java
Przejdź do nowego folderu i utwórz plik o nazwie ContentModeratorQuickstart.java. Otwórz go w preferowanym edytorze lub środowisku IDE i dodaj następujące import
instrukcje:
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.*;
Napiwek
Czy chcesz wyświetlić cały plik z kodem przewodnika Szybki start od razu? Można go znaleźć w witrynie GitHub, która zawiera przykłady kodu z tego przewodnika Szybki start.
W klasie ContentModeratorQuickstart aplikacji utwórz zmienne dla klucza i punktu końcowego zasobu.
Ważne
Przejdź do portalu Azure Portal. Jeśli zasób Content Moderator utworzony w sekcji Wymagania wstępne został wdrożony pomyślnie, kliknij przycisk Przejdź do zasobu w obszarze Następne kroki. Klucz i punkt końcowy można znaleźć na stronie klucza i punktu końcowego zasobu w obszarze zarządzanie zasobami.
private static final String subscriptionKey = "<your-subscription-key>";
private static final String endpoint = "<your-api-endpoint>";
Ważne
Pamiętaj, aby usunąć klucz z kodu po zakończeniu i nigdy nie publikować go publicznie. W przypadku środowiska produkcyjnego użyj bezpiecznego sposobu przechowywania i uzyskiwania dostępu do poświadczeń, takich jak usługa Azure Key Vault. Aby uzyskać więcej informacji, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.
W głównej metodzie aplikacji dodaj wywołania metod używanych w tym przewodniku Szybki start. Te metody zdefiniujesz później.
// 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);
Model obiektów
Poniższe klasy obsługują niektóre główne funkcje biblioteki klienta Języka Java usługi Content Moderator.
Nazwa/nazwisko | opis |
---|---|
ContentModeratorClient | Ta klasa jest wymagana dla wszystkich funkcji usługi Content Moderator. Tworzysz wystąpienie z informacjami o subskrypcji i używasz ich do tworzenia wystąpień innych klas. |
Tryb obrazu | Ta klasa udostępnia funkcje analizowania obrazów pod kątem zawartości dla dorosłych, informacji osobistych lub ludzkich twarzy. |
Moduły tekstowe | Ta klasa udostępnia funkcje analizowania tekstu pod kątem języka, wulgaryzmów, błędów i informacji osobistych. |
Przykłady kodu
Te fragmenty kodu pokazują, jak wykonać następujące zadania za pomocą biblioteki klienta Content Moderator dla języka Java:
Uwierzytelnianie użytkownika
W metodzie aplikacji main
utwórz obiekt ContentModeratorClient przy użyciu wartości punktu końcowego subskrypcji i klucza subskrypcji.
// 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");
Tekst umiarkowany
Konfigurowanie przykładowego tekstu
W górnej części klasy ContentModeratorQuickstart zdefiniuj odwołanie do lokalnego pliku tekstowego. Dodaj plik .txt do katalogu projektu i wprowadź tekst, który chcesz przeanalizować.
// TEXT MODERATION variable
private static File textFile = new File("src\\main\\resources\\TextModeration.txt");
Analizowanie tekstu
Utwórz nową metodę odczytującą plik .txt i wywołującą metodę screenText w każdym wierszu.
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());
}
}
Drukowanie wyników moderowania tekstu
Dodaj następujący kod, aby wydrukować wyniki moderowania do pliku .json w katalogu 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();
Zamknij instrukcję try
i catch
, aby ukończyć metodę .
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
Moderowanie obrazów
Konfigurowanie przykładowego obrazu
W nowej metodzie skonstruuj obiekt BodyModelModel z danym ciągiem adresu URL wskazującym obraz.
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();
Definiowanie klasy pomocnika
Następnie w pliku ContentModeratorQuickstart.java dodaj następującą definicję klasy w klasie ContentModeratorQuickstart . Ta klasa wewnętrzna jest używana w procesie moderowania obrazów.
// 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;
}
Analizowanie zawartości
Ten wiersz kodu sprawdza obraz pod danym adresem URL pod kątem zawartości dla dorosłych lub zawartości erotycznej. Aby uzyskać informacje na temat tych terminów, zobacz Przewodnik koncepcyjny moderowania obrazów.
// Evaluate for adult and racy content.
imageData.ImageModeration = client.imageModerations().evaluateUrlInput("application/json", url,
new EvaluateUrlInputOptionalParameter().withCacheImage(true));
Thread.sleep(1000);
Sprawdzanie tekstu
Ten wiersz kodu sprawdza obraz pod kątem widocznego tekstu.
// Detect and extract text from image.
imageData.TextDetection = client.imageModerations().oCRUrlInput("eng", "application/json", url,
new OCRUrlInputOptionalParameter().withCacheImage(true));
Thread.sleep(1000);
Sprawdzanie twarzy
Ten wiersz kodu sprawdza obraz pod kątem ludzkich twarzy.
// Detect faces.
imageData.FaceDetection = client.imageModerations().findFacesUrlInput("application/json", url,
new FindFacesUrlInputOptionalParameter().withCacheImage(true));
Thread.sleep(1000);
Na koniec zapisz zwrócone informacje na EvaluationData
liście.
resultsList.add(imageData);
Drukuj wyniki
while
Po pętli dodaj następujący kod, który wyświetla wyniki w konsoli i do pliku wyjściowego 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();
Zamknij instrukcję try
i dodaj instrukcję catch
, aby ukończyć metodę.
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
Uruchamianie aplikacji
Aplikację można skompilować za pomocą następujących funkcji:
gradle build
Uruchom aplikację za gradle run
pomocą polecenia :
gradle run
Następnie przejdź do pliku src/main/resources/ModerationOutput.json i wyświetl wyniki con tryb namiotu ration.
Czyszczenie zasobów
Jeśli chcesz wyczyścić i usunąć subskrypcję usług Azure AI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Następne kroki
W tym przewodniku Szybki start przedstawiono sposób użycia biblioteki Java usługi Content Moderator do wykonywania zadań moderowania. Następnie dowiedz się więcej na temat moderowania obrazów lub innych multimediów, czytając koncepcyjny przewodnik.
Wprowadzenie do biblioteki klienta usługi Azure Content Moderator dla języka Python. Wykonaj następujące kroki, aby zainstalować pakiet i wypróbować przykładowy kod dla podstawowych zadań.
Content Moderator to usługa sztucznej inteligencji, która umożliwia obsługę zawartości potencjalnie obraźliwej, ryzykownej lub w inny sposób niepożądanej. Użyj usługi con tryb namiotu ration opartej na sztucznej inteligencji, aby automatycznie skanować tekst, obraz i filmy wideo oraz stosować flagi zawartości. Twórz oprogramowanie do filtrowania zawartości w aplikacji w celu zachowania zgodności z przepisami lub utrzymania zamierzonego środowiska dla użytkowników.
Użyj biblioteki klienta usługi Content Moderator dla języka Python, aby:
- Tekst umiarkowany
- Używanie listy terminów niestandardowych
- Moderowanie obrazów
- Używanie niestandardowej listy obrazów
Dokumentacja referencyjna — przykłady | pakietu kodu | źródłowego biblioteki źródłowej ()Samples |
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie
- Python 3.x
- Instalacja języka Python powinna zawierać narzędzie. Możesz sprawdzić, czy masz zainstalowane narzędzie, uruchamiając polecenie
pip --version
w wierszu polecenia. Pobierz narzędzie, instalując najnowszą wersję języka Python.
- Instalacja języka Python powinna zawierać narzędzie. Możesz sprawdzić, czy masz zainstalowane narzędzie, uruchamiając polecenie
- Po utworzeniu subskrypcji platformy Azure utwórz zasób usługi Content Moderator w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Poczekaj na wdrożenie i kliknij przycisk Przejdź do zasobu .
- Będziesz potrzebować klucza i punktu końcowego z utworzonego zasobu, aby połączyć aplikację z usługą Content Moderator. W dalszej części przewodnika Szybki start wklejesz klucz i punkt końcowy do poniższego kodu.
- Możesz użyć warstwy cenowej bezpłatna (
F0
), aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego.
Konfigurowanie
Instalowanie biblioteki klienta
Po zainstalowaniu języka Python możesz zainstalować bibliotekę klienta Content Moderator za pomocą następującego polecenia:
pip install --upgrade azure-cognitiveservices-vision-contentmoderator
Tworzenie nowej aplikacji w języku Python
Utwórz nowy skrypt języka Python i otwórz go w preferowanym edytorze lub środowisku IDE. Następnie dodaj następujące import
instrukcje na początku pliku.
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
Napiwek
Czy chcesz wyświetlić cały plik z kodem przewodnika Szybki start od razu? Można go znaleźć w witrynie GitHub, która zawiera przykłady kodu z tego przewodnika Szybki start.
Następnie utwórz zmienne dla lokalizacji i klucza punktu końcowego zasobu.
Ważne
Przejdź do portalu Azure Portal. Jeśli zasób Content Moderator utworzony w sekcji Wymagania wstępne został wdrożony pomyślnie, kliknij przycisk Przejdź do zasobu w obszarze Następne kroki. Klucz i punkt końcowy można znaleźć na stronie klucza i punktu końcowego zasobu w obszarze zarządzanie zasobami.
CONTENT_MODERATOR_ENDPOINT = "PASTE_YOUR_CONTENT_MODERATOR_ENDPOINT_HERE"
subscription_key = "PASTE_YOUR_CONTENT_MODERATOR_SUBSCRIPTION_KEY_HERE"
Ważne
Pamiętaj, aby usunąć klucz z kodu po zakończeniu i nigdy nie publikować go publicznie. W przypadku środowiska produkcyjnego użyj bezpiecznego sposobu przechowywania i uzyskiwania dostępu do poświadczeń, takich jak usługa Azure Key Vault. Aby uzyskać więcej informacji, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.
Model obiektów
Poniższe klasy obsługują niektóre główne funkcje biblioteki klienta Content Moderator języka Python.
Nazwa/nazwisko | opis |
---|---|
ContentModeratorClient | Ta klasa jest wymagana dla wszystkich funkcji usługi Content Moderator. Tworzysz wystąpienie z informacjami o subskrypcji i używasz ich do tworzenia wystąpień innych klas. |
ImageModerationOperations | Ta klasa udostępnia funkcje analizowania obrazów pod kątem zawartości dla dorosłych, informacji osobistych lub ludzkich twarzy. |
TextModerationOperations | Ta klasa udostępnia funkcje analizowania tekstu pod kątem języka, wulgaryzmów, błędów i informacji osobistych. |
Przykłady kodu
Te fragmenty kodu pokazują, jak wykonać następujące zadania za pomocą biblioteki klienta Content Moderator dla języka Python:
- Uwierzytelnianie użytkownika
- Tekst umiarkowany
- Używanie listy terminów niestandardowych
- Moderowanie obrazów
- Używanie niestandardowej listy obrazów
Uwierzytelnianie użytkownika
Utwórz wystąpienie klienta przy użyciu punktu końcowego i klucza. Utwórz obiekt CognitiveServicesCredentials](/python/api/msrest/msrest.authentication.cognitiveservicescredentials z kluczem i użyj go z punktem końcowym, aby utworzyć obiekt ContentModeratorClient .
client = ContentModeratorClient(
endpoint=CONTENT_MODERATOR_ENDPOINT,
credentials=CognitiveServicesCredentials(subscription_key)
)
Tekst umiarkowany
Poniższy kod używa klienta usługi Content Moderator do analizowania treści tekstu i drukowania wyników w konsoli. Najpierw utwórz folder text_files/ w katalogu głównym projektu i dodaj plik content_moderator_text_moderation.txt . Dodaj własny tekst do tego pliku lub użyj następującego przykładowego tekstu:
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
Dodaj odwołanie do nowego folderu.
TEXT_FOLDER = os.path.join(os.path.dirname(
os.path.realpath(__file__)), "text_files")
Następnie dodaj następujący kod do skryptu języka Python.
# Screen the input text: check for profanity,
# do autocorrect text, and check for personally identifying
# information (PII)
with open(os.path.join(TEXT_FOLDER, 'content_moderator_text_moderation.txt'), "rb") as text_fd:
screen = client.text_moderation.screen_text(
text_content_type="text/plain",
text_content=text_fd,
language="eng",
autocorrect=True,
pii=True
)
assert isinstance(screen, Screen)
pprint(screen.as_dict())
Używanie listy terminów niestandardowych
Poniższy kod pokazuje, jak zarządzać listą terminów niestandardowych na potrzeby moderowania tekstu. Możesz użyć klasy ListManagementTermListsOperations , aby utworzyć listę terminów, zarządzać poszczególnymi terminami i wyświetlać inne treści tekstu względem niego.
Pobieranie przykładowego tekstu
Aby użyć tego przykładu, należy utworzyć folder text_files/ w katalogu głównym projektu i dodać plik content_moderator_term_list.txt . Ten plik powinien zawierać tekst organiczny, który zostanie sprawdzony na liście terminów. Możesz użyć następującego przykładowego tekstu:
This text contains the terms "term1" and "term2".
Dodaj odwołanie do folderu, jeśli jeszcze go nie zdefiniowano.
TEXT_FOLDER = os.path.join(os.path.dirname(
os.path.realpath(__file__)), "text_files")
Utwórz listę
Dodaj następujący kod do skryptu języka Python, aby utworzyć listę terminów niestandardowych i zapisać jego wartość identyfikatora.
#
# 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
Definiowanie szczegółów listy
Możesz użyć identyfikatora listy, aby edytować jego nazwę i opis.
#
# 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())
Dodawanie terminu do listy
Poniższy kod dodaje terminy "term1"
i "term2"
do listy.
#
# 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"
)
Pobieranie wszystkich terminów na liście
Możesz użyć identyfikatora listy, aby zwrócić wszystkie terminy na liście.
#
# 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())
Odświeżanie indeksu listy
Za każdym razem, gdy dodasz lub usuniesz terminy z listy, musisz odświeżyć indeks, zanim będzie można użyć zaktualizowanej listy.
#
# 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)
Tekst ekranu na liście
Główną funkcją listy terminów niestandardowych jest porównanie treści tekstu z listą i znalezienie, czy istnieją pasujące terminy.
#
# 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())
Usuwanie terminu z listy
Poniższy kod usuwa termin "term1"
z listy.
#
# 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"
)
Usuwanie wszystkich terminów z listy
Użyj poniższego kodu, aby wyczyścić listę wszystkich jego terminów.
#
# 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")
Usuwanie listy
Użyj poniższego kodu, aby usunąć niestandardową listę terminów.
#
# Delete list
#
print("\nDelete the term list {}".format(list_id))
client.list_management_term_lists.delete(list_id=list_id)
Moderowanie obrazów
Poniższy kod używa klienta usługi Content Moderator wraz z obiektem ImageModerationOperations w celu analizowania obrazów pod kątem zawartości dla dorosłych i erotycznej.
Pobieranie przykładowych obrazów
Zdefiniuj odwołanie do niektórych obrazów do analizy.
IMAGE_LIST = [
"https://moderatorsampleimages.blob.core.windows.net/samples/sample2.jpg",
"https://moderatorsampleimages.blob.core.windows.net/samples/sample5.png"
]
Następnie dodaj następujący kod, aby wykonać iterowanie obrazów. Pozostała część kodu w tej sekcji przejdzie do tej pętli.
for image_url in IMAGE_LIST:
print("\nEvaluate image {}".format(image_url))
Sprawdzanie zawartości dla dorosłych/rasistowskich
Poniższy kod sprawdza obraz pod podanym adresem URL pod kątem zawartości dla dorosłych lub zawartości erotycznej i wyświetla wyniki w konsoli. Zapoznaj się z przewodnikiem Pojęcia dotyczące moderowania obrazów, aby uzyskać informacje na temat znaczenia tych terminów .
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())
Sprawdzanie widocznego tekstu
Poniższy kod sprawdza obraz pod kątem widocznej zawartości tekstowej i wyświetla wyniki w konsoli programu .
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())
Sprawdzanie twarzy
Poniższy kod sprawdza obraz pod kątem ludzkich twarzy i wyświetla wyniki w konsoli.
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())
Używanie niestandardowej listy obrazów
Poniższy kod przedstawia sposób zarządzania niestandardową listą obrazów na potrzeby moderowania obrazów. Ta funkcja jest przydatna, jeśli platforma często odbiera wystąpienia tego samego zestawu obrazów, które mają być wyświetlane. Utrzymując listę tych konkretnych obrazów, można zwiększyć wydajność. Klasa ListManagementImageListsOperations umożliwia tworzenie listy obrazów, zarządzanie poszczególnymi obrazami na liście i porównywanie innych obrazów.
Utwórz następujące zmienne tekstowe do przechowywania adresów URL obrazów, które będą używane w tym scenariuszu.
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"
]
Uwaga
Nie jest to właściwa lista, ale nieformalna lista obrazów, które zostaną dodane w add images
sekcji kodu.
Tworzenie listy obrazów
Dodaj następujący kod, aby utworzyć listę obrazów i zapisać odwołanie do jego identyfikatora.
#
# 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
Dodawanie obrazów do listy
Poniższy kod dodaje wszystkie obrazy do listy.
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
Zdefiniuj funkcję pomocnika add_images w innym miejscu skryptu.
#
# 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
Pobieranie obrazów na liście
Poniższy kod wyświetla nazwy wszystkich obrazów na liście.
#
# 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())
Aktualizowanie szczegółów listy
Możesz użyć identyfikatora listy, aby zaktualizować nazwę i opis listy.
#
# 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())
Pobieranie szczegółów listy
Użyj poniższego kodu, aby wydrukować bieżące szczegóły listy.
#
# 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())
Odświeżanie indeksu listy
Po dodaniu lub usunięciu obrazów należy odświeżyć indeks listy, zanim będzie można go użyć do wyświetlania innych obrazów.
#
# 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)
Dopasowywanie obrazów do listy
Główną funkcją list obrazów jest porównanie nowych obrazów i sprawdzenie, czy istnieją jakieś dopasowania.
#
# 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())
Usuwanie obrazu z listy
Poniższy kod usuwa element z listy. W tym przypadku jest to obraz, który nie jest zgodny z kategorią listy.
#
# 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]
)
Usuwanie wszystkich obrazów z listy
Użyj poniższego kodu, aby wyczyścić listę obrazów.
#
# 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)
Usuwanie listy obrazów
Użyj następującego kodu, aby usunąć daną listę obrazów.
#
# Delete list
#
print("\nDelete the image list {}".format(list_id))
client.list_management_image_lists.delete(list_id=list_id)
Uruchamianie aplikacji
Uruchom aplikację, wykonując polecenie python
dla pliku szybkiego startu.
python quickstart-file.py
Czyszczenie zasobów
Jeśli chcesz wyczyścić i usunąć subskrypcję usług Azure AI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Następne kroki
W tym przewodniku Szybki start przedstawiono sposób używania biblioteki Content Moderator w języku Python do wykonywania zadań moderowania. Następnie dowiedz się więcej na temat moderowania obrazów lub innych multimediów, czytając koncepcyjny przewodnik.
Rozpocznij pracę z interfejsem API REST usługi Azure Content Moderator.
Content Moderator to usługa sztucznej inteligencji, która umożliwia obsługę zawartości potencjalnie obraźliwej, ryzykownej lub w inny sposób niepożądanej. Użyj usługi con tryb namiotu ration opartej na sztucznej inteligencji, aby automatycznie skanować tekst, obraz i filmy wideo oraz stosować flagi zawartości. Twórz oprogramowanie do filtrowania zawartości w aplikacji w celu zachowania zgodności z przepisami lub utrzymania zamierzonego środowiska dla użytkowników.
Użyj interfejsu API REST usługi Content Moderator, aby:
- Tekst umiarkowany
- Moderowanie obrazów
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie
- Po utworzeniu subskrypcji platformy Azure utwórz zasób usługi Content Moderator w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Poczekaj na wdrożenie i kliknij przycisk Przejdź do zasobu .
- Będziesz potrzebować klucza i punktu końcowego z utworzonego zasobu, aby połączyć aplikację z usługą Content Moderator. W dalszej części przewodnika Szybki start wklejesz klucz i punkt końcowy do poniższego kodu.
- Możesz użyć warstwy cenowej bezpłatna (
F0
), aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego.
- PowerShell w wersji 6.0 lub podobnej aplikacji wiersza polecenia.
Tekst umiarkowany
Użyjesz polecenia podobnego do poniższego, aby wywołać interfejs API usługi Content Moderator, aby przeanalizować treść tekstu i wydrukować wyniki w konsoli.
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"
Skopiuj polecenie do edytora tekstów i wprowadź następujące zmiany:
- Przypisz
Ocp-Apim-Subscription-Key
do prawidłowego klucza subskrypcji rozpoznawania twarzy.Ważne
Pamiętaj, aby usunąć klucz z kodu po zakończeniu i nigdy nie publikować go publicznie. W przypadku środowiska produkcyjnego użyj bezpiecznego sposobu przechowywania i uzyskiwania dostępu do poświadczeń, takich jak usługa Azure Key Vault. Aby uzyskać więcej informacji, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.
- Zmień pierwszą część adresu URL zapytania, aby pasować do punktu końcowego odpowiadającego kluczowi subskrypcji.
Uwaga
Nowe zasoby utworzone po 1 lipca 2019 r. będą używać niestandardowych nazw domen podrzędnych. Aby uzyskać więcej informacji i pełną listę regionalnych punktów końcowych, zobacz Niestandardowe nazwy poddomeny dla usług Azure AI.
- Opcjonalnie zmień treść żądania na dowolny ciąg tekstu, który chcesz przeanalizować.
Po dokonaniu zmian otwórz wiersz polecenia i wprowadź nowe polecenie.
Sprawdzanie wyników
Wyniki moderowania tekstu powinny być wyświetlane jako dane JSON w oknie konsoli. Na przykład:
{
"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"
}
Aby uzyskać więcej informacji na temat atrybutów tekstowych wyświetlanych przez usługę Content Moderator, zobacz Przewodnik po pojęciach dotyczących moderowania tekstu.
Moderowanie obrazów
Użyjesz polecenia podobnego do poniższego, aby wywołać interfejs API usługi Content Moderator w celu moderowania obrazu zdalnego i wydrukowania wyników w konsoli.
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\"}"
Skopiuj polecenie do edytora tekstów i wprowadź następujące zmiany:
- Przypisz
Ocp-Apim-Subscription-Key
do prawidłowego klucza subskrypcji rozpoznawania twarzy. - Zmień pierwszą część adresu URL zapytania, aby pasować do punktu końcowego odpowiadającego kluczowi subskrypcji.
- Opcjonalnie zmień
"Value"
adres URL w treści żądania na dowolny obraz zdalny, który chcesz moderować.
Napiwek
Możesz również moderować obrazy lokalne, przekazując dane bajtów do treści żądania. Zapoznaj się z dokumentacją referencyjną, aby dowiedzieć się, jak to zrobić.
Po dokonaniu zmian otwórz wiersz polecenia i wprowadź nowe polecenie.
Sprawdzanie wyników
W oknie konsoli powinny zostać wyświetlone wyniki moderowania obrazów jako dane JSON.
{
"AdultClassificationScore": x.xxx,
"IsImageAdultClassified": <Bool>,
"RacyClassificationScore": x.xxx,
"IsImageRacyClassified": <Bool>,
"AdvancedInfo": [],
"Result": false,
"Status": {
"Code": 3000,
"Description": "OK",
"Exception": null
},
"TrackingId": "<Request Tracking Id>"
}
Aby uzyskać więcej informacji na temat atrybutów obrazu wyświetlanych przez usługę Content Moderator, zobacz przewodnik Pojęcia dotyczące moderowania obrazów .
Czyszczenie zasobów
Jeśli chcesz wyczyścić i usunąć subskrypcję usług Azure AI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Następne kroki
W tym przewodniku Szybki start przedstawiono sposób używania interfejsu API REST usługi Content Moderator do wykonywania zadań moderowania. Następnie dowiedz się więcej na temat moderowania obrazów lub innych multimediów, czytając koncepcyjny przewodnik.