Szybki start: analizowanie zawartości obrazu
Rozpocznij pracę z zestawami SDK usługi Content Studio, interfejsu API REST lub klienta, aby wykonać podstawowe moderowanie obrazów. Usługa Azure AI Content Safety service udostępnia algorytmy sztucznej inteligencji służące do flagowania niepożądanej zawartości. Wykonaj następujące kroki, aby wypróbować ten problem.
Aby uzyskać więcej informacji na temat moderowania obrazów, zobacz stronę pojęcia Szkody. Aby uzyskać informacje o limitach danych wejściowych interfejsu API, zobacz sekcję Wymagania dotyczące danych wejściowych w sekcji Przegląd.
Uwaga
Przykładowe dane i kod mogą zawierać obraźliwą zawartość. Zaleca się, aby użytkownik był dyskrecjonalne.
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie
- Po utworzeniu subskrypcji platformy Azure utwórz zasób Bezpieczeństwo zawartości w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Wprowadź unikatową nazwę zasobu, wybierz subskrypcję i wybierz grupę zasobów, obsługiwany region (zobacz Dostępność regionu) i obsługiwaną warstwę cenową. Następnie wybierz Utwórz.
- Wdrożenie zasobu trwa kilka minut. Po zakończeniu wybierz pozycję Przejdź do zasobu. W okienku po lewej stronie w obszarze Zarządzanie zasobami wybierz pozycję Klucz subskrypcji i punkt końcowy. Punkt końcowy i jeden z kluczy są używane do wywoływania interfejsów API.
- Zainstalowano bibliotekę cURL
Analizowanie zawartości obrazów
W poniższej sekcji przedstawiono przykładowe żądanie moderowania obrazów za pomocą biblioteki cURL.
Przygotowywanie przykładowego obrazu
Wybierz przykładowy obraz do przeanalizowania i pobierz go na urządzenie.
Zobacz Wymagania dotyczące danych wejściowych, aby zapoznać się z ograniczeniami obrazu. Jeśli format jest animowany, usługa wyodrębni pierwszą ramkę, aby przeprowadzić analizę.
Obraz można wprowadzić za pomocą jednej z dwóch metod: lokalnego strumienia plików lub adresu URL magazynu obiektów blob.
Lokalny strumień plików (zalecane): zakoduj obraz do base64. Możesz użyć witryny internetowej, takiej jak codebeautify , aby wykonać kodowanie. Następnie zapisz zakodowany ciąg w lokalizacji tymczasowej.
Adres URL usługi Blob Storage: przekaż obraz do konta usługi Azure Blob Storage. Postępuj zgodnie z przewodnikiem Szybki start dla usługi Blob Storage, aby dowiedzieć się, jak to zrobić. Następnie otwórz Eksplorator usługi Azure Storage i pobierz adres URL do obrazu. Zapisz go w lokalizacji tymczasowej.
Następnie należy przyznać dostęp do zasobu Bezpieczeństwo zawartości w celu odczytu z zasobu usługi Azure Storage. Włącz tożsamość zarządzaną przypisaną przez system dla wystąpienia bezpieczeństwa zawartości usługi Azure AI i przypisz rolę Współautor/Właściciel danych obiektu blob usługi Storage do tożsamości:
Ważne
Tylko współautor danych obiektu blob usługi Storage lub właściciel danych obiektu blob usługi Storage są prawidłowe, aby kontynuować.
Włącz tożsamość zarządzaną dla wystąpienia bezpieczeństwa zawartości usługi Azure AI.
Przypisz rolę Współautor/Właściciel danych obiektu blob usługi Storage do tożsamości zarządzanej. Wszystkie role wyróżnione poniżej powinny działać.
Analizowanie zawartości obrazów
Wklej poniższe polecenie do edytora tekstów i wprowadź następujące zmiany.
- Zastąp
<endpoint>
ciąg adresem URL punktu końcowego zasobu. - Zastąp element
<your_subscription_key>
swoim kluczem. "image"
Wypełnij pole w treści polem"content"
lub polem"blobUrl"
. Na przykład:{"image": {"content": "<base_64_string>"}
lub{"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"
}'
Uwaga
Jeśli używasz adresu URL magazynu obiektów blob, treść żądania powinna wyglądać następująco:
{
"image": {
"blobUrl": "<your_storage_url>"
}
}
Poniższe pola muszą być uwzględnione w adresie URL:
Nazwisko | Wymagany? | opis | Type |
---|---|---|---|
Wersja interfejsu API | Wymagania | Jest to wersja interfejsu API do sprawdzenia. Bieżąca wersja to: api-version=2024-09-01 . Przykład: <endpoint>/contentsafety/image:analyze?api-version=2024-09-01 |
String |
Parametry w treści żądania są zdefiniowane w tej tabeli:
Nazwisko | Wymagany? | opis | Type |
---|---|---|---|
zawartość | Wymagania | Adres URL zawartości lub obiektu blob obrazu. Można użyć bajtów zakodowanych w formacie base64 lub adresu URL obiektu blob. Jeśli obie te elementy zostaną podane, żądanie zostanie odrzucone. Maksymalny dozwolony rozmiar obrazu to 7200 x 7200 pikseli, a maksymalny rozmiar pliku to 4 MB. Minimalny rozmiar obrazu to 50 pikseli x 50 pikseli. | String |
Kategorie | Opcjonalnie | Przyjmuje się, że jest to tablica nazw kategorii. Aby uzyskać listę dostępnych nazw kategorii, zobacz przewodnik Dotyczący kategorii szkody. Jeśli nie określono żadnych kategorii, zostaną użyte wszystkie cztery kategorie. Używamy wielu kategorii do uzyskiwania wyników w jednym żądaniu. | String |
outputType | Opcjonalnie | Interfejs API moderowania obrazów obsługuje tylko funkcję "FourSeverityLevels" . Ważność danych wyjściowych na czterech poziomach. Wartość może być 0,2,4,6 |
String |
Otwórz okno wiersza polecenia i uruchom polecenie cURL.
Wyjście
Wyniki moderowania obrazów powinny być wyświetlane jako dane JSON w konsoli programu . Na przykład:
{
"categoriesAnalysis": [
{
"category": "Hate",
"severity": 2
},
{
"category": "SelfHarm",
"severity": 0
},
{
"category": "Sexual",
"severity": 0
},
{
"category": "Violence",
"severity": 0
}
]
}
Pola JSON w danych wyjściowych są zdefiniowane tutaj:
Nazwa/nazwisko | opis | Type |
---|---|---|
categoriesAnalysis | Każda klasa wyjściowa przewidywana przez interfejs API. Klasyfikacja może być oznaczona wieloma etykietami. Na przykład po przekazaniu obrazu do modelu moderowania obrazu można go sklasyfikować jako zawartość seksualną i przemoc. Kategorie szkód | String |
Ważność | Poziom ważności flagi w każdej kategorii szkody. Kategorie szkód | Integer |
Dokumentacja referencyjna — pakiet | kodu | źródłowego biblioteki źródłowej (NuGet)Samples |
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie
- Środowisko IDE programu Visual Studio z włączonym tworzeniem aplikacji klasycznych na platformie .NET obciążenia. Jeśli nie planujesz używania środowiska IDE programu Visual Studio, potrzebujesz bieżącej wersji platformy .NET Core.
- Zainstalowane środowisko uruchomieniowe .NET.
- Po utworzeniu subskrypcji platformy Azure utwórz zasób Bezpieczeństwo zawartości w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Wprowadź unikatową nazwę zasobu, wybierz subskrypcję i wybierz grupę zasobów, obsługiwany region (zobacz Dostępność regionu) i obsługiwaną warstwę cenową. Następnie wybierz Utwórz.
- Wdrożenie zasobu trwa kilka minut. Po zakończeniu wybierz pozycję Przejdź do zasobu. W okienku po lewej stronie w obszarze Zarządzanie zasobami wybierz pozycję Klucz subskrypcji i punkt końcowy. Punkt końcowy i jeden z kluczy są używane do wywoływania interfejsów API.
Konfigurowanie aplikacji
Utwórz nową aplikację w języku C#.
Otwórz program Visual Studio i w obszarze Rozpocznij wybierz pozycję Utwórz nowy projekt. Ustaw filtry szablonu na C#/Wszystkie platformy/konsolę. Wybierz pozycję Aplikacja konsolowa (aplikacja wiersza polecenia, która może działać na platformie .NET w systemach Windows, Linux i macOS), a następnie wybierz pozycję Dalej. Zaktualizuj nazwę projektu na ContentSafetyQuickstart i wybierz pozycję Dalej. Wybierz pozycję .NET 6.0 lub nowszą, a następnie wybierz pozycję Utwórz , aby utworzyć projekt.
Instalowanie zestawu SDK klienta
Po utworzeniu nowego projektu zainstaluj zestaw SDK klienta, klikając prawym przyciskiem myszy rozwiązanie projektu w Eksplorator rozwiązań i wybierając polecenie Zarządzaj pakietami NuGet. W menedżerze pakietów, który zostanie otwarty, wybierz pozycję Przeglądaj i wyszukaj ciąg Azure.AI.ContentSafety
. Wybierz Zainstaluj.
Tworzenie zmiennych środowiskowych
W tym przykładzie napiszesz poświadczenia do zmiennych środowiskowych na komputerze lokalnym z uruchomioną aplikacją.
Aby ustawić zmienną środowiskową dla klucza i punktu końcowego, otwórz okno konsoli i postępuj zgodnie z instrukcjami dotyczącymi systemu operacyjnego i środowiska programistycznego.
- Aby ustawić zmienną
CONTENT_SAFETY_KEY
środowiskową, zastąpYOUR_CONTENT_SAFETY_KEY
element jednym z kluczy zasobu. - Aby ustawić zmienną
CONTENT_SAFETY_ENDPOINT
środowiskową, zastąpYOUR_CONTENT_SAFETY_ENDPOINT
element punktem końcowym zasobu.
Ważne
Jeśli używasz klucza interfejsu API, zapisz go bezpiecznie w innym miejscu, na przykład w usłudze Azure Key Vault. Nie dołączaj klucza interfejsu API bezpośrednio do kodu i nigdy nie publikuj go publicznie.
Aby uzyskać więcej informacji na temat zabezpieczeń usług sztucznej inteligencji, zobacz Uwierzytelnianie żądań w usługach Azure AI.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
Po dodaniu zmiennych środowiskowych może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą odczytywać zmienne środowiskowe, w tym okno konsoli.
Analizowanie zawartości obrazów
W katalogu projektu otwórz utworzony wcześniej plik Program.cs . Wklej następujący kod.
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();
}
}
}
Utwórz folder sample_data w katalogu projektu i dodaj do niego plik image.png.
Skompiluj i uruchom aplikację, wybierając pozycję Rozpocznij debugowanie w menu Debuguj w górnej części okna ŚRODOWISKA IDE (lub naciśnij F5).
Dokumentacja referencyjna — przykłady | pakietu kodu | źródłowego biblioteki źródłowej (PyPI) | |
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie
- Po utworzeniu subskrypcji platformy Azure utwórz zasób Bezpieczeństwo zawartości w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Wprowadź unikatową nazwę zasobu, wybierz subskrypcję i wybierz grupę zasobów, obsługiwany region (zobacz Dostępność regionu) i obsługiwaną warstwę cenową. Następnie wybierz Utwórz.
- Wdrożenie zasobu trwa kilka minut. Po zakończeniu wybierz pozycję Przejdź do zasobu. W okienku po lewej stronie w obszarze Zarządzanie zasobami wybierz pozycję Klucz subskrypcji i punkt końcowy. Punkt końcowy i jeden z kluczy są używane do wywoływania interfejsów API.
- Środowisko Python w wersji 3.8 lub nowszej
- Instalacja języka Python powinna zawierać narzędzie. Możesz sprawdzić, czy masz zainstalowane narzędzie, uruchamiając polecenie
pip --version
w wierszu polecenia. Pobierz narzędzie, instalując najnowszą wersję języka Python.
- Instalacja języka Python powinna zawierać narzędzie. Możesz sprawdzić, czy masz zainstalowane narzędzie, uruchamiając polecenie
Tworzenie zmiennych środowiskowych
W tym przykładzie napiszesz poświadczenia do zmiennych środowiskowych na komputerze lokalnym z uruchomioną aplikacją.
Aby ustawić zmienną środowiskową dla klucza i punktu końcowego, otwórz okno konsoli i postępuj zgodnie z instrukcjami dotyczącymi systemu operacyjnego i środowiska programistycznego.
- Aby ustawić zmienną
CONTENT_SAFETY_KEY
środowiskową, zastąpYOUR_CONTENT_SAFETY_KEY
element jednym z kluczy zasobu. - Aby ustawić zmienną
CONTENT_SAFETY_ENDPOINT
środowiskową, zastąpYOUR_CONTENT_SAFETY_ENDPOINT
element punktem końcowym zasobu.
Ważne
Jeśli używasz klucza interfejsu API, zapisz go bezpiecznie w innym miejscu, na przykład w usłudze Azure Key Vault. Nie dołączaj klucza interfejsu API bezpośrednio do kodu i nigdy nie publikuj go publicznie.
Aby uzyskać więcej informacji na temat zabezpieczeń usług sztucznej inteligencji, zobacz Uwierzytelnianie żądań w usługach Azure AI.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
Po dodaniu zmiennych środowiskowych może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą odczytywać zmienne środowiskowe, w tym okno konsoli.
Analizowanie zawartości obrazów
W poniższej sekcji przedstawiono przykładowe żądanie z zestawem SDK języka Python.
Otwórz wiersz polecenia, przejdź do folderu projektu i utwórz nowy plik o nazwie quickstart.py.
Uruchom to polecenie, aby zainstalować bibliotekę klienta zabezpieczenia zawartości usługi Azure AI:
python -m pip install azure-ai-contentsafety
Skopiuj następujący kod do 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()
Zastąp
"sample_data"
ciąg i"image.jpg"
ścieżką i nazwą pliku lokalnego, którego chcesz użyć.Następnie uruchom aplikację za
python
pomocą polecenia w pliku Szybki start.python quickstart.py
Dokumentacja referencyjna | — artefakt kodu | źródłowego biblioteki (Maven)Przykłady |
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie
- Bieżąca wersja zestawu Java Development Kit (JDK)
- Narzędzie kompilacji narzędzia Gradle lub inny menedżer zależności.
- Po utworzeniu subskrypcji platformy Azure utwórz zasób Bezpieczeństwo zawartości w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Wprowadź unikatową nazwę zasobu, wybierz subskrypcję i wybierz grupę zasobów, obsługiwany region (zobacz Dostępność regionu) i obsługiwaną warstwę cenową. Następnie wybierz Utwórz.
- Wdrożenie zasobu trwa kilka minut. Po zakończeniu wybierz pozycję Przejdź do zasobu. W okienku po lewej stronie w obszarze Zarządzanie zasobami wybierz pozycję Klucz subskrypcji i punkt końcowy. Punkt końcowy i jeden z kluczy są używane do wywoływania interfejsów API.
Konfigurowanie aplikacji
Utwórz nowy projekt Gradle.
W oknie konsoli (na przykład cmd, PowerShell lub Bash) utwórz nowy katalog dla aplikacji i przejdź do niego.
mkdir myapp && cd myapp
gradle init
Uruchom polecenie z katalogu roboczego. To polecenie spowoduje utworzenie podstawowych plików kompilacji dla narzędzia Gradle, w tym pliku build.gradle.kts, który jest używany w czasie wykonywania do tworzenia i konfigurowania aplikacji.
gradle init --type basic
Po wyświetleniu monitu wybierz pozycję Język DSL, a następnie Kotlin.
W katalogu roboczym uruchom następujące polecenie, aby utworzyć folder źródłowy projektu:
mkdir -p src/main/java
Przejdź do nowego folderu i utwórz plik o nazwie ContentSafetyQuickstart.java.
src/resources
Utwórz również folder w katalogu głównym projektu i dodaj do niego przykładowy obraz.
Instalowanie zestawu SDK klienta
W tym przewodniku Szybki start jest używany menedżer zależności narzędzia Gradle. Bibliotekę klienta i informacje dotyczące innych menedżerów zależności można znaleźć w repozytorium centralnym programu Maven.
Znajdź plik build.gradle.kts i otwórz go przy użyciu preferowanego środowiska IDE lub edytora tekstów. Następnie skopiuj poniższą konfigurację kompilacji. Ta konfiguracja definiuje projekt jako aplikację Java, której punktem wejścia jest klasa ContentSafetyQuickstart. Importuje bibliotekę usługi Azure AI Vision.
plugins {
java
application
}
application {
mainClass.set("ContentSafetyQuickstart")
}
repositories {
mavenCentral()
}
dependencies {
implementation(group = "com.azure", name = "azure-ai-contentsafety", version = "1.0.0")
}
Tworzenie zmiennych środowiskowych
W tym przykładzie napiszesz poświadczenia do zmiennych środowiskowych na komputerze lokalnym z uruchomioną aplikacją.
Aby ustawić zmienną środowiskową dla klucza i punktu końcowego, otwórz okno konsoli i postępuj zgodnie z instrukcjami dotyczącymi systemu operacyjnego i środowiska programistycznego.
- Aby ustawić zmienną
CONTENT_SAFETY_KEY
środowiskową, zastąpYOUR_CONTENT_SAFETY_KEY
element jednym z kluczy zasobu. - Aby ustawić zmienną
CONTENT_SAFETY_ENDPOINT
środowiskową, zastąpYOUR_CONTENT_SAFETY_ENDPOINT
element punktem końcowym zasobu.
Ważne
Jeśli używasz klucza interfejsu API, zapisz go bezpiecznie w innym miejscu, na przykład w usłudze Azure Key Vault. Nie dołączaj klucza interfejsu API bezpośrednio do kodu i nigdy nie publikuj go publicznie.
Aby uzyskać więcej informacji na temat zabezpieczeń usług sztucznej inteligencji, zobacz Uwierzytelnianie żądań w usługach Azure AI.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
Po dodaniu zmiennych środowiskowych może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą odczytywać zmienne środowiskowe, w tym okno konsoli.
Analizowanie zawartości obrazów
Otwórz ContentSafetyQuickstart.java w preferowanym edytorze lub środowisku IDE i wklej następujący kod. Zastąp zmienną source
ścieżką do przykładowego obrazu.
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());
}
}
}
Wróć do folderu głównego projektu i skompiluj aplikację za pomocą polecenia:
gradle build
Następnie uruchom go za pomocą gradle run
polecenia :
gradle run
Wyjście
Hate severity: 0
SelfHarm severity: 0
Sexual severity: 0
Violence severity: 0
Dokumentacja referencyjna — przykłady | pakietu kodu | źródłowego biblioteki źródłowej (npm)Samples | |
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie
- Bieżąca wersja Node.js
- Po utworzeniu subskrypcji platformy Azure utwórz zasób Bezpieczeństwo zawartości w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Wprowadź unikatową nazwę zasobu, wybierz subskrypcję i wybierz grupę zasobów, obsługiwany region (zobacz Dostępność regionu) i obsługiwaną warstwę cenową. Następnie wybierz Utwórz.
- Wdrożenie zasobu trwa kilka minut. Po zakończeniu wybierz pozycję Przejdź do zasobu. W okienku po lewej stronie w obszarze Zarządzanie zasobami wybierz pozycję Klucz subskrypcji i punkt końcowy. Punkt końcowy i jeden z kluczy są używane do wywoływania interfejsów API.
Konfigurowanie aplikacji
Tworzenie nowej aplikacji Node.js. W oknie konsoli (na przykład cmd, PowerShell lub Bash) utwórz nowy katalog dla aplikacji i przejdź do niego.
mkdir myapp && cd myapp
Uruchom polecenie npm init
, aby utworzyć aplikację Node przy użyciu pliku package.json
.
npm init
/resources
Utwórz również folder w katalogu głównym projektu i dodaj do niego przykładowy obraz.
Instalowanie zestawu SDK klienta
@azure-rest/ai-content-safety
Zainstaluj pakiet npm:
npm install @azure-rest/ai-content-safety
Zainstaluj również moduł, dotenv
aby używać zmiennych środowiskowych:
npm install dotenv
Plik package.json
aplikacji zostanie zaktualizowany przy użyciu zależności.
Tworzenie zmiennych środowiskowych
W tym przykładzie napiszesz poświadczenia do zmiennych środowiskowych na komputerze lokalnym z uruchomioną aplikacją.
Aby ustawić zmienną środowiskową dla klucza i punktu końcowego, otwórz okno konsoli i postępuj zgodnie z instrukcjami dotyczącymi systemu operacyjnego i środowiska programistycznego.
- Aby ustawić zmienną
CONTENT_SAFETY_KEY
środowiskową, zastąpYOUR_CONTENT_SAFETY_KEY
element jednym z kluczy zasobu. - Aby ustawić zmienną
CONTENT_SAFETY_ENDPOINT
środowiskową, zastąpYOUR_CONTENT_SAFETY_ENDPOINT
element punktem końcowym zasobu.
Ważne
Jeśli używasz klucza interfejsu API, zapisz go bezpiecznie w innym miejscu, na przykład w usłudze Azure Key Vault. Nie dołączaj klucza interfejsu API bezpośrednio do kodu i nigdy nie publikuj go publicznie.
Aby uzyskać więcej informacji na temat zabezpieczeń usług sztucznej inteligencji, zobacz Uwierzytelnianie żądań w usługach Azure AI.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
Po dodaniu zmiennych środowiskowych może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą odczytywać zmienne środowiskowe, w tym okno konsoli.
Analizowanie zawartości obrazów
Utwórz nowy plik w katalogu index.js. Otwórz go w preferowanym edytorze lub środowisku IDE i wklej następujący kod. Zastąp zmienną image_path
ścieżką do przykładowego obrazu.
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);
});
Uruchom aplikację, wykonując polecenie node
dla pliku szybkiego startu.
node index.js
Wyjście
Hate severity: 0
SelfHarm severity: 0
Sexual severity: 0
Violence severity: 0
Czyszczenie zasobów
Jeśli chcesz wyczyścić i usunąć subskrypcję usług Azure AI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Powiązana zawartość
- Kategorie szkód
- Skonfiguruj filtry dla każdej kategorii i przetestuj zestawy danych przy użyciu programu Content Safety Studio, wyeksportuj kod i wdróż.