Hızlı Başlangıç: Content Moderator istemci kitaplığını kullanma

Önemli

Azure Content Moderator Şubat 2024'te kullanımdan kaldırılıyor ve Şubat 2027'ye kadar kullanımdan kaldırılacak. Gelişmiş yapay zeka özellikleri ve gelişmiş performans sunan Azure AI content Kasa ty ile değiştiriliyor.

Azure AI content Kasa ty, uygulama ve hizmetlerde kullanıcı tarafından oluşturulan ve yapay zeka tarafından oluşturulan zararlı içerikleri algılamak için tasarlanmış kapsamlı bir çözümdür. Azure AI Content Kasa ty çevrimiçi marketler, oyun şirketleri, sosyal mesajlaşma platformları, kurumsal medya şirketleri ve K-12 eğitim çözümü sağlayıcıları gibi birçok senaryo için uygundur. Özelliklerine ve özelliklerine genel bir bakış aşağıdadır:

  • Metin ve Görüntü Algılama API'leri: Birden çok önem düzeyiyle cinsel içerik, şiddet, nefret ve kendine zarar verecek metin ve görüntüleri tarayın.
  • Content Kasa ty Studio: En son con çadır modu ration ML modellerimizi kullanarak rahatsız edici, riskli veya istenmeyen içeriği işlemek için tasarlanmış çevrimiçi bir araç. Kullanıcıların kendi con çadır modu ration sistemlerini oluşturmasını sağlayan şablonlar ve özelleştirilmiş iş akışları sağlar.
  • Dil desteği: Azure AI Content Kasa ty 100'den fazla dili destekler ve özellikle İngilizce, Almanca, Japonca, İspanyolca, Fransızca, İtalyanca, Portekizce ve Çince üzerinde eğitilir.

Azure AI content Kasa ty, con çadır modu ration gereksinimleriniz için sağlam ve esnek bir çözüm sağlar. Content Moderator'dan Azure AI content Kasa ty'ye geçerek, içeriğinizin her zaman tam belirtimlerinize göre denetlendiğinden emin olmak için en son araçlardan ve teknolojilerden yararlanabilirsiniz.

Azure Yapay Zeka İçeriği Kasa hakkında daha fazla bilgi edinin ve çadır modu stratejinizi nasıl yükseltebileceğini keşfedin.

.NET için Azure Content Moderator istemci kitaplığını kullanmaya başlayın. NuGet paketini yüklemek için bu adımları izleyin ve temel görevler için örnek kodu deneyin.

Content Moderator rahatsız edici, riskli veya başka bir şekilde istenmeyen içeriği işlemenizi sağlayan bir yapay zeka hizmetidir. Metin, görüntü ve videoları taramak ve otomatik olarak içerik bayrakları uygulamak için yapay zeka destekli con çadır modu ration hizmetini kullanın. Düzenlemelere uymak veya kullanıcılarınız için hedeflenen ortamı korumak için uygulamanıza içerik filtreleme yazılımı oluşturun.

.NET için Content Moderator istemci kitaplığını kullanarak:

  • Metni ortala
  • Görüntüleri denetleme

Başvuru belgeleri | Kitaplık kaynak kodu | Paketi (NuGet)Örnekleri |

Önkoşullar

  • Azure aboneliği - Ücretsiz olarak oluşturun
  • Visual Studio IDE veya .NET Core'un geçerli sürümü.
  • Azure aboneliğinizi aldıktan sonra anahtarınızı ve uç noktanızı almak için Azure portalında bir Content Moderator kaynağı oluşturun. Dağıtmasını bekleyin ve Kaynağa git düğmesine tıklayın.
    • Uygulamanızı Content Moderator'a bağlamak için oluşturduğunuz kaynaktan anahtara ve uç noktaya ihtiyacınız olacaktır. Anahtarınızı ve uç noktanızı hızlı başlangıcın ilerleyen bölümlerinde aşağıdaki koda yapıştıracaksınız.
    • Hizmeti denemek ve daha sonra üretim için ücretli bir katmana yükseltmek için ücretsiz fiyatlandırma katmanını (F0) kullanabilirsiniz.

Ayarlama

Yeni bir C# uygulaması oluşturma

Visual Studio'yu kullanarak yeni bir .NET Core uygulaması oluşturun.

