Share via


QuickStart: Afbeeldingsinhoud analyseren

Ga aan de slag met de Content Studio-, REST API- of client-SDK's om eenvoudige beheer van installatiekopieën uit te voeren. De Azure AI Content Safety-service biedt ai-algoritmen voor het markeren van ongewenst inhoud. Volg deze stappen om het uit te proberen.

Notitie

De voorbeeldgegevens en code kunnen aanstootgevende inhoud bevatten. Gebruikers discretie wordt geadviseerd.

Vereisten

  • Een Azure-abonnement - Een gratis abonnement maken
  • Zodra u uw Azure-abonnement hebt, maakt u een Content Safety-resource in Azure Portal om uw sleutel en eindpunt op te halen. Voer een unieke naam in voor uw resource, selecteer uw abonnement en selecteer een resourcegroep, ondersteunde regio (VS - oost of Europa - west) en ondersteunde prijscategorie. Selecteer vervolgens Maken.
    • Het implementeren van de resource duurt enkele minuten. Nadat deze is voltooid, selecteert u naar de resource. Selecteer in het linkerdeelvenster onder Resourcebeheer de optie Abonnementssleutel en Eindpunt. Het eindpunt en een van de sleutels worden gebruikt om API's aan te roepen.
  • cURL geïnstalleerd

Inhoud van afbeelding analyseren

In de volgende sectie wordt een voorbeeld van een aanvraag voor afbeeldingsbeheer beschreven met cURL.

Een voorbeeldafbeelding voorbereiden

Kies een voorbeeldafbeelding die u wilt analyseren en download deze naar uw apparaat.

We ondersteunen JPEG-, PNG-, GIF-, BMP-, TIFF- of WEBP-afbeeldingsindelingen. De maximale grootte voor het indienen van afbeeldingen is 4 MB en de afmetingen van de afbeelding moeten tussen 50 x 50 pixels en 2048 x 2048 pixels zijn. Als uw indeling is geanimeerd, halen we het eerste frame uit om de detectie uit te voeren.

U kunt uw afbeelding op een van de volgende twee manieren invoeren: lokale filestream - of blobopslag-URL.

  • Lokale filestream (aanbevolen): Codeer uw installatiekopieën naar base64. U kunt een website zoals codebeautify gebruiken om de codering uit te voeren. Sla vervolgens de gecodeerde tekenreeks op een tijdelijke locatie op.

  • Blob Storage-URL: Upload uw afbeelding naar een Azure Blob Storage-account. Volg de quickstart voor blob-opslag om te leren hoe u dit doet. Open vervolgens Azure Storage Explorer en haal de URL naar uw afbeelding op. Sla deze op een tijdelijke locatie op.

    Vervolgens moet u uw Content Safety-resource toegang geven om te lezen uit de Azure Storage-resource. Schakel door het systeem toegewezen beheerde identiteit in voor het Azure AI Content Safety-exemplaar en wijs de rol van Inzender/Eigenaar/Lezer van opslagblobgegevens toe aan de identiteit:

    1. Schakel beheerde identiteit in voor het Azure AI Content Safety-exemplaar.

      Schermopname van Het inschakelen van een beheerde identiteit in Azure Portal.

    2. Wijs de rol van Inzender/Eigenaar/Lezer voor opslagblobgegevens toe aan de beheerde identiteit. Alle rollen die hieronder zijn gemarkeerd, moeten werken.

      Schermopname van het scherm Roltoewijzing toevoegen in Azure Portal.

      Schermopname van toegewezen rollen in Azure Portal.

      Schermopname van de rol beheerde identiteit.

Inhoud van afbeelding analyseren

