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
- Azure aboneliği - Ücretsiz bir abonelik oluşturun
- Java Geliştirme Seti'nin (JDK) geçerli sürümü
- Gradle derleme aracı veya başka bir bağımlılık yöneticisi.
- 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 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());
}
}
Metin denetimi sonuçlarını yazdırma
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);
Sonuçları yazdırma
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.
- Python yüklemeniz pip içermelidir. Pip'in yüklü olup olmadığını denetlemek için komut satırında komutunu çalıştırabilirsiniz
- 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
- Metni ortala
- Özel terimler listesi kullanma
- Görüntüleri denetleme
- Özel görüntü listesi kullanma
İ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:
- Geçerli Yüz Tanıma abonelik anahtarınıza atayın
Ocp-Apim-Subscription-Key
. - 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ı.
- İ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:
- Geçerli Yüz Tanıma abonelik anahtarınıza atayın
Ocp-Apim-Subscription-Key
. - 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.
- İ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.