İstemci kitaplığını yükleme

Yeni bir proje oluşturduktan sonra, Çözüm Gezgini proje çözümüne sağ tıklayıp NuGet Paketlerini Yönet'i seçerek istemci kitaplığını yükleyin. Açılan paket yöneticisinde Gözat’ı seçip Ön sürümü dahil et seçeneğini işaretleyin ve Microsoft.Azure.CognitiveServices.ContentModerator için arama yapın. Sürüm olarak 2.0.0 seçin ve Yükle seçeneğini belirleyin.

İpucu

Tüm hızlı başlangıç kodunu aynı anda görüntülemek mi istiyorsunuz? Bunu, bu hızlı başlangıçtaki kod örneklerini içeren GitHub’da bulabilirsiniz.

Proje dizininden Program.cs dosyasını tercih ettiğiniz düzenleyicide veya IDE'de açın. Aşağıdaki using deyimlerini ekleyin:

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;

Program sınıfında, kaynağınızın anahtarı ve uç noktası için değişkenler oluşturun.

Önemli

Azure portalına gidin. Önkoşullar bölümünde oluşturduğunuz Content Moderator kaynağı başarıyla dağıtıldıysa, Sonraki Adımlar'ın altındaki Kaynağa Git düğmesine tıklayın. Anahtarınızı ve uç noktanızı kaynağın anahtar ve uç nokta sayfasında, kaynak yönetimi altında bulabilirsiniz.

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

Önemli

İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve asla herkese açık olarak göndermeyin. Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.

Uygulamanın main() yönteminde, bu hızlı başlangıçta kullanılan yöntemler için çağrılar ekleyin. Bunları daha sonra oluşturacaksınız.

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

Nesne modeli

Aşağıdaki sınıflar, Content Moderator .NET istemci kitaplığının bazı önemli özelliklerini işler.

Veri Akışı Adı Açıklama
ContentModeratorClient Bu sınıf tüm Content Moderator işlevleri için gereklidir. Bu örneği abonelik bilgilerinizle oluşturur ve diğer sınıfların örneklerini oluşturmak için kullanırsınız.
ImageModeration Bu sınıf yetişkinlere yönelik içerik, kişisel bilgiler veya insan yüzleri için görüntüleri analiz etme işlevselliği sağlar.
TextModeration Bu sınıf dil, küfür, hatalar ve kişisel bilgiler için metin analizine yönelik işlevsellik sağlar.

Kod örnekleri

Bu kod parçacıkları, .NET için Content Moderator istemci kitaplığıyla aşağıdaki görevlerin nasıl yapılacağını gösterir:

İstemcinin kimliğini doğrulama

Yeni bir yöntemde, uç noktanız ve anahtarınız ile istemci nesnelerinin örneğini oluşturun.

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

    return client;
}

Metni ortala

Aşağıdaki kod, bir metin gövdesini analiz etmek ve sonuçları konsola yazdırmak için Content Moderator istemcisini kullanır. Program sınıfınızın kökünde giriş ve çıkış dosyalarını tanımlayın:

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

Ardından projenizin köküne bir TextFile.txt dosyası ekleyin. Bu dosyaya kendi metninizi ekleyin veya aşağıdaki örnek metni kullanın:

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

Ardından, Program sınıfınızda bir yerde metin moderasyonu yöntemini tanımlayın:

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

Görüntüleri denetleme

Aşağıdaki kod, yetişkinlere yönelik ve müstehcen içeriğe yönelik uzak görüntüleri analiz etmek için ImageModeration nesnesiyle birlikte content Moderator istemcisini kullanır.

Not

Yerel görüntünün içeriğini de analiz edebilirsiniz. Yerel görüntülerle çalışan yöntemler ve işlemler için başvuru belgelerine bakın.

Örnek görüntüleri alma

Giriş ve çıkış dosyalarınızı Program sınıfınızın kökünde tanımlayın:

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

Ardından projenizin kökünde ImageFiles.txt giriş dosyasını oluşturun. Bu dosyada, analiz etmek için görüntülerin URL'lerini (her satırda bir URL) eklersiniz. Aşağıdaki örnek görüntüleri kullanabilirsiniz:

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

Yardımcı sınıfı tanımlama