Plak de onderstaande opdracht in een teksteditor en breng de volgende wijzigingen aan.

  1. Vervang de <endpoint> url van het resource-eindpunt door de URL van uw resource-eindpunt.
  2. Vervang <your_subscription_key> door uw sleutel.
  3. Vul het "image" veld in de hoofdtekst in met een "content" veld of een "blobUrl" veld. Bijvoorbeeld: {"image": {"content": "<base_64_string>"} of {"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"
}'

Notitie

Als u een BLOB Storage-URL gebruikt, ziet de aanvraagbody er als volgt uit:

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

Open een opdrachtpromptvenster en voer de cURL-opdracht uit.

De onderstaande velden moeten worden opgenomen in de URL:

Naam Vereist? Beschrijving Type
API-versie Vereist Dit is de API-versie die moet worden gecontroleerd. Huidige versie is: api-version=2023-10-01. Voorbeeld: <endpoint>/contentsafety/image:analyze?api-version=2023-10-01 String

De parameters in de aanvraagbody worden gedefinieerd in deze tabel:

Naam Vereist? Beschrijving Type
Inhoud Vereist De inhoud of blob-URL van de afbeelding. Ik kan base64-gecodeerde bytes of een blob-URL zijn. Als beide worden gegeven, wordt het verzoek geweigerd. De maximaal toegestane grootte van de afbeelding is 2048 pixels x 2048 pixels en de maximale bestandsgrootte is 4 MB. De minimale grootte van de afbeelding is 50 pixels x 50 pixels. String
Categorieën Optioneel Dit wordt verondersteld een matrix met categorienamen te zijn. Zie de handleiding Harm-categorieën voor een lijst met beschikbare categorienamen. Als er geen categorieën zijn opgegeven, worden alle vier de categorieën gebruikt. We gebruiken meerdere categorieën om scores in één aanvraag op te halen. String
outputType Optioneel Afbeeldingsbeheer-API ondersteunt "FourSeverityLevels"alleen . Uitvoer ernstniveaus in vier niveaus. De waarde kan zijn 0,2,4,6 String

Uitvoer

U ziet dat de resultaten van afbeeldingsbeheer worden weergegeven als JSON-gegevens in de console. Voorbeeld:

{
    "categoriesAnalysis": [
        {
            "category": "Hate",
            "severity": 2
        },
        {
            "category": "SelfHarm",
            "severity": 0
        },
        {
            "category": "Sexual",
            "severity": 0
        },
        {
            "category": "Violence",
            "severity": 0
        }
    ]
}

De JSON-velden in de uitvoer worden hier gedefinieerd:

Name Omschrijving Type
categoriesAnalysis Elke uitvoerklasse die de API voorspelt. Classificatie kan meerdere labels hebben. Wanneer een afbeelding bijvoorbeeld wordt geüpload naar het model voor afbeeldingsbeheer, kan deze worden geclassificeerd als seksuele inhoud en geweld. Categorieën schade String
Ernst Het ernstniveau van de vlag in elke schadecategorie. Categorieën schade Geheel getal

Referentiedocumentatie | Broncode van bibliotheek | Pakket (NuGet) | Voorbeelden

Vereisten

  • Een Azure-abonnement - Een gratis abonnement maken
  • De Visual Studio IDE waarvoor .NET-desktopontwikkeling is ingeschakeld. Of als u niet van plan bent om Visual Studio IDE te gebruiken, hebt u de huidige versie van .NET Core nodig.
  • .NET Runtime geïnstalleerd.
  • Zodra u uw Azure-abonnement hebt, maakt u een Content Safety-resource in Azure Portal om uw sleutel en eindpunt op te halen. Voer een unieke naam in voor uw resource, selecteer uw abonnement en selecteer een resourcegroep, ondersteunde regio (VS - oost of Europa - west) en ondersteunde prijscategorie. Selecteer vervolgens Maken.
    • Het implementeren van de resource duurt enkele minuten. Nadat deze is voltooid, gaat u naar de resource. Selecteer in het linkerdeelvenster onder Resourcebeheer de optie Abonnementssleutel en Eindpunt. Het eindpunt en een van de sleutels worden gebruikt om API's aan te roepen.

Toepassing instellen

Maak een nieuwe C#-toepassing.

Open Visual Studio en selecteer onder Aan de slag een nieuw project maken. Stel de sjabloonfilters in op C#/Alle platforms/console. Selecteer Console-app (opdrachtregeltoepassing die kan worden uitgevoerd op .NET in Windows, Linux en macOS) en kies Volgende. Werk de projectnaam bij naar ContentSafetyQuickstart en kies Volgende. Selecteer .NET 6.0 of hoger en kies Maken om het project te maken.

De client-SDK installeren

Nadat u een nieuw project hebt gemaakt, installeert u de client-SDK door met de rechtermuisknop op de projectoplossing in Solution Explorer te klikken en NuGet-pakketten beheren te selecteren. Selecteer in Package Manager dat wordt geopend de optie Bladeren en zoek naar Azure.AI.ContentSafety. Selecteer Installeren.

Omgevingsvariabelen maken

In dit voorbeeld schrijft u uw referenties naar omgevingsvariabelen op de lokale computer waarop de toepassing wordt uitgevoerd.

Tip

Neem de sleutel niet rechtstreeks op in uw code en plaats deze nooit openbaar. Zie het beveiligingsartikel over Azure AI-services voor meer verificatieopties, zoals Azure Key Vault.

Als u de omgevingsvariabele voor uw sleutel en eindpunt wilt instellen, opent u een consolevenster en volgt u de instructies voor uw besturingssysteem en ontwikkelomgeving.

  1. Als u de CONTENT_SAFETY_KEY omgevingsvariabele wilt instellen, vervangt u deze door YOUR_CONTENT_SAFETY_KEY een van de sleutels voor uw resource.
  2. Als u de CONTENT_SAFETY_ENDPOINT omgevingsvariabele wilt instellen, vervangt YOUR_CONTENT_SAFETY_ENDPOINT u het eindpunt voor uw resource.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

Nadat u de omgevingsvariabelen hebt toegevoegd, moet u mogelijk alle actieve programma's die de omgevingsvariabelen lezen, met inbegrip van het consolevenster, opnieuw opstarten.

Inhoud van afbeelding analyseren

Open vanuit de projectmap het Program.cs-bestand dat u eerder hebt gemaakt. Plak er de volgende code in.

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

Maak een sample_data map in uw projectmap en voeg er een image.png bestand aan toe.

Bouw en voer de toepassing uit door Start Debugging te selecteren in het menu Foutopsporing boven aan het IDE-venster (of druk op F5).

Referentiedocumentatie | Broncode bibliotheek | Package (PyPI) | Voorbeelden |

Vereisten

  • Een Azure-abonnement - Een gratis abonnement maken
  • Zodra u uw Azure-abonnement hebt, maakt u een Content Safety-resource in Azure Portal om uw sleutel en eindpunt op te halen. Voer een unieke naam in voor uw resource, selecteer uw abonnement en selecteer een resourcegroep, ondersteunde regio (VS - oost of Europa - west) en ondersteunde prijscategorie. Selecteer vervolgens Maken.
    • Het implementeren van de resource duurt enkele minuten. Nadat deze is voltooid, gaat u naar de resource. Selecteer in het linkerdeelvenster onder Resourcebeheer de optie Abonnementssleutel en Eindpunt. Het eindpunt en een van de sleutels worden gebruikt om API's aan te roepen.
  • Python 3.8 of hoger
    • Uw Python-installatie moet pip bevatten. U kunt controleren of pip is geïnstalleerd door op de opdrachtregel uit te voeren pip --version . Haal pip op door de nieuwste versie van Python te installeren.

Omgevingsvariabelen maken

In dit voorbeeld schrijft u uw referenties naar omgevingsvariabelen op de lokale computer waarop de toepassing wordt uitgevoerd.

Tip

Neem de sleutel niet rechtstreeks op in uw code en plaats deze nooit openbaar. Zie het beveiligingsartikel over Azure AI-services voor meer verificatieopties, zoals Azure Key Vault.

Als u de omgevingsvariabele voor uw sleutel en eindpunt wilt instellen, opent u een consolevenster en volgt u de instructies voor uw besturingssysteem en ontwikkelomgeving.

  1. Als u de CONTENT_SAFETY_KEY omgevingsvariabele wilt instellen, vervangt u deze door YOUR_CONTENT_SAFETY_KEY een van de sleutels voor uw resource.
  2. Als u de CONTENT_SAFETY_ENDPOINT omgevingsvariabele wilt instellen, vervangt YOUR_CONTENT_SAFETY_ENDPOINT u het eindpunt voor uw resource.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

Nadat u de omgevingsvariabelen hebt toegevoegd, moet u mogelijk alle actieve programma's die de omgevingsvariabelen lezen, met inbegrip van het consolevenster, opnieuw opstarten.

Inhoud van afbeelding analyseren

In de volgende sectie wordt een voorbeeldaanvraag beschreven met de Python SDK.

  1. Open een opdrachtprompt, navigeer naar de projectmap en maak een nieuw bestand met de naam quickstart.py.

  2. Voer deze opdracht uit om de Azure AI Content Safety-clientbibliotheek te installeren:

    python -m pip install azure-ai-contentsafety
    
  3. Kopieer de volgende code naar 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. Vervang "sample_data" en "image.jpg" door het pad en de bestandsnaam van de lokale die u wilt gebruiken.

  5. Voer vervolgens de toepassing uit met de python opdracht in uw quickstart-bestand.

    python quickstart.py
    

Referentiedocumentatie | Broncode bibliotheek | Artefact (Maven) | Voorbeelden

Vereisten

  • Een Azure-abonnement - Een gratis abonnement maken
  • De huidige versie van de Java Development Kit (JDK)
  • Het hulpprogramma Gradle of een andere afhankelijkheidsbeheerder.
  • Zodra u uw Azure-abonnement hebt, maakt u een Content Safety-resource in Azure Portal om uw sleutel en eindpunt op te halen. Voer een unieke naam in voor uw resource, selecteer uw abonnement en selecteer een resourcegroep, ondersteunde regio (VS - oost of Europa - west) en ondersteunde prijscategorie. Selecteer vervolgens Maken.
    • Het implementeren van de resource duurt enkele minuten. Nadat deze is voltooid, gaat u naar de resource. Selecteer in het linkerdeelvenster onder Resourcebeheer de optie Abonnementssleutel en Eindpunt. Het eindpunt en een van de sleutels worden gebruikt om API's aan te roepen.

Toepassing instellen

Maak een nieuw Gradle-project.

Maak in een consolevenster (zoals cmd, PowerShell of Bash) een nieuwe map voor de app, en navigeer naar deze map.

mkdir myapp && cd myapp

Voer de opdracht gradle init uit vanuit uw werkmap. Met deze opdracht maakt u essentiële buildbestanden voor Gradle, inclusief build.gradle.kts, dat tijdens runtime wordt gebruikt om de toepassing te maken en te configureren.

gradle init --type basic

Wanneer u wordt gevraagd om een DSL te kiezen, selecteert u Kotlin.

Voer de volgende opdracht uit vanuit uw werkmap om een projectbronmap te maken:

mkdir -p src/main/java

Navigeer naar de nieuwe map en maak een bestand met de naam ContentSafetyQuickstart.java.

Maak ook een src/resources map in de hoofdmap van uw project en voeg er een voorbeeldafbeelding aan toe.

De client-SDK installeren

Deze quickstart maakt gebruik van de Gradle-afhankelijkheidsmanager. U vindt de clientbibliotheek en informatie voor andere afhankelijkheidsbeheerders in de Maven Central Repository.

Zoek build.gradle.kts en open het met uw favoriete IDE of teksteditor. Kopieer het vervolgens in de volgende buildconfiguratie. Deze configuratie definieert het project als een Java-toepassing waarvan het toegangspunt de klasse ContentSafetyQuickstart is. De Azure AI Vision-bibliotheek wordt geïmporteerd.

plugins {
    java
    application
}
application { 
    mainClass.set("ContentSafetyQuickstart")
}
repositories {
    mavenCentral()
}
dependencies {
    implementation(group = "com.azure", name = "azure-ai-contentsafety", version = "1.0.0")
}

Omgevingsvariabelen maken

In dit voorbeeld schrijft u uw referenties naar omgevingsvariabelen op de lokale computer waarop de toepassing wordt uitgevoerd.

Tip

Neem de sleutel niet rechtstreeks op in uw code en plaats deze nooit openbaar. Zie het beveiligingsartikel over Azure AI-services voor meer verificatieopties, zoals Azure Key Vault.

Als u de omgevingsvariabele voor uw sleutel en eindpunt wilt instellen, opent u een consolevenster en volgt u de instructies voor uw besturingssysteem en ontwikkelomgeving.

  1. Als u de CONTENT_SAFETY_KEY omgevingsvariabele wilt instellen, vervangt u deze door YOUR_CONTENT_SAFETY_KEY een van de sleutels voor uw resource.
  2. Als u de CONTENT_SAFETY_ENDPOINT omgevingsvariabele wilt instellen, vervangt YOUR_CONTENT_SAFETY_ENDPOINT u het eindpunt voor uw resource.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

Nadat u de omgevingsvariabelen hebt toegevoegd, moet u mogelijk alle actieve programma's die de omgevingsvariabelen lezen, met inbegrip van het consolevenster, opnieuw opstarten.

Inhoud van afbeelding analyseren

Open ContentSafetyQuickstart.java in de gewenste editor of IDE en plak de volgende code. Vervang de source variabele door het pad naar de voorbeeldafbeelding.

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

Ga terug naar de hoofdmap van het project en bouw de app met:

gradle build

Voer het vervolgens uit met de gradle run opdracht:

gradle run

Uitvoer

Hate severity: 0
SelfHarm severity: 0
Sexual severity: 0
Violence severity: 0

Referentiedocumentatie | Bibliotheekbroncode | Pakket (npm) | Voorbeelden |

Vereisten

  • Een Azure-abonnement - Een gratis abonnement maken
  • De huidige versie van Node.js
  • Zodra u uw Azure-abonnement hebt, maakt u een Content Safety-resource in Azure Portal om uw sleutel en eindpunt op te halen. Voer een unieke naam in voor uw resource, selecteer uw abonnement en selecteer een resourcegroep, ondersteunde regio (VS - oost of Europa - west) en ondersteunde prijscategorie. Selecteer vervolgens Maken.
    • Het implementeren van de resource duurt enkele minuten. Nadat deze is voltooid, gaat u naar de resource. Selecteer in het linkerdeelvenster onder Resourcebeheer de optie Abonnementssleutel en Eindpunt. Het eindpunt en een van de sleutels worden gebruikt om API's aan te roepen.

Toepassing instellen

Een nieuwe Node.js-toepassing maken. Maak in een consolevenster (zoals cmd, PowerShell of Bash) een nieuwe map voor de app, en navigeer naar deze map.

mkdir myapp && cd myapp

Voer de opdracht npm init uit om een knooppunttoepassing te maken met een package.json-bestand.

npm init

Maak ook een /resources map in de hoofdmap van uw project en voeg er een voorbeeldafbeelding aan toe.

De client-SDK installeren

Installeer het @azure-rest/ai-content-safety npm-pakket:

npm install @azure-rest/ai-content-safety

Installeer ook de dotenv module voor het gebruik van omgevingsvariabelen:

npm install dotenv

Het package.json-bestand van uw app wordt bijgewerkt met de afhankelijkheden.

Omgevingsvariabelen maken

In dit voorbeeld schrijft u uw referenties naar omgevingsvariabelen op de lokale computer waarop de toepassing wordt uitgevoerd.

Tip

Neem de sleutel niet rechtstreeks op in uw code en plaats deze nooit openbaar. Zie het beveiligingsartikel over Azure AI-services voor meer verificatieopties, zoals Azure Key Vault.

Als u de omgevingsvariabele voor uw sleutel en eindpunt wilt instellen, opent u een consolevenster en volgt u de instructies voor uw besturingssysteem en ontwikkelomgeving.

  1. Als u de CONTENT_SAFETY_KEY omgevingsvariabele wilt instellen, vervangt u deze door YOUR_CONTENT_SAFETY_KEY een van de sleutels voor uw resource.
  2. Als u de CONTENT_SAFETY_ENDPOINT omgevingsvariabele wilt instellen, vervangt YOUR_CONTENT_SAFETY_ENDPOINT u het eindpunt voor uw resource.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'

Nadat u de omgevingsvariabelen hebt toegevoegd, moet u mogelijk alle actieve programma's die de omgevingsvariabelen lezen, met inbegrip van het consolevenster, opnieuw opstarten.

Inhoud van afbeelding analyseren

Maak een nieuw bestand in uw map index.js. Open deze in uw favoriete editor of IDE en plak de volgende code. Vervang de image_path variabele door het pad naar de voorbeeldafbeelding.

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

Voer de toepassing uit met de opdracht node in uw quickstart-bestand.

node index.js

Uitvoer

Hate severity:  0
SelfHarm severity:  0
Sexual severity:  0
Violence severity:  0

Resources opschonen

Als u een Azure AI-servicesabonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd.

Volgende stappen

Configureer filters voor elke categorie en test op gegevenssets met Behulp van Content Safety Studio, exporteer de code en implementeer.