Teilen über


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.

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 für Ihre Ressource einen eindeutigen Namen ein. Wählen Sie Ihr Abonnement aus, und wählen Sie dann eine Ressourcengruppe, eine unterstützte Region (USA, Osten oder Europa, Westen) und einen unterstützten Tarif. Klicken Sie anschließend auf Erstellen.
    • 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.

Wir unterstützen die Bildformate JPEG, PNG, GIF, BMP, TIFF und WEBP. Die maximale Größe für Bildübermittlungen ist 4 MB. Die Bildabmessungen müssen im Bereich 50 x 50 Pixel und 2.048 x 2.048 Pixel liegen. Wenn Ihr Format animiert ist, extrahieren wir den ersten Frame, um die Erkennung 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 Content Safety-Instanz, und weisen Sie der Identität die Rolle Mitwirkender/Besitzer/Leser von Storage-Blobdaten zu:

    1. Aktivieren Sie die verwaltete Identität für die Azure KI Content Safety-Instanz.

      Screenshot des Azure-Portals mit Aktivierung der verwalteten Identität.

    2. Weisen Sie der verwalteten Identität die Rolle Mitwirkender an/Besitzer/Leser von Storage-Blobdaten zu. Alle nachstehend hervorgehobenen Rollen sollten funktionieren.

      Screenshot der Seite „Rollenzuweisung hinzufügen“ im Azure-Portal.

      Screenshot mit im Azure-Portal zugewiesenen Rollen.

      Screenshot der Rolle „Verwaltete Identität“.

Analysieren von Bildinhalten

Fügen Sie den nachstehenden Befehl in einen Text-Editor ein, und nehmen Sie folgende Änderungen vor.

  1. Ersetzen Sie <endpoint> durch die URL Ihres Ressourcenendpunkts.
  2. Ersetzen Sie <your_subscription_key> durch Ihren Schlüssel.
  3. 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=2023-10-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, sieht der Anforderungstext wie folgt aus:

{
 "image": {
   "blobUrl": "<your_storage_url>"
 }
}

Öffnen Sie ein Eingabeaufforderungsfenster, und führen Sie den cURL-Befehl aus.

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=2023-10-01. Beispiel: <endpoint>/contentsafety/image:analyze?api-version=2023-10-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 2048 × 2048 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

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 für Ihre Ressource einen eindeutigen Namen ein. Wählen Sie Ihr Abonnement aus, und wählen Sie dann eine Ressourcengruppe, eine unterstützte Region (USA, Osten oder Europa, Westen) und einen unterstützten Tarif. Klicken Sie anschließend auf Erstellen.
    • 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.

Tipp

Fügen Sie den Schlüssel nicht direkt in Ihren Code ein, und machen Sie ihn nicht öffentlich. Im Artikel zur Azure KI Services-Sicherheit finden Sie weitere Authentifizierungsoptionen, wie zum Beispiel Azure Key Vault.

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.

  1. Zum Festlegen der Umgebungsvariablen CONTENT_SAFETY_KEY ersetzen Sie YOUR_CONTENT_SAFETY_KEY durch einen der Schlüssel für Ihre Ressource.
  2. Zum Festlegen der Umgebungsvariablen CONTENT_SAFETY_ENDPOINT ersetzen Sie YOUR_CONTENT_SAFETY_ENDPOINT durch den Endpunkt für Ihre Ressource.
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 für Ihre Ressource einen eindeutigen Namen ein. Wählen Sie Ihr Abonnement aus, und wählen Sie dann eine Ressourcengruppe, eine unterstützte Region (USA, Osten oder Europa, Westen) und einen unterstützten Tarif. Klicken Sie anschließend auf Erstellen.
    • 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.

Erstellen von Umgebungsvariablen

In diesem Beispiel schreiben Sie Ihre Anmeldeinformationen in Umgebungsvariablen auf dem lokalen Computer, auf dem die Anwendung ausgeführt wird.

Tipp

Fügen Sie den Schlüssel nicht direkt in Ihren Code ein, und machen Sie ihn nicht öffentlich. Im Artikel zur Azure KI Services-Sicherheit finden Sie weitere Authentifizierungsoptionen, wie zum Beispiel Azure Key Vault.

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.

  1. Zum Festlegen der Umgebungsvariablen CONTENT_SAFETY_KEY ersetzen Sie YOUR_CONTENT_SAFETY_KEY durch einen der Schlüssel für Ihre Ressource.
  2. Zum Festlegen der Umgebungsvariablen CONTENT_SAFETY_ENDPOINT ersetzen Sie YOUR_CONTENT_SAFETY_ENDPOINT durch den Endpunkt für Ihre Ressource.
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.

  1. Öffnen Sie eine Eingabeaufforderung, navigieren Sie zu Ihrem Projektordner, und erstellen Sie eine neue Datei mit dem Namen quickstart.py.

  2. Führen Sie diesen Befehl aus, um die Azure KI Content Safety-Clientbibliothek zu installieren:

    python -m pip install azure-ai-contentsafety
    
  3. 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()
    
  4. Ersetzen Sie "sample_data" und "image.jpg" durch den Pfad und Dateinamen der lokalen Datei, die Sie verwenden möchten.

  5. 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 für Ihre Ressource einen eindeutigen Namen ein. Wählen Sie Ihr Abonnement aus, und wählen Sie dann eine Ressourcengruppe, eine unterstützte Region (USA, Osten oder Europa, Westen) und einen unterstützten Tarif. Klicken Sie anschließend auf Erstellen.
    • 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.

Tipp

Fügen Sie den Schlüssel nicht direkt in Ihren Code ein, und machen Sie ihn nicht öffentlich. Im Artikel zur Azure KI Services-Sicherheit finden Sie weitere Authentifizierungsoptionen, wie zum Beispiel Azure Key Vault.

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.

  1. Zum Festlegen der Umgebungsvariablen CONTENT_SAFETY_KEY ersetzen Sie YOUR_CONTENT_SAFETY_KEY durch einen der Schlüssel für Ihre Ressource.
  2. Zum Festlegen der Umgebungsvariablen CONTENT_SAFETY_ENDPOINT ersetzen Sie YOUR_CONTENT_SAFETY_ENDPOINT durch den Endpunkt für Ihre Ressource.
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 für Ihre Ressource einen eindeutigen Namen ein. Wählen Sie Ihr Abonnement aus, und wählen Sie dann eine Ressourcengruppe, eine unterstützte Region (USA, Osten oder Europa, Westen) und einen unterstützten Tarif. Klicken Sie anschließend auf Erstellen.
    • 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.

Tipp

Fügen Sie den Schlüssel nicht direkt in Ihren Code ein, und machen Sie ihn nicht öffentlich. Im Artikel zur Azure KI Services-Sicherheit finden Sie weitere Authentifizierungsoptionen, wie zum Beispiel Azure Key Vault.

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.

  1. Zum Festlegen der Umgebungsvariablen CONTENT_SAFETY_KEY ersetzen Sie YOUR_CONTENT_SAFETY_KEY durch einen der Schlüssel für Ihre Ressource.
  2. Zum Festlegen der Umgebungsvariablen CONTENT_SAFETY_ENDPOINT ersetzen Sie YOUR_CONTENT_SAFETY_ENDPOINT durch den Endpunkt für Ihre Ressource.
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.

Nächste Schritte

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.