Program sınıfına aşağıdaki sınıf tanımını ekleyin. Bu iç sınıf görüntü denetimi sonuçlarını işler.

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

Görüntü moderasyonu yöntemini tanımlama

Aşağıdaki yöntem bir metin dosyasındaki görüntü URL'leri aracılığıyla yinelenir, bir EvaluationData örneği oluşturur ve görüntüyü yetişkinlere yönelik/müstehcen içerik, metin ve insan yüzleri için analiz eder. Ardından son EvaluationData örneğini bir listeye ekler ve döndürülen verilerin tam listesini konsola yazar.

Görüntüler arasında yineleme

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

İçeriği analiz etme

Content Moderator'ın görüntü öznitelikleri hakkında daha fazla bilgi için Bkz . Görüntü moderasyonu kavramları kılavuzu.

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

Denetim sonuçlarını dosyaya yazma

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

Uygulamayı çalıştırma

IDE penceresinin üst kısmındaki Hata Ayıkla düğmesine tıklayarak uygulamayı çalıştırın.

Kaynakları temizleme

Azure AI hizmetleri aboneliğini temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.

Sonraki adımlar

Bu hızlı başlangıçta, moderatör görevlerini gerçekleştirmek için Content Moderator .NET kitaplığını kullanmayı öğrendiniz. Ardından, kavramsal kılavuzu okuyarak görüntülerin veya diğer medyaların moderasyonu hakkında daha fazla bilgi edinin.

Java için Azure Content Moderator istemci kitaplığını kullanmaya başlayın. Maven paketini yüklemek için bu adımları izleyin ve temel görevler için örnek kodu deneyin.

Content Moderator rahatsız edici, riskli veya başka bir şekilde istenmeyen içeriği işlemenizi sağlayan bir yapay zeka hizmetidir. Metin, görüntü ve videoları taramak ve otomatik olarak içerik bayrakları uygulamak için yapay zeka destekli con çadır modu ration hizmetini kullanın. Düzenlemelere uymak veya kullanıcılarınız için hedeflenen ortamı korumak için uygulamanıza içerik filtreleme yazılımı oluşturun.

Java için Content Moderator istemci kitaplığını kullanarak:

  • Metni ortala
  • Görüntüleri denetleme

Başvuru belgeleri | Kitaplık kaynak kodu |Yapıtı (Maven)Örnekler |

Önkoşullar

Ayarlama

Yeni Gradle projesi oluşturma

Konsol penceresinde (cmd, PowerShell veya Bash gibi), uygulamanız için yeni bir dizin oluşturun ve bu dizine gidin.

mkdir myapp && cd myapp

gradle init Komutunu çalışma dizininizden çalıştırın. Bu komut, uygulamanızı oluşturmak ve yapılandırmak için çalışma zamanında kullanılan build.gradle.kts de dahil olmak üzere Gradle için temel derleme dosyaları oluşturur.

gradle init --type basic

DSL seçmeniz istendiğinde Kotlin'i seçin.

İstemci kitaplığını yükleme

build.gradle.kts dosyasını bulun ve tercih ettiğiniz IDE veya metin düzenleyici ile açın. Ardından aşağıdaki derleme yapılandırmasını kopyalayın. Bu yapılandırma, projeyi giriş noktası ContentModeratorQuickstart sınıfı olan bir Java uygulaması olarak tanımlar. Content Moderator istemci kitaplığını ve JSON serileştirmesi için GSON sdk'sını içeri aktarır.

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

Java dosyası oluşturma

Çalışma dizininizden aşağıdaki komutu çalıştırarak bir proje kaynak klasörü oluşturun:

mkdir -p src/main/java

Yeni klasöre gidin ve ContentModeratorQuickstart.java adlı bir dosya oluşturun. Tercih ettiğiniz düzenleyicide veya IDE'de açın ve aşağıdaki import deyimleri ekleyin:

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

İpucu

Tüm hızlı başlangıç kodunu aynı anda görüntülemek mi istiyorsunuz? Bunu, bu hızlı başlangıçtaki kod örneklerini içeren GitHub’da bulabilirsiniz.

Uygulamanın ContentModeratorQuickstart sınıfında, kaynağınızın anahtarı ve uç noktası için değişkenler oluşturun.

