Schnellstart: Analysieren von Bildinhalten
Erste Schritte mit Content Studio, REST-API oder Client SDKs für die einfache Bildmoderation. Der Dienst Azure KI Inhaltssicherheit bietet KI-Algorithmen zum Kennzeichnen anstößiger Inhalte. Führen Sie zum Ausprobieren die folgenden Schritte aus.
Weitere Informationen zur Bildmoderation finden Sie auf der SeiteKonzept der schädlichen Kategorien. Informationen zu API-Eingabegrenzwerten finden Sie im Abschnitt Eingabeanforderungen der Übersicht.
Hinweis
Die Beispieldaten und der Code können anstößige Inhalte enthalten. Wir raten zu umsichtigem Vorgehen.
Voraussetzungen
- Azure-Abonnement: Kostenloses Azure-Konto
- Sobald Sie über ein Azure-Abonnement verfügen, können Sie im Azure-Portal eine Content Safety-Ressource erstellen, um Ihren Schlüssel und Endpunkt abzurufen. Geben Sie einen eindeutigen Namen für Ihre Ressource ein, wählen Sie Ihr Abonnement aus, und wählen Sie dann eine Ressourcengruppe, eine unterstützte Region (weitere Informationen unter Regionale Verfügbarkeit) und einen unterstützten Tarif aus. Wählen Sie dann Erstellen aus.
- Die Bereitstellung der Ressource dauert einige Minuten. Wählen Sie im Anschluss Zu Ressource wechseln aus. Wählen Sie im linken Bereich unter Ressourcenverwaltung die Option Abonnementschlüssel und Endpunkt aus. Der Endpunkt und einer der Schlüssel werden verwendet, um APIs aufzurufen.
- cURL muss installiert sein.
Analysieren von Bildinhalten
Der folgende Abschnitt führt Sie durch eine Beispielanforderung für die Bildmoderation mit cURL.
Vorbereiten eines Beispielbilds
Wählen Sie ein zu analysierendes Beispielbild aus, und laden Sie es auf Ihr Gerät herunter.
Siehe Eingabeanforderungen für die Bildbeschränkungen. Wenn Ihr Format animiert ist, extrahiert der Dienst den ersten Frame, um die Analyse vorzunehmen.
Sie können Ihr Bild mit einer von zwei Methoden eingeben: lokaler Filestream oder Blob Storage-URL.
Lokaler Filestream (empfohlen): Codieren Sie Ihr Image mit Base64. Zur Codierung eignet sich eine Website wie codebeautify. Speichern Sie dann die codierte Zeichenfolge an einem temporären Speicherort.
Blob Storage-URL: Laden Sie Ihr Bild in ein Azure Blob Storage-Konto hoch. Befolgen Sie den Schnellstart für Blob Storage, um zu erfahren, was zu tun ist. Öffnen Sie dann Azure Storage-Explorer, und rufen Sie die URL zu Ihrem Bild ab. Speichern Sie sie an einem temporären Speicherort.
Als Nächstes müssen Sie Ihrer Content Safety-Ressource Zugriff gewähren, um Daten aus der Azure Storage-Ressource lesen zu können. Aktivieren Sie die systemseitig zugewiesene verwaltete Identität für die Azure KI Inhaltssicherheit-Instanz, und weisen Sie der Identität die Rolle Mitwirkender/Besitzer von Speicherblobdaten zu:
Wichtig
Nur Speicherblobdaten-Mitwirkender oder Speicherblobdaten-Besitzer sind gültige Rollen, um fortzufahren.
Aktivieren Sie die verwaltete Identität für die Azure KI Content Safety-Instanz.
Weisen Sie der verwalteten Identität die Rolle Mitwirkender an/Besitzer von Storage-Blobdaten zu. Alle nachstehend hervorgehobenen Rollen sollten funktionieren.
Analysieren von Bildinhalten
Fügen Sie den nachstehenden Befehl in einen Text-Editor ein, und nehmen Sie folgende Änderungen vor.
- Ersetzen Sie
<endpoint>
durch Ihre Ressourcenendpunkt-URL. - Ersetzen Sie
<your_subscription_key>
durch Ihren Schlüssel. - Füllen Sie das Feld
"image"
im Textkörper entweder mit dem Feld des Typs"content"
oder"blobUrl"
auf. Beispiel:{"image": {"content": "<base_64_string>"}
oder{"image": {"blobUrl": "<your_storage_url>"}
.
curl --location --request POST '<endpoint>/contentsafety/image:analyze?api-version=2024-09-01' \
--header 'Ocp-Apim-Subscription-Key: <your_subscription_key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"image": {
"content": "<base_64_string>"
},
"categories": ["Hate", "SelfHarm", "Sexual", "Violence"],
"outputType": "FourSeverityLevels"
}'
Hinweis
Wenn Sie eine Blob Storage-URL verwenden, muss der Anforderungstext wie folgt aussehen:
{
"image": {
"blobUrl": "<your_storage_url>"
}
}
Folgende Felder müssen in der URL enthalten sein:
Name | Erforderlich? | Beschreibung | type |
---|---|---|---|
API-Version | Erforderlich | Die zu überprüfende API-Version. Die aktuelle Version lautet: api-version=2024-09-01 . Beispiel: <endpoint>/contentsafety/image:analyze?api-version=2024-09-01 |
String |
Die Parameter im Anforderungstext sind in der folgenden Tabelle definiert:
Name | Erforderlich? | Beschreibung | Typ |
---|---|---|---|
content | Erforderlich | Die Inhalts- oder Blob-URL des Bilds. Kann eine entweder Base64-codierte Bytezahl oder eine Blob-URL sein. Wenn beides angegeben ist, wird die Anforderung abgelehnt. Die maximal zulässige Bildgröße beträgt 7,200 × 7,200 Pixel, die maximale Dateigröße beträgt 4 MB. Die Mindestgröße des Bilds beträgt 50 × 50 Pixel. | String |
categories | Optional | Es wird davon ausgegangen, dass es sich hierbei um ein Array von Kategorienamen handelt. Eine Liste der verfügbaren Kategorienamen finden Sie im Leitfaden zu Schadenskategorien. Sind keine Kategorien angegeben, werden alle vier Kategorien verwendet. Es werden mehrere Kategorien verwendet, um Scores in einer einzelnen Anforderung zu erhalten. | String |
outputType | Optional | Die Bildmoderations-API unterstützt nur "FourSeverityLevels" . Ausgabeschweregrade in vier Stufen. Der Wert kann wie folgt lauten: 0,2,4,6 |
String |
Öffnen Sie ein Eingabeaufforderungsfenster, und führen Sie den cURL-Befehl aus.
Output
Die Ergebnisse der Bildmoderation sollten als JSON-Daten in der Konsole angezeigt werden. Beispiel:
{
"categoriesAnalysis": [
{
"category": "Hate",
"severity": 2
},
{
"category": "SelfHarm",
"severity": 0
},
{
"category": "Sexual",
"severity": 0
},
{
"category": "Violence",
"severity": 0
}
]
}
Die JSON-Felder in der Ausgabe werden hier definiert:
Name | Description | Typ |
---|---|---|
categoriesAnalysis | Jede Ausgabeklasse, die von der API vorhergesagt wird. Die Klassifizierung kann mit mehreren Bezeichnungen versehen werden. Wenn z. B. ein Bild in das Bildmoderationsmodell hochgeladen wird, könnte sein Inhalt sowohl als sexuell als auch als gewalttätig eingestuft werden. Schadenskategorien | String |
Severity | Der Schweregrad der Flag in jeder Schadenskategorie. Schadenskategorien | Ganzzahl |
Referenzdokumentation | Quellcode der Bibliothek | Paket (NuGet) | Beispiele
Voraussetzungen
- Azure-Abonnement: Kostenloses Azure-Konto
- Die Visual Studio-IDE mit Workload-.NET-Desktopentwicklung ist aktiviert. Alternativ, wenn Sie die Visual Studio IDE nicht verwenden möchten, benötigen Sie die aktuelle Version von .NET Core.
- .NET Runtime installiert.
- Sobald Sie über ein Azure-Abonnement verfügen, können Sie im Azure-Portal eine Content Safety-Ressource erstellen, um Ihren Schlüssel und Endpunkt abzurufen. Geben Sie einen eindeutigen Namen für Ihre Ressource ein, wählen Sie Ihr Abonnement aus, und wählen Sie dann eine Ressourcengruppe, eine unterstützte Region (weitere Informationen unter Regionale Verfügbarkeit) und einen unterstützten Tarif aus. Wählen Sie dann Erstellen aus.
- Die Bereitstellung der Ressource dauert einige Minuten. Wählen Sie im Anschluss Zu Ressource wechseln aus. Wählen Sie im linken Bereich unter Ressourcenverwaltung die Option Abonnementschlüssel und Endpunkt aus. Der Endpunkt und einer der Schlüssel werden verwendet, um APIs aufzurufen.
Anwendungseinrichtung
Erstellen einer neuen C#-Anwendung
Öffnen Sie Visual Studio, und wählen Sie unter Erste Schritte die Option Neues Projekt erstellen aus. Legen Sie die Vorlagenfilter auf C#/Alle Plattformen/Konsole fest. Wählen Sie Konsolen-App (Befehlszeilenanwendung, die unter .NET unter Windows, Linux und macOS ausgeführt werden kann) und dann Weiter aus. Aktualisieren Sie den Projektnamen auf ContentSafetyQuickstart, und wählen Sie Weiter aus. Wählen Sie .NET 6.0 oder höher und dann Erstellen aus, um das Projekt zu erstellen.
Installieren dem Client-SDK
Installieren Sie nach der Erstellung eines neuen Projekts das Client-SDK, indem Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe klicken und NuGet-Pakete verwalten auswählen. Wählen Sie im daraufhin geöffneten Paket-Manager die Option Durchsuchen aus, und suchen Sie nach Azure.AI.ContentSafety
. Wählen Sie Installieren aus.
Erstellen von Umgebungsvariablen
In diesem Beispiel schreiben Sie Ihre Anmeldeinformationen in Umgebungsvariablen auf dem lokalen Computer, auf dem die Anwendung ausgeführt wird.
Um die Umgebungsvariable für Ihren Ressourcenschlüssel und Endpunkt festzulegen, öffnen Sie ein Konsolenfenster und befolgen Sie die Anweisungen für Ihr Betriebssystem und Ihre Entwicklungsumgebung.
- Zum Festlegen der Umgebungsvariablen
CONTENT_SAFETY_KEY
ersetzen SieYOUR_CONTENT_SAFETY_KEY
durch einen der Schlüssel für Ihre Ressource. - Zum Festlegen der Umgebungsvariablen
CONTENT_SAFETY_ENDPOINT
ersetzen SieYOUR_CONTENT_SAFETY_ENDPOINT
durch den Endpunkt für Ihre Ressource.
Wichtig
Wenn Sie einen API-Schlüssel verwenden, speichern Sie ihn an einer anderen Stelle sicher, z. B. in Azure Key Vault. Fügen Sie den API-Schlüssel nicht direkt in Ihren Code ein, und machen Sie ihn nicht öffentlich zugänglich.
Weitere Informationen zur Sicherheit von KI Services finden Sie unter Authentifizieren von Anforderungen an Azure KI Services.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
Nach dem Hinzufügen der Umgebungsvariablen müssen Sie möglicherweise alle ausgeführten Programme neu starten, die die Umgebungsvariablen lesen, z. B. das Konsolenfenster.
Analysieren von Bildinhalten
Öffnen Sie im Projektverzeichnis die Datei Program.cs, die zuvor erstellt wurde. Fügen Sie den folgenden Code ein.
using System;
using Azure.AI.ContentSafety;
namespace Azure.AI.ContentSafety.Dotnet.Sample
{
class ContentSafetySampleAnalyzeImage
{
public static void AnalyzeImage()
{
// retrieve the endpoint and key from the environment variables created earlier
string endpoint = Environment.GetEnvironmentVariable("CONTENT_SAFETY_ENDPOINT");
string key = Environment.GetEnvironmentVariable("CONTENT_SAFETY_KEY");
ContentSafetyClient client = new ContentSafetyClient(new Uri(endpoint), new AzureKeyCredential(key));
// Example: analyze image
string imagePath = @"sample_data\image.png";
ContentSafetyImageData image = new ContentSafetyImageData(BinaryData.FromBytes(File.ReadAllBytes(imagePath)));
var request = new AnalyzeImageOptions(image);
Response<AnalyzeImageResult> response;
try
{
response = client.AnalyzeImage(request);
}
catch (RequestFailedException ex)
{
Console.WriteLine("Analyze image failed.\nStatus code: {0}, Error code: {1}, Error message: {2}", ex.Status, ex.ErrorCode, ex.Message);
throw;
}
Console.WriteLine("Hate severity: {0}", response.Value.CategoriesAnalysis.FirstOrDefault(a => a.Category == ImageCategory.Hate)?.Severity ?? 0);
Console.WriteLine("SelfHarm severity: {0}", response.Value.CategoriesAnalysis.FirstOrDefault(a => a.Category == ImageCategory.SelfHarm)?.Severity ?? 0);
Console.WriteLine("Sexual severity: {0}", response.Value.CategoriesAnalysis.FirstOrDefault(a => a.Category == ImageCategory.Sexual)?.Severity ?? 0);
Console.WriteLine("Violence severity: {0}", response.Value.CategoriesAnalysis.FirstOrDefault(a => a.Category == ImageCategory.Violence)?.Severity ?? 0);
}
static void Main()
{
AnalyzeImage();
}
}
}
Erstellen Sie einen sample_data-Ordner in Ihrem Projektverzeichnis, und fügen Sie ihm eine image.png-Datei hinzu.
Erstellen Sie die Anwendung, und führen Sie sie aus, indem Sie im Menü Debuggen oben im IDE-Fenster auf Debuggen starten klicken (oder F5 drücken).
Referenzdokumentation | Quellcode der Bibliothek | Paket (PyPI) | Beispiele |
Voraussetzungen
- Azure-Abonnement: Kostenloses Azure-Konto
- Sobald Sie über ein Azure-Abonnement verfügen, können Sie im Azure-Portal eine Content Safety-Ressource erstellen, um Ihren Schlüssel und Endpunkt abzurufen. Geben Sie einen eindeutigen Namen für Ihre Ressource ein, wählen Sie Ihr Abonnement aus, und wählen Sie dann eine Ressourcengruppe, eine unterstützte Region (weitere Informationen unter Regionale Verfügbarkeit) und einen unterstützten Tarif aus. Wählen Sie dann Erstellen aus.
- Die Bereitstellung der Ressource dauert einige Minuten. Wählen Sie im Anschluss Zu Ressource wechseln aus. Wählen Sie im linken Bereich unter Ressourcenverwaltung die Option Abonnementschlüssel und Endpunkt aus. Der Endpunkt und einer der Schlüssel werden verwendet, um APIs aufzurufen.
- Python 3.8 oder höher
- Ihre Python-Installation sollte pip enthalten. Sie können überprüfen, ob pip installiert ist, indem Sie
pip --version
in der Befehlszeile ausführen. Installieren Sie die aktuelle Python-Version, um pip zu erhalten.
- Ihre Python-Installation sollte pip enthalten. Sie können überprüfen, ob pip installiert ist, indem Sie
Erstellen von Umgebungsvariablen
In diesem Beispiel schreiben Sie Ihre Anmeldeinformationen in Umgebungsvariablen auf dem lokalen Computer, auf dem die Anwendung ausgeführt wird.
Um die Umgebungsvariable für Ihren Ressourcenschlüssel und Endpunkt festzulegen, öffnen Sie ein Konsolenfenster und befolgen Sie die Anweisungen für Ihr Betriebssystem und Ihre Entwicklungsumgebung.
- Zum Festlegen der Umgebungsvariablen
CONTENT_SAFETY_KEY
ersetzen SieYOUR_CONTENT_SAFETY_KEY
durch einen der Schlüssel für Ihre Ressource. - Zum Festlegen der Umgebungsvariablen
CONTENT_SAFETY_ENDPOINT
ersetzen SieYOUR_CONTENT_SAFETY_ENDPOINT
durch den Endpunkt für Ihre Ressource.
Wichtig
Wenn Sie einen API-Schlüssel verwenden, speichern Sie ihn an einer anderen Stelle sicher, z. B. in Azure Key Vault. Fügen Sie den API-Schlüssel nicht direkt in Ihren Code ein, und machen Sie ihn nicht öffentlich zugänglich.
Weitere Informationen zur Sicherheit von KI Services finden Sie unter Authentifizieren von Anforderungen an Azure KI Services.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
Nach dem Hinzufügen der Umgebungsvariablen müssen Sie möglicherweise alle ausgeführten Programme neu starten, die die Umgebungsvariablen lesen, z. B. das Konsolenfenster.
Analysieren von Bildinhalten
Im folgenden Abschnitt wird eine Beispielanforderung mit dem Python SDK erläutert.
Öffnen Sie eine Eingabeaufforderung, navigieren Sie zu Ihrem Projektordner, und erstellen Sie eine neue Datei mit dem Namen quickstart.py.
Führen Sie diesen Befehl aus, um die Azure KI Content Safety-Clientbibliothek zu installieren:
python -m pip install azure-ai-contentsafety
Kopieren Sie den folgenden Code in quickstart.py:
import os from azure.ai.contentsafety import ContentSafetyClient from azure.ai.contentsafety.models import AnalyzeImageOptions, ImageData, ImageCategory from azure.core.credentials import AzureKeyCredential from azure.core.exceptions import HttpResponseError def analyze_image(): endpoint = os.environ.get('CONTENT_SAFETY_ENDPOINT') key = os.environ.get('CONTENT_SAFETY_KEY') image_path = os.path.join("sample_data", "image.jpg") # Create an Azure AI Content Safety client client = ContentSafetyClient(endpoint, AzureKeyCredential(key)) # Build request with open(image_path, "rb") as file: request = AnalyzeImageOptions(image=ImageData(content=file.read())) # Analyze image try: response = client.analyze_image(request) except HttpResponseError as e: print("Analyze image failed.") if e.error: print(f"Error code: {e.error.code}") print(f"Error message: {e.error.message}") raise print(e) raise hate_result = next(item for item in response.categories_analysis if item.category == ImageCategory.HATE) self_harm_result = next(item for item in response.categories_analysis if item.category == ImageCategory.SELF_HARM) sexual_result = next(item for item in response.categories_analysis if item.category == ImageCategory.SEXUAL) violence_result = next(item for item in response.categories_analysis if item.category == ImageCategory.VIOLENCE) if hate_result: print(f"Hate severity: {hate_result.severity}") if self_harm_result: print(f"SelfHarm severity: {self_harm_result.severity}") if sexual_result: print(f"Sexual severity: {sexual_result.severity}") if violence_result: print(f"Violence severity: {violence_result.severity}") if __name__ == "__main__": analyze_image()
Ersetzen Sie
"sample_data"
und"image.jpg"
durch den Pfad und Dateinamen der lokalen Datei, die Sie verwenden möchten.Führen Sie dann die Anwendung mit dem Befehl
python
für die Schnellstartdatei aus.python quickstart.py
Referenzdokumentation | Quellcode der Bibliothek | Artefakt (Maven) | Beispiele
Voraussetzungen
- Azure-Abonnement: Kostenloses Azure-Konto
- Aktuelle Version des Java Development Kit (JDK)
- Gradle-Buildtool oder einen anderen Abhängigkeit-Manager
- Sobald Sie über ein Azure-Abonnement verfügen, können Sie im Azure-Portal eine Content Safety-Ressource erstellen, um Ihren Schlüssel und Endpunkt abzurufen. Geben Sie einen eindeutigen Namen für Ihre Ressource ein, wählen Sie Ihr Abonnement aus, und wählen Sie dann eine Ressourcengruppe, eine unterstützte Region (weitere Informationen unter Regionale Verfügbarkeit) und einen unterstützten Tarif aus. Wählen Sie dann Erstellen aus.
- Die Bereitstellung der Ressource dauert einige Minuten. Wählen Sie im Anschluss Zu Ressource wechseln aus. Wählen Sie im linken Bereich unter Ressourcenverwaltung die Option Abonnementschlüssel und Endpunkt aus. Der Endpunkt und einer der Schlüssel werden verwendet, um APIs aufzurufen.
Anwendungseinrichtung
Erstellen eines neuen Gradle-Projekts
Erstellen Sie in einem Konsolenfenster (etwa cmd, PowerShell oder Bash) ein neues Verzeichnis für Ihre App, und rufen Sie es auf.
mkdir myapp && cd myapp
Führen Sie den Befehl gradle init
in Ihrem Arbeitsverzeichnis aus. Mit diesem Befehl werden grundlegende Builddateien für Gradle, u. a. die Datei build.gradle.kts, erstellt. Diese Datei wird zur Laufzeit zum Erstellen und Konfigurieren Ihrer Anwendung verwendet.
gradle init --type basic
Wenn Sie zur Auswahl einer DSL aufgefordert werden, wählen Sie Kotlin aus.
Führen Sie in Ihrem Arbeitsverzeichnis den folgenden Befehl aus, um einen Projektquellordner zu erstellen:
mkdir -p src/main/java
Navigieren Sie zu dem neuen Ordner, und erstellen Sie eine Datei namens ContentSafetyQuickstart.java.
Erstellen Sie außerdem im Stammverzeichnis Ihres Projekts einen Ordner namens src/resources
, und fügen Sie ihm ein Beispielbild hinzu.
Installieren dem Client-SDK
In dieser Schnellstartanleitung wird der Gradle-Abhängigkeits-Manager verwendet. Die Clientbibliothek und Informationen zu anderen Abhängigkeits-Managern finden Sie im zentralen Maven-Repository.
Navigieren Sie zur Datei build.gradle.kts, und öffnen Sie sie in Ihrer bevorzugten IDE bzw. Ihrem bevorzugten Text-Editor. Kopieren Sie anschließend die folgende Buildkonfiguration. Diese Konfiguration definiert das Projekt als Java-Anwendung, deren Einstiegspunkt die Klasse ContentSafetyQuickstart ist. Dies importiert die Azure KI Vision-Bibliothek.
plugins {
java
application
}
application {
mainClass.set("ContentSafetyQuickstart")
}
repositories {
mavenCentral()
}
dependencies {
implementation(group = "com.azure", name = "azure-ai-contentsafety", version = "1.0.0")
}
Erstellen von Umgebungsvariablen
In diesem Beispiel schreiben Sie Ihre Anmeldeinformationen in Umgebungsvariablen auf dem lokalen Computer, auf dem die Anwendung ausgeführt wird.
Um die Umgebungsvariable für Ihren Ressourcenschlüssel und Endpunkt festzulegen, öffnen Sie ein Konsolenfenster und befolgen Sie die Anweisungen für Ihr Betriebssystem und Ihre Entwicklungsumgebung.
- Zum Festlegen der Umgebungsvariablen
CONTENT_SAFETY_KEY
ersetzen SieYOUR_CONTENT_SAFETY_KEY
durch einen der Schlüssel für Ihre Ressource. - Zum Festlegen der Umgebungsvariablen
CONTENT_SAFETY_ENDPOINT
ersetzen SieYOUR_CONTENT_SAFETY_ENDPOINT
durch den Endpunkt für Ihre Ressource.
Wichtig
Wenn Sie einen API-Schlüssel verwenden, speichern Sie ihn an einer anderen Stelle sicher, z. B. in Azure Key Vault. Fügen Sie den API-Schlüssel nicht direkt in Ihren Code ein, und machen Sie ihn nicht öffentlich zugänglich.
Weitere Informationen zur Sicherheit von KI Services finden Sie unter Authentifizieren von Anforderungen an Azure KI Services.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
Nach dem Hinzufügen der Umgebungsvariablen müssen Sie möglicherweise alle ausgeführten Programme neu starten, die die Umgebungsvariablen lesen, z. B. das Konsolenfenster.
Analysieren von Bildinhalten
Öffnen Sie ContentSafetyQuickstart.java in Ihrem bevorzugten Editor oder Ihrer bevorzugten IDE, und fügen Sie den folgenden Code ein. Ersetzen Sie die Variable source
durch den Pfad zu Ihrem Beispielbild.
import com.azure.ai.contentsafety.ContentSafetyClient;
import com.azure.ai.contentsafety.ContentSafetyClientBuilder;
import com.azure.ai.contentsafety.models.AnalyzeImageOptions;
import com.azure.ai.contentsafety.models.AnalyzeImageResult;
import com.azure.ai.contentsafety.models.ContentSafetyImageData;
import com.azure.ai.contentsafety.models.ImageCategoriesAnalysis;
import com.azure.core.credential.KeyCredential;
import com.azure.core.util.BinaryData;
import com.azure.core.util.Configuration;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class ContentSafetyQuickstart {
public static void main(String[] args) throws IOException {
// get endpoint and key from environment variables
String endpoint = System.getenv("CONTENT_SAFETY_ENDPOINT");
String key = System.getenv("CONTENT_SAFETY_KEY");
ContentSafetyClient contentSafetyClient = new ContentSafetyClientBuilder()
.credential(new KeyCredential(key))
.endpoint(endpoint).buildClient();
ContentSafetyImageData image = new ContentSafetyImageData();
String cwd = System.getProperty("user.dir");
String source = "/src/samples/resources/image.png";
image.setContent(BinaryData.fromBytes(Files.readAllBytes(Paths.get(cwd, source))));
AnalyzeImageResult response =
contentSafetyClient.analyzeImage(new AnalyzeImageOptions(image));
for (ImageCategoriesAnalysis result : response.getCategoriesAnalysis()) {
System.out.println(result.getCategory() + " severity: " + result.getSeverity());
}
}
}
Navigieren Sie zurück zum Projektstammordner, und erstellen Sie die App mit:
gradle build
Führen Sie ihn dann mit dem gradle run
-Befehl aus:
gradle run
Ausgabe
Hate severity: 0
SelfHarm severity: 0
Sexual severity: 0
Violence severity: 0
Referenzdokumentation | Quellcode der Bibliothek | Paket (npm) | Beispiele |
Voraussetzungen
- Azure-Abonnement: Kostenloses Azure-Konto
- Die aktuelle Version von Node.js
- Sobald Sie über ein Azure-Abonnement verfügen, können Sie im Azure-Portal eine Content Safety-Ressource erstellen, um Ihren Schlüssel und Endpunkt abzurufen. Geben Sie einen eindeutigen Namen für Ihre Ressource ein, wählen Sie Ihr Abonnement aus, und wählen Sie dann eine Ressourcengruppe, eine unterstützte Region (weitere Informationen unter Regionale Verfügbarkeit) und einen unterstützten Tarif aus. Wählen Sie dann Erstellen aus.
- Die Bereitstellung der Ressource dauert einige Minuten. Wählen Sie im Anschluss Zu Ressource wechseln aus. Wählen Sie im linken Bereich unter Ressourcenverwaltung die Option Abonnementschlüssel und Endpunkt aus. Der Endpunkt und einer der Schlüssel werden verwendet, um APIs aufzurufen.
Anwendungseinrichtung
Erstellen Sie eine neue Node.js-Anwendung. Erstellen Sie in einem Konsolenfenster (etwa cmd, PowerShell oder Bash) ein neues Verzeichnis für Ihre App, und rufen Sie es auf.
mkdir myapp && cd myapp
Führen Sie den Befehl npm init
aus, um eine Knotenanwendung mit der Datei package.json
zu erstellen.
npm init
Erstellen Sie außerdem im Stammverzeichnis Ihres Projekts einen Ordner namens /resources
, und fügen Sie ihm ein Beispielbild hinzu.
Installieren dem Client-SDK
Installieren Sie das npm-Paket @azure-rest/ai-content-safety
:
npm install @azure-rest/ai-content-safety
Installieren Sie außerdem das Modul dotenv
, um Umgebungsvariablen zu verwenden:
npm install dotenv
Die Datei package.json
Ihrer App wird mit den Abhängigkeiten aktualisiert.
Erstellen von Umgebungsvariablen
In diesem Beispiel schreiben Sie Ihre Anmeldeinformationen in Umgebungsvariablen auf dem lokalen Computer, auf dem die Anwendung ausgeführt wird.
Um die Umgebungsvariable für Ihren Ressourcenschlüssel und Endpunkt festzulegen, öffnen Sie ein Konsolenfenster und befolgen Sie die Anweisungen für Ihr Betriebssystem und Ihre Entwicklungsumgebung.
- Zum Festlegen der Umgebungsvariablen
CONTENT_SAFETY_KEY
ersetzen SieYOUR_CONTENT_SAFETY_KEY
durch einen der Schlüssel für Ihre Ressource. - Zum Festlegen der Umgebungsvariablen
CONTENT_SAFETY_ENDPOINT
ersetzen SieYOUR_CONTENT_SAFETY_ENDPOINT
durch den Endpunkt für Ihre Ressource.
Wichtig
Wenn Sie einen API-Schlüssel verwenden, speichern Sie ihn an einer anderen Stelle sicher, z. B. in Azure Key Vault. Fügen Sie den API-Schlüssel nicht direkt in Ihren Code ein, und machen Sie ihn nicht öffentlich zugänglich.
Weitere Informationen zur Sicherheit von KI Services finden Sie unter Authentifizieren von Anforderungen an Azure KI Services.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
Nach dem Hinzufügen der Umgebungsvariablen müssen Sie möglicherweise alle ausgeführten Programme neu starten, die die Umgebungsvariablen lesen, z. B. das Konsolenfenster.
Analysieren von Bildinhalten
Erstellen Sie eine neue Datei in Ihrem Verzeichnis: index.js. Öffnen Sie die Datei in Ihrem bevorzugten Editor oder Ihrer bevorzugten IDE, und fügen Sie den folgenden Code ein. Ersetzen Sie die Variable image_path
durch den Pfad zu Ihrem Beispielbild.
const ContentSafetyClient = require("@azure-rest/ai-content-safety").default,
{ isUnexpected } = require("@azure-rest/ai-content-safety");
const { AzureKeyCredential } = require("@azure/core-auth");
const fs = require("fs");
const path = require("path");
// Load the .env file if it exists
require("dotenv").config();
async function main() {
// get endpoint and key from environment variables
const endpoint = process.env["CONTENT_SAFETY_ENDPOINT"];
const key = process.env["CONTENT_SAFETY_KEY"];
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
// replace with your own sample image file path
const image_path = path.resolve(__dirname, "./resources/image.jpg");
const imageBuffer = fs.readFileSync(image_path);
const base64Image = imageBuffer.toString("base64");
const analyzeImageOption = { image: { content: base64Image } };
const analyzeImageParameters = { body: analyzeImageOption };
const result = await client.path("/image:analyze").post(analyzeImageParameters);
if (isUnexpected(result)) {
throw result;
}
for (let i = 0; i < result.body.categoriesAnalysis.length; i++) {
const imageCategoriesAnalysisOutput = result.body.categoriesAnalysis[i];
console.log(
imageCategoriesAnalysisOutput.category,
" severity: ",
imageCategoriesAnalysisOutput.severity
);
}
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
Führen Sie die Anwendung mit dem Befehl node
für die Schnellstartdatei aus.
node index.js
Output
Hate severity: 0
SelfHarm severity: 0
Sexual severity: 0
Violence severity: 0
Bereinigen von Ressourcen
Wenn Sie ein Azure KI Services-Abonnement bereinigen und entfernen möchten, können Sie die Ressource oder die Ressourcengruppe löschen. Wenn Sie die Ressourcengruppe löschen, werden auch alle anderen Ressourcen gelöscht, die ihr zugeordnet sind.
Zugehöriger Inhalt
- Schadenskategorien
- Konfigurieren Sie Filter für jede Kategorie, und testen Sie Datasets mithilfe von Content Safety Studio. Exportieren Sie den Code, und stellen Sie ihn bereit.