Önemli

Azure portalına gidin. Önkoşullar bölümünde oluşturduğunuz Content Moderator kaynağı başarıyla dağıtıldıysa, Sonraki Adımlar'ın altındaki Kaynağa Git düğmesine tıklayın. Anahtarınızı ve uç noktanızı kaynağın anahtar ve uç nokta sayfasında, kaynak yönetimi altında bulabilirsiniz.

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

Önemli

İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve asla herkese açık olarak göndermeyin. Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.

Uygulamanın ana yönteminde, bu hızlı başlangıçta kullanılan yöntemler için çağrılar ekleyin. Bu yöntemleri daha sonra tanımlayacaksınız.

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

Nesne modeli

Aşağıdaki sınıflar Content Moderator Java istemci kitaplığının bazı önemli özelliklerini işler.

Veri Akışı Adı Açıklama
ContentModeratorClient Bu sınıf tüm Content Moderator işlevleri için gereklidir. Bu örneği abonelik bilgilerinizle oluşturur ve diğer sınıfların örneklerini oluşturmak için kullanırsınız.
ImageModeration Bu sınıf yetişkinlere yönelik içerik, kişisel bilgiler veya insan yüzleri için görüntüleri analiz etme işlevselliği sağlar.
TextModerations Bu sınıf dil, küfür, hatalar ve kişisel bilgiler için metin analizine yönelik işlevsellik sağlar.

Kod örnekleri

Bu kod parçacıkları, Java için Content Moderator istemci kitaplığıyla aşağıdaki görevlerin nasıl yapılacağını gösterir:

İstemcinin kimliğini doğrulama

Uygulamanın main yönteminde, abonelik uç noktası değerinizi ve abonelik anahtarınızı kullanarak bir ContentModeratorClient nesnesi oluşturun.

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

Metni ortala

Örnek metni ayarlama

ContentModeratorQuickstart sınıfınızın en üstünde yerel metin dosyasına başvuru tanımlayın. Proje dizininize bir .txt dosyası ekleyin ve analiz etmek istediğiniz metni girin.

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

Metni analiz etme

.txt dosyasını okuyan ve her satırda screenText yöntemini çağıran yeni bir yöntem oluşturun.

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

Denetim sonuçlarını proje dizininizdeki bir .json dosyasına yazdırmak için aşağıdaki kodu ekleyin.

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

try yöntemini tamamlamak için ve catch deyimini kapatın.

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

Görüntüleri denetleme

Örnek görüntüyü ayarlama

Yeni bir yöntemde, görüntüye işaret eden belirli bir URL dizesiyle bodyModelModel nesnesi oluşturun.

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

Yardımcı sınıfı tanımlama

Ardından ContentModeratorQuickstart.java dosyanıza ContentModeratorQuickstart sınıfının içine aşağıdaki sınıf tanımını ekleyin. Bu iç sınıf, görüntü denetleme işleminde kullanılır.

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

İçeriği analiz etme

Bu kod satırı, yetişkinlere yönelik veya müstehcen içerik için verilen URL'deki görüntüyü denetler. Bu terimler hakkında bilgi için görüntü denetimi kavramsal kılavuzuna bakın.

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

Metni denetleme

Bu kod satırı, görüntüde görünür metinleri denetler.

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

Yüzleri denetleme

Bu kod satırı, görüntüyü insan yüzleri için denetler.

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

Son olarak, döndürülen bilgileri listede depolayın EvaluationData .

resultsList.add(imageData);

Döngüden while sonra, sonuçları konsola ve src/main/resources/ModerationOutput.json çıkış dosyasına yazdıran aşağıdaki kodu ekleyin.

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

deyimini try kapatın ve yöntemini tamamlamak için bir catch deyim ekleyin.

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

Uygulamayı çalıştırma

Uygulamayı şu şekilde oluşturabilirsiniz:

gradle build

Uygulamayı şu komutla gradle run çalıştırın:

gradle run

Ardından src/main/resources/ModerationOutput.json dosyasına gidin ve con çadır modu ration sonuçlarınızı görüntüleyin.

Kaynakları temizleme

Azure AI hizmetleri aboneliğini temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.

Sonraki adımlar

Bu hızlı başlangıçta, moderatör görevlerini gerçekleştirmek için Content Moderator Java kitaplığını kullanmayı öğrendiniz. Ardından, kavramsal kılavuzu okuyarak görüntülerin veya diğer medyaların moderasyonu hakkında daha fazla bilgi edinin.

Python için Azure Content Moderator istemci kitaplığını kullanmaya başlayın. PiPy paketini yüklemek için bu adımları izleyin ve temel görevler için örnek kodu deneyin.

Content Moderator rahatsız edici, riskli veya başka bir şekilde istenmeyen içeriği işlemenizi sağlayan bir yapay zeka hizmetidir. Metin, görüntü ve videoları taramak ve otomatik olarak içerik bayrakları uygulamak için yapay zeka destekli con çadır modu ration hizmetini kullanın. Düzenlemelere uymak veya kullanıcılarınız için hedeflenen ortamı korumak için uygulamanıza içerik filtreleme yazılımı oluşturun.

Python için Content Moderator istemci kitaplığını kullanarak:

  • Metni ortala
  • Özel terimler listesi kullanma
  • Görüntüleri denetleme
  • Özel görüntü listesi kullanma

Başvuru belgeleri | Kitaplık kaynak kodu | Paketi (PiPy)Örnekler |

Önkoşullar

  • Azure aboneliği - Ücretsiz olarak oluşturun
  • Python 3.x
    • Python yüklemeniz pip içermelidir. Pip'in yüklü olup olmadığını denetlemek için komut satırında komutunu çalıştırabilirsiniz pip --version . Python'ın en son sürümünü yükleyerek pip alın.
  • Azure aboneliğinizi aldıktan sonra anahtarınızı ve uç noktanızı almak için Azure portalında bir Content Moderator kaynağı oluşturun. Dağıtmasını bekleyin ve Kaynağa git düğmesine tıklayın.
    • Uygulamanızı Content Moderator'a bağlamak için oluşturduğunuz kaynaktan anahtara ve uç noktaya ihtiyacınız olacaktır. Anahtarınızı ve uç noktanızı hızlı başlangıcın ilerleyen bölümlerinde aşağıdaki koda yapıştıracaksınız.
    • Hizmeti denemek ve daha sonra üretim için ücretli bir katmana yükseltmek için ücretsiz fiyatlandırma katmanını (F0) kullanabilirsiniz.

Ayarlama

İstemci kitaplığını yükleme

Python'ı yükledikten sonra aşağıdaki komutu kullanarak Content Moderator istemci kitaplığını yükleyebilirsiniz:

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

Yeni Python uygulaması oluşturma

Yeni bir Python betiği oluşturun ve bunu tercih ettiğiniz düzenleyicide veya IDE'de açın. Ardından dosyanın en üstüne aşağıdaki import deyimleri ekleyin.

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

İpucu

Tüm hızlı başlangıç kodunu aynı anda görüntülemek mi istiyorsunuz? Bunu, bu hızlı başlangıçtaki kod örneklerini içeren GitHub’da bulabilirsiniz.

Ardından, kaynağınızın uç nokta konumu ve anahtarı için değişkenler oluşturun.

Önemli

Azure portalına gidin. Önkoşullar bölümünde oluşturduğunuz Content Moderator kaynağı başarıyla dağıtıldıysa, Sonraki Adımlar'ın altındaki Kaynağa Git düğmesine tıklayın. Anahtarınızı ve uç noktanızı kaynağın anahtar ve uç nokta sayfasında, kaynak yönetimi altında bulabilirsiniz.

CONTENT_MODERATOR_ENDPOINT = "PASTE_YOUR_CONTENT_MODERATOR_ENDPOINT_HERE"
subscription_key = "PASTE_YOUR_CONTENT_MODERATOR_SUBSCRIPTION_KEY_HERE"

Önemli

İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve asla herkese açık olarak göndermeyin. Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.

Nesne modeli

Aşağıdaki sınıflar, Content Moderator Python istemci kitaplığının bazı önemli özelliklerini işler.

Veri Akışı Adı Açıklama
ContentModeratorClient Bu sınıf tüm Content Moderator işlevleri için gereklidir. Bu örneği abonelik bilgilerinizle oluşturur ve diğer sınıfların örneklerini oluşturmak için kullanırsınız.
ImageModerationOperations Bu sınıf yetişkinlere yönelik içerik, kişisel bilgiler veya insan yüzleri için görüntüleri analiz etme işlevselliği sağlar.
TextModerationOperations Bu sınıf dil, küfür, hatalar ve kişisel bilgiler için metin analizine yönelik işlevsellik sağlar.

Kod örnekleri

Bu kod parçacıkları, Python için Content Moderator istemci kitaplığıyla aşağıdaki görevlerin nasıl yapılacağını gösterir:

İstemcinin kimliğini doğrulama

Uç noktanız ve anahtarınız ile bir istemci örneği oluşturun. Anahtarınızla bir CognitiveServicesCredentials](/python/api/msrest/msrest.authentication.cognitiveservicescredentials nesnesi oluşturun ve bunu uç noktanızla birlikte kullanarak bir ContentModeratorClient nesnesi oluşturun.

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

Metni ortala

Aşağıdaki kod, bir metin gövdesini analiz etmek ve sonuçları konsola yazdırmak için Content Moderator istemcisini kullanır. İlk olarak, projenizin kökünde bir text_files/ klasörü oluşturun ve bir content_moderator_text_moderation.txt dosyası ekleyin. Bu dosyaya kendi metninizi ekleyin veya aşağıdaki örnek metni kullanın:

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

Yeni klasöre bir başvuru ekleyin.

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

Ardından Python betiğinize aşağıdaki kodu ekleyin.

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

Özel terimler listesi kullanma

Aşağıdaki kod, metin denetimi için özel terimlerin listesinin nasıl yönetileceğini gösterir. ListManagementTermListsOperations sınıfını kullanarak bir terim listesi oluşturabilir, tek tek terimleri yönetebilir ve diğer metin gövdelerini buna karşı filtreleyebilirsiniz.

Örnek metin alma

Bu örneği kullanmak için projenizin kökünde bir text_files/ klasörü oluşturmanız ve bir content_moderator_term_list.txt dosyası eklemeniz gerekir. Bu dosya, terim listesine göre denetlenecek organik metin içermelidir. Aşağıdaki örnek metni kullanabilirsiniz:

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

Henüz tanımlamadıysanız klasöre bir başvuru ekleyin.

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

Liste oluştur

Özel terimler listesi oluşturmak ve kimlik değerini kaydetmek için Python betiğinize aşağıdaki kodu ekleyin.

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

Liste ayrıntılarını tanımlama

Bir listenin adını ve açıklamasını düzenlemek için kimlik bilgilerini kullanabilirsiniz.

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

Listeye terim ekleme

Aşağıdaki kod, ve "term2" terimlerini "term1" listeye ekler.

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

Listedeki tüm terimleri alma

Listedeki tüm terimleri döndürmek için liste kimliğini kullanabilirsiniz.

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

Liste dizinini yenileme

Listeye terim eklediğinizde veya listeden terimleri kaldırdığınızda, güncelleştirilmiş listeyi kullanabilmek için önce dizini yenilemeniz gerekir.

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

Listede ekran metni

Özel terimler listesinin temel işlevi, bir metin gövdesini listeyle karşılaştırmak ve eşleşen terimler olup olmadığını bulmaktır.

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

Listeden terim kaldırma

Aşağıdaki kod terimi "term1" listeden kaldırır.

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

Listeden tüm terimleri kaldırma

Tüm terimlerinin listesini temizlemek için aşağıdaki kodu kullanı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")

Liste silme

Özel terim listesini silmek için aşağıdaki kodu kullanın.

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

Görüntüleri denetleme

Aşağıdaki kod, görüntüleri yetişkinlere yönelik ve müstehcen içeriğe yönelik analiz etmek için ImageModerationOperations nesnesiyle birlikte content Moderator istemcisini kullanır.

Örnek görüntüleri alma

Analiz etmek için bazı görüntülere başvuru tanımlayın.

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

Ardından görüntülerinizde yineleme yapmak için aşağıdaki kodu ekleyin. Bu bölümdeki kodun geri kalanı bu döngünün içine gider.

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

Yetişkinlere yönelik/müstehcen içeriği denetleme

Aşağıdaki kod, yetişkinlere yönelik veya müstehcen içerik için verilen URL'deki görüntüyü denetler ve sonuçları konsola yazdırır. Bu terimlerin anlamı hakkında bilgi için görüntü denetimi kavramları kılavuzuna bakın.

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

Görünür metni denetleme

Aşağıdaki kod, görüntüde görünür metin içeriğini denetler ve sonuçları konsola yazdırır.

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

Yüzleri denetleme

Aşağıdaki kod, görüntüyü insan yüzleri için denetler ve sonuçları konsola yazdırır.

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

Özel görüntü listesi kullanma

Aşağıdaki kod, görüntü denetimi için özel görüntü listesinin nasıl yönetileceğini gösterir. Bu özellik, platformunuz sık sık taramak istediğiniz aynı görüntü kümesinin örneklerini alıyorsa kullanışlıdır. Bu belirli görüntülerin listesini tutarak performansı geliştirebilirsiniz. ListManagementImageListsOperations sınıfı, bir görüntü listesi oluşturmanıza, listedeki görüntüleri tek tek yönetmenize ve diğer görüntüleri bununla karşılaştırmanıza olanak tanır.

Bu senaryoda kullanacağınız görüntü URL'lerini depolamak için aşağıdaki metin değişkenlerini oluşturun.

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

Not

Bu, doğru listenin kendisi değil, kodun bölümüne eklenecek add images resimlerin resmi olmayan bir listesidir.

Resim listesi oluşturma

Aşağıdaki kodu ekleyerek bir görüntü listesi oluşturun ve kimliğine bir başvuru kaydedin.

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

Listeye resim ekleme

Aşağıdaki kod tüm görüntülerinizi listeye ekler.

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

add_images yardımcı işlevini betiğinizin başka bir yerinde tanımlayın.

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

Resimleri listeye alma

Aşağıdaki kod, listenizdeki tüm görüntülerin adlarını yazdırır.

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

Liste ayrıntılarını güncelleştirme

Listenin adını ve açıklamasını güncelleştirmek için liste kimliğini kullanabilirsiniz.

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

Liste ayrıntılarını alma

Listenizin geçerli ayrıntılarını yazdırmak için aşağıdaki kodu kullanın.

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

Liste dizinini yenileme

Görüntüleri ekledikten veya kaldırdıktan sonra, diğer görüntüleri görüntülemek için kullanabilmeniz için önce liste dizinini yenilemeniz gerekir.

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

Resimleri listeyle eşleştirme

Görüntü listelerinin temel işlevi, yeni görüntüleri karşılaştırmak ve eşleşme olup olmadığına bakmaktır.

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

Listeden resim kaldırma

Aşağıdaki kod listeden bir öğeyi kaldırır. Bu durumda, liste kategorisiyle eşleşmeyen bir görüntüdür.

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

Listeden tüm resimleri kaldırma

Görüntü listesini temizlemek için aşağıdaki kodu kullanın.

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

Resim listesini silme

Belirli bir görüntü listesini silmek için aşağıdaki kodu kullanın.

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

Uygulamayı çalıştırma

Uygulamayı hızlı başlangıç dosyanızdaki python komutuyla çalıştırın.

python quickstart-file.py

Kaynakları temizleme

Azure AI hizmetleri aboneliğini temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.

Sonraki adımlar

Bu hızlı başlangıçta, moderatör görevlerini gerçekleştirmek için Content Moderator Python kitaplığını kullanmayı öğrendiniz. Ardından, kavramsal kılavuzu okuyarak görüntülerin veya diğer medyaların moderasyonu hakkında daha fazla bilgi edinin.

Azure Content Moderator REST API'sini kullanmaya başlayın.

Content Moderator rahatsız edici, riskli veya başka bir şekilde istenmeyen içeriği işlemenizi sağlayan bir yapay zeka hizmetidir. Metin, görüntü ve videoları taramak ve otomatik olarak içerik bayrakları uygulamak için yapay zeka destekli con çadır modu ration hizmetini kullanın. Düzenlemelere uymak veya kullanıcılarınız için hedeflenen ortamı korumak için uygulamanıza içerik filtreleme yazılımı oluşturun.

Content Moderator REST API'sini kullanarak şunları yapın:

  • Metni ortala
  • Görüntüleri denetleme

Önkoşullar

  • Azure aboneliği - Ücretsiz olarak oluşturun
  • Azure aboneliğinizi aldıktan sonra anahtarınızı ve uç noktanızı almak için Azure portalında bir Content Moderator kaynağı oluşturun. Dağıtmasını bekleyin ve Kaynağa git düğmesine tıklayın.
    • Uygulamanızı Content Moderator'a bağlamak için oluşturduğunuz kaynaktan anahtara ve uç noktaya ihtiyacınız olacaktır. Anahtarınızı ve uç noktanızı hızlı başlangıcın ilerleyen bölümlerinde aşağıdaki koda yapıştıracaksınız.
    • Hizmeti denemek ve daha sonra üretim için ücretli bir katmana yükseltmek için ücretsiz fiyatlandırma katmanını (F0) kullanabilirsiniz.
  • PowerShell sürüm 6.0+ veya benzer bir komut satırı uygulaması.

Metni ortala

Bir metin gövdesini analiz etmek ve sonuçları konsola yazdırmak için Content Moderator API'sini çağırmak için aşağıdaki gibi bir komut kullanacaksınız.

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"

Komutu bir metin düzenleyicisine kopyalayın ve aşağıdaki değişiklikleri yapın:

  1. Geçerli Yüz Tanıma abonelik anahtarınıza atayın Ocp-Apim-Subscription-Key .

    Önemli

    İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve asla herkese açık olarak göndermeyin. Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.

  2. Sorgu URL'sinin ilk bölümünü abonelik anahtarınıza karşılık gelen uç noktayla eşleşecek şekilde değiştirin.

    Not

    1 Temmuz 2019'da oluşturulan yeni kaynaklar özel alt etki alanı adlarını kullanacaktır. Daha fazla bilgi ve bölgesel uç noktaların tam listesi için bkz . Azure AI hizmetleri için özel alt etki alanı adları.

  3. İsteğe bağlı olarak, isteğin gövdesini analiz etmek istediğiniz metin dizesiyle değiştirin.

Değişikliklerinizi yaptıktan sonra bir komut istemi açın ve yeni komutu girin.

Sonuçları inceleme

Konsol penceresinde metin denetimi sonuçlarının JSON verileri olarak görüntülendiğini görmeniz gerekir. Örneğin:

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

Content Moderator tarafından görüntülenen metin öznitelikleri hakkında daha fazla bilgi için Bkz . Metin moderasyonu kavramları kılavuzu.

Görüntüleri denetleme

Uzak bir görüntüyü denetlemek ve sonuçları konsola yazdırmak için Content Moderator API'sini çağırmak için aşağıdaki gibi bir komut kullanacaksınız.

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

Komutu bir metin düzenleyicisine kopyalayın ve aşağıdaki değişiklikleri yapın:

  1. Geçerli Yüz Tanıma abonelik anahtarınıza atayın Ocp-Apim-Subscription-Key .
  2. Sorgu URL'sinin ilk bölümünü abonelik anahtarınıza karşılık gelen uç noktayla eşleşecek şekilde değiştirin.
  3. İsteğe bağlı olarak istek gövdesindeki URL'yi, moderatörlüğünü yapmak istediğiniz uzak görüntüyle değiştirin "Value" .

İpucu

Ayrıca bayt verilerini istek gövdesine geçirerek yerel görüntüleri de yönetebilirsiniz. Bunun nasıl yapılacağını öğrenmek için başvuru belgelerine bakın.

Değişikliklerinizi yaptıktan sonra bir komut istemi açın ve yeni komutu girin.

Sonuçları inceleme

Görüntü denetimi sonuçlarının konsol penceresinde JSON verileri olarak görüntülendiğini görmeniz gerekir.

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

Content Moderator'ın görüntü öznitelikleri hakkında daha fazla bilgi için Bkz . Görüntü moderasyonu kavramları kılavuzu.

Kaynakları temizleme

Azure AI hizmetleri aboneliğini temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.

Sonraki adımlar

Bu hızlı başlangıçta, moderatör görevlerini gerçekleştirmek için Content Moderator REST API'sini kullanmayı öğrendiniz. Ardından, kavramsal kılavuzu okuyarak görüntülerin veya diğer medyaların moderasyonu hakkında daha fazla bilgi edinin.