Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Commencez à utiliser Content Studio, l’API REST ou les SDK client pour effectuer une modération d’image de base. Le service Azure AI Sécurité du Contenu vous fournit des algorithmes d’IA pour signaler le contenu répréhensible. Suivez ces étapes pour le tester.
Pour plus d’informations sur la modération de l’image, consultez la page concept des catégories Harm. Pour connaître les limites d’entrée de l’API, consultez la section Exigences pour les entrées de la Vue d’ensemble.
Attention
Les exemples de données et de code peuvent présenter du contenu choquant. Ils s’adressent à des utilisateurs avertis.
Prérequis
- Un compte Azure. Si vous n’en avez pas, vous pouvez en créer un gratuitement.
- Une ressource Azure AI.
Configuration
Pour utiliser la page Essayer de Sécurité du contenu, procédez comme suit :
- Accédez à Azure AI Foundry et naviguez jusqu’à votre projet/hub. Sélectionnez ensuite l’onglet Garde-fous + contrôles dans le volet de navigation gauche, puis sélectionnez l’onglet Essayer .
- Sur la page Essayer , vous pouvez expérimenter différentes fonctionnalités de garde-fous et de contrôles, telles que du texte et du contenu d’image, à l’aide de seuils réglables pour filtrer le contenu inapproprié ou dangereux.
Analyser des images
La page Modérer une image vous permet de tester rapidement la modération d’une image.
- Sélectionnez le panneau Modérer le contenu d’une image.
- Sélectionnez un exemple d’image dans les panneaux de la page, ou chargez votre propre image.
- Sélectionnez Exécuter le test. Le service retourne toutes les catégories qui ont été détectées, avec un niveau de gravité pour chacune : 0-Sûr, 2-Faible, 4-Moyen, 6-Élevé. Il retourne également un résultat binaire Accepté/Refusé, en fonction des filtres que vous configurez. Utilisez la matrice de l’onglet Configurer les filtres à droite pour définir vos niveaux de gravité autorisés/interdits pour chaque catégorie. Ensuite, vous pouvez réexécuter le texte pour voir comment fonctionne le filtre.
Afficher et exporter du code
Vous pouvez utiliser la fonctionnalité Afficher le code dans la page Analyser le contenu d’un texte ou Analyser le contenu d’une image pour voir et copier l’exemple de code, qui comprend la configuration du filtrage des gravités, des listes de blocage et des fonctions de modération. Vous pouvez ensuite déployer le code de votre côté.
Prérequis
- Un abonnement Azure - En créer un gratuitement
- Une fois que vous avez votre abonnement Azure, créez une ressource Content Safety dans le portail Azure pour obtenir votre clé et votre point de terminaison. Entrez un nom unique pour votre ressource, sélectionnez votre abonnement, puis sélectionnez un groupe de ressources, une région prise en charge (voir disponibilité région) et le niveau tarifaire pris en charge. Sélectionnez ensuite Créer.
- Le déploiement de la ressource prend quelques minutes. Une fois qu’il est terminé, sélectionnez Accéder à la ressource. Dans le volet gauche, sous Gestion des ressources, sélectionnez Clé et point de terminaison de l’abonnement. Le point de terminaison et l’une des clés sont utilisés pour appeler les API.
- Installation de cURL
Analyser le contenu d’une image
La section suivante décrit en détail un exemple de requête de modération d’image avec cURL.
Préparez un exemple d’image
Choisissez un exemple d’image à analyser et téléchargez-le sur votre appareil.
Consultez les Exigences d’entrée pour les limitations de l’image. Si votre format est animé, le service extrait le premier frame pour effectuer l’analyse.
Vous pouvez entrer votre image par l’une des deux méthodes suivantes : flux de fichiers local ou URL de stockage d’objets blob.
Flux de fichiers local (recommandé) : encodezvotre image en base64. Vous pouvez utiliser un site web comme codebeautify pour effectuer l’encodage. Enregistrez ensuite la chaîne encodée dans un emplacement temporaire.
URL de stockage d’objets blob : chargez votre image sur un compte Stockage Blob Azure. Suivez le démarrage rapide de stockage d’objets blob pour savoir comment procéder. Ouvrez ensuite Explorateur Stockage Azure et obtenez l’URL de votre image. Enregistrez-la dans un emplacement temporaire.
Ensuite, vous devez accorder à votre ressource Sécurité du contenu un accès en lecture à partir de la ressource Stockage Azure. Activez l’identité managée affectée par le système pour l’instance d’Azure AI Sécurité du Contenu, puis attribuez le rôle Contributeur aux données Blob du stockage/Propriétaire des données Blob du stockage à l’identité :
Important
Les rôles Contributeur aux données Blob du stockage ou Propriétaire des données Blob du stockage sont les seuls rôles valides pour continuer.
Activez une identité managée pour l’instance Azure AI Content Safety.
Attribuez le rôle Contributeur/Propriétaire de données Blob de stockage à l’identité managée. Tous les rôles mis en évidence ci-dessous doivent fonctionner.
Analyser le contenu d’une image
Collez la commande ci-dessous dans un éditeur de texte et apportez les modifications suivantes.
- Remplacez
<endpoint>par l’URL de votre point de terminaison de ressource. - Remplacez
<your_subscription_key>par votre clé. - Renseignez le champ
"image"dans le corps avec un champ"content"ou un champ"blobUrl". Par exemple,{"image": {"content": "<base_64_string>"}ou{"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"
}'
Remarque
Si vous utilisez une URL de stockage blob, le corps de la demande se présente comme suit:
{
"image": {
"blobUrl": "<your_storage_url>"
}
}
Les champs ci-dessous doivent être inclus dans l’URL :
| Nom | Requis ? | Descriptif | Type |
|---|---|---|---|
| Version de l'API | Obligatoire | Il s’agit de la version de l’API à vérifier. La version actuelle est : api-version=2024-09-01. Exemple : <endpoint>/contentsafety/image:analyze?api-version=2024-09-01 |
Chaîne |
Les paramètres dans le corps de la requête sont définis dans ce tableau :
| Nom | Requis ? | Descriptif | Type |
|---|---|---|---|
| contenu | Obligatoire | URL du contenu ou de l’objet blob de l’image. Je peux être des octets encodés en base64 ou une URL d’objet blob. Si les deux sont donnés, la requête est refusée. La taille maximale autorisée de l’image est de 7 200 x 7 200 pixels, et la taille maximale du fichier est de 4 Mo. La taille minimale de l’image est de 50 x 50 pixels. | Chaîne |
| catégories | Facultatif | C’est supposé être un tableau de noms de catégorie. Consultez le guide des catégories préjudiciables pour obtenir la liste des noms de catégorie disponibles. Si aucune catégorie n’est spécifiée, les quatre catégories sont utilisées. Nous utilisons plusieurs catégories pour obtenir des scores dans une seule requête. | Chaîne |
| outputType | Facultatif | L’API de modération d’image prend uniquement en charge "FourSeverityLevels". Gravités de sortie dans quatre niveaux. La valeur peut être 0,2,4,6 |
Chaîne |
Ouvrez une fenêtre d’invite de commandes et exécutez la commande cURL.
Output
Les résultats de la modération des images doivent s’afficher sous la forme de données JSON dans la console. Exemple :
{
"categoriesAnalysis": [
{
"category": "Hate",
"severity": 2
},
{
"category": "SelfHarm",
"severity": 0
},
{
"category": "Sexual",
"severity": 0
},
{
"category": "Violence",
"severity": 0
}
]
}
Les champs JSON dans la sortie sont définis ici :
| Nom | Descriptif | Type |
|---|---|---|
| analyse des catégories | Chaque classe de sortie prédite par l’API. La classification peut avoir plusieurs intitulés. Par exemple, lorsqu’une image est chargée dans le modèle de modération de l’image, elle peut être classifiée à la fois comme contenu sexuel et comme violence. Catégories préjudiciables | Chaîne |
| Niveau de gravité | Niveau de gravité de l’indicateur dans chaque catégorie de préjudice. Catégories préjudiciables | Integer |
Documentation de référence | Code source de la bibliothèque | Package (NuGet) | Exemples
Prérequis
- Un abonnement Azure - En créer un gratuitement
- L’IDE Visual Studio avec la charge de travail Développement de bureau .NET activée. Ou, si vous n’envisagez pas d’utiliser l’IDE Visual Studio, vous avez besoin de la version actuelle de .NET Core.
- .NET Runtime installé.
- Une fois que vous avez votre abonnement Azure, créez une ressource Content Safety dans le portail Azure pour obtenir votre clé et votre point de terminaison. Entrez un nom unique pour votre ressource, sélectionnez votre abonnement, puis sélectionnez un groupe de ressources, une région prise en charge (voir disponibilité région) et le niveau tarifaire pris en charge. Sélectionnez ensuite Créer.
- Le déploiement de la ressource prend quelques minutes. Une fois qu’il est terminé, sélectionnez Accéder à la ressource. Dans le volet gauche, sous Gestion des ressources, sélectionnez Clé et point de terminaison de l’abonnement. Le point de terminaison et l’une des clés sont utilisés pour appeler les API.
Configurer l’application
Créez une application C#.
Ouvrez Visual Studio et, dans Démarrage, sélectionnez Créer un projet. Définissez les filtres de modèle sur C#/Toutes les plateformes/console. Sélectionnez Application console (application en ligne de commande qui peut s’exécuter sur .NET sur Windows, Linux et macOS), puis choisissez Suivant. Mettez à jour le nom du projet sur ContentSafetyQuickstart et choisissez Suivant. Sélectionnez .NET 6.0 ou version ultérieure, puis choisissez Créer pour créer le projet.
Installer le client du Kit de développement logiciel (SDK)
Une fois que vous avez créé un projet, installez le SDK de client en cliquant avec le bouton droit sur la solution de projet dans l’Explorateur de solutions et en sélectionnant Gérer les packages NuGet. Dans le gestionnaire de package qui s’ouvre, sélectionnez Parcourir et recherchez Azure.AI.ContentSafety. Sélectionnez Installer.
Créer des variables d’environnement
Dans cet exemple, vous allez écrire vos informations d’identification dans des variables d’environnement sur l’ordinateur local exécutant l’application.
Pour définir la variable d’environnement de votre clé et point de terminaison, ouvrez une fenêtre de console et suivez les instructions relatives à votre système d’exploitation et à votre environnement de développement.
- Pour définir la variable d’environnement
CONTENT_SAFETY_KEY, remplacezYOUR_CONTENT_SAFETY_KEYpar l’une des clés de votre ressource. - Pour définir la variable d’environnement
CONTENT_SAFETY_ENDPOINT, remplacezYOUR_CONTENT_SAFETY_ENDPOINTpar le point de terminaison de votre ressource.
Important
Utilisez les clés API avec précaution. N’incluez pas la clé API directement dans votre code et ne la diffusez jamais publiquement. Si vous utilisez une clé API, stockez-la en lieu sûr dans Azure Key Vault. Pour plus d’informations sur l’utilisation sécurisée des clés API dans vos applications, consultez Clés API avec Azure Key Vault.
Pour découvrir plus d’informations sur la sécurité des services IA, consultez Authentifier les requêtes auprès d’Azure AI services.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
Après avoir ajouté les variables d'environnement, il se peut que vous deviez redémarrer tous les programmes en cours d'exécution qui liront les variables d'environnement, y compris la fenêtre de console.
Analyser le contenu d’une image
Dans le répertoire du projet, ouvrez le fichier Program.cs créé précédemment. Collez le code suivant.
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();
}
}
}
Créez un dossier sample_data dans votre répertoire de projet et ajoutez-y un fichier image.png.
Générez et exécutez l’application en sélectionnant Démarrer le débogage dans le menu Déboguer en haut de la fenêtre IDE (ou appuyez sur F5).
Documentation de référence | Code source de la bibliothèque | Package (PyPI) | Exemples |
Prérequis
- Un abonnement Azure - En créer un gratuitement
- Une fois que vous avez votre abonnement Azure, créez une ressource Content Safety dans le portail Azure pour obtenir votre clé et votre point de terminaison. Entrez un nom unique pour votre ressource, sélectionnez votre abonnement, puis sélectionnez un groupe de ressources, une région prise en charge (voir disponibilité région) et le niveau tarifaire pris en charge. Sélectionnez ensuite Créer.
- Le déploiement de la ressource prend quelques minutes. Une fois qu’il est terminé, sélectionnez Accéder à la ressource. Dans le volet gauche, sous Gestion des ressources, sélectionnez Clé et point de terminaison de l’abonnement. Le point de terminaison et l’une des clés sont utilisés pour appeler les API.
-
Python 3.8 ou version ultérieure
- Votre installation Python doit inclure pip. Vous pouvez vérifier si pip est installé en exécutant
pip --versionsur la ligne de commande. Procurez-vous pip en installant la dernière version de Python.
- Votre installation Python doit inclure pip. Vous pouvez vérifier si pip est installé en exécutant
Créer des variables d’environnement
Dans cet exemple, vous allez écrire vos informations d’identification dans des variables d’environnement sur l’ordinateur local exécutant l’application.
Pour définir la variable d’environnement de votre clé et point de terminaison, ouvrez une fenêtre de console et suivez les instructions relatives à votre système d’exploitation et à votre environnement de développement.
- Pour définir la variable d’environnement
CONTENT_SAFETY_KEY, remplacezYOUR_CONTENT_SAFETY_KEYpar l’une des clés de votre ressource. - Pour définir la variable d’environnement
CONTENT_SAFETY_ENDPOINT, remplacezYOUR_CONTENT_SAFETY_ENDPOINTpar le point de terminaison de votre ressource.
Important
Utilisez les clés API avec précaution. N’incluez pas la clé API directement dans votre code et ne la diffusez jamais publiquement. Si vous utilisez une clé API, stockez-la en lieu sûr dans Azure Key Vault. Pour plus d’informations sur l’utilisation sécurisée des clés API dans vos applications, consultez Clés API avec Azure Key Vault.
Pour découvrir plus d’informations sur la sécurité des services IA, consultez Authentifier les requêtes auprès d’Azure AI services.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
Après avoir ajouté les variables d'environnement, il se peut que vous deviez redémarrer tous les programmes en cours d'exécution qui liront les variables d'environnement, y compris la fenêtre de console.
Analyser le contenu d’une image
La section suivante décrit en détail un exemple de requête avec le SDK Python.
Ouvrez une invite de commandes, accédez à votre dossier de projet et créez un fichier nommé quickstart.py.
Exécutez cette commande pour installer la bibliothèque de client Azure AI Content Safety :
python -m pip install azure-ai-contentsafetyCopiez le code ci-après dans 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()Remplacez
"sample_data"et"image.jpg"par le chemin d’accès et le nom du fichier local que vous souhaitez utiliser.Exécutez ensuite l’application avec la commande
pythonde votre fichier de démarrage rapide.python quickstart.py
Documentation de référence | Code source de la bibliothèque | Artefact (Maven) | Exemples
Prérequis
- Un abonnement Azure - En créer un gratuitement
- La version actuelle du JDK (Java Development Kit)
- L’outil de génération Gradle ou un autre gestionnaire de dépendances.
- Une fois que vous avez votre abonnement Azure, créez une ressource Content Safety dans le portail Azure pour obtenir votre clé et votre point de terminaison. Entrez un nom unique pour votre ressource, sélectionnez votre abonnement, puis sélectionnez un groupe de ressources, une région prise en charge (voir disponibilité région) et le niveau tarifaire pris en charge. Sélectionnez ensuite Créer.
- Le déploiement de la ressource prend quelques minutes. Une fois qu’il est terminé, sélectionnez Accéder à la ressource. Dans le volet gauche, sous Gestion des ressources, sélectionnez Clé et point de terminaison de l’abonnement. Le point de terminaison et l’une des clés sont utilisés pour appeler les API.
Configurer l’application
Créez un projet Gradle.
Dans une fenêtre de console (telle que cmd, PowerShell ou bash), créez un répertoire pour votre application et accédez-y.
mkdir myapp && cd myapp
Exécutez la commande gradle init à partir de votre répertoire de travail. Cette commande crée des fichiers de build essentiels pour Gradle, notamment build.gradle.kts, qui est utilisé au moment de l’exécution pour créer et configurer votre application.
gradle init --type basic
Quand vous êtes invité à choisir un DSL, sélectionnez Kotlin.
Dans votre répertoire de travail, exécutez la commande suivante pour créer un dossier de projet source :
mkdir -p src/main/java
Accédez au nouveau dossier et créez un fichier nommé ContentSafetyQuickstart.java.
Créez également un dossier src/resources à la racine de votre projet et ajoutez-y un exemple d’image.
Installer le client du Kit de développement logiciel (SDK)
Ce guide de démarrage rapide utilise le gestionnaire de dépendances Gradle. Vous trouverez la bibliothèque de client et des informations concernant d’autres gestionnaires de dépendances sur le référentiel central Maven.
Recherchez build.gradle.kts et ouvrez-le avec votre IDE ou votre éditeur de texte habituel. Copiez-y ensuite la configuration de build suivante. Cette configuration définit le projet en tant qu’application Java dont le point d’entrée est la classe ContentSafetyQuickstart. Cela importe la bibliothèque 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")
}
Créer des variables d’environnement
Dans cet exemple, vous allez écrire vos informations d’identification dans des variables d’environnement sur l’ordinateur local exécutant l’application.
Pour définir la variable d’environnement de votre clé et point de terminaison, ouvrez une fenêtre de console et suivez les instructions relatives à votre système d’exploitation et à votre environnement de développement.
- Pour définir la variable d’environnement
CONTENT_SAFETY_KEY, remplacezYOUR_CONTENT_SAFETY_KEYpar l’une des clés de votre ressource. - Pour définir la variable d’environnement
CONTENT_SAFETY_ENDPOINT, remplacezYOUR_CONTENT_SAFETY_ENDPOINTpar le point de terminaison de votre ressource.
Important
Utilisez les clés API avec précaution. N’incluez pas la clé API directement dans votre code et ne la diffusez jamais publiquement. Si vous utilisez une clé API, stockez-la en lieu sûr dans Azure Key Vault. Pour plus d’informations sur l’utilisation sécurisée des clés API dans vos applications, consultez Clés API avec Azure Key Vault.
Pour découvrir plus d’informations sur la sécurité des services IA, consultez Authentifier les requêtes auprès d’Azure AI services.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
Après avoir ajouté les variables d'environnement, il se peut que vous deviez redémarrer tous les programmes en cours d'exécution qui liront les variables d'environnement, y compris la fenêtre de console.
Analyser le contenu d’une image
Ouvrez OpenSafetyQuickstart.java dans votre éditeur ou IDE préféré, puis collez le code suivant. Remplacez la variable source par le chemin d’accès à votre exemple d’image.
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());
}
}
}
Revenez au dossier racine du projet et générez l’application avec :
gradle build
Ensuite, exécutez-la avec la commande gradle run :
gradle run
Output
Hate severity: 0
SelfHarm severity: 0
Sexual severity: 0
Violence severity: 0
Documentation de référence | Code source de la bibliothèque | Package (npm) | Exemples |
Prérequis
- Un abonnement Azure - En créer un gratuitement
- Version actuelle de Node.js
- Une fois que vous avez votre abonnement Azure, créez une ressource Content Safety dans le portail Azure pour obtenir votre clé et votre point de terminaison. Entrez un nom unique pour votre ressource, sélectionnez votre abonnement, puis sélectionnez un groupe de ressources, une région prise en charge (voir disponibilité région) et le niveau tarifaire pris en charge. Sélectionnez ensuite Créer.
- Le déploiement de la ressource prend quelques minutes. Une fois qu’il est terminé, sélectionnez Accéder à la ressource. Dans le volet gauche, sous Gestion des ressources, sélectionnez Clé et point de terminaison de l’abonnement. Le point de terminaison et l’une des clés sont utilisés pour appeler les API.
Configurer l’application
Créez une application Node.js. Dans une fenêtre de console (telle que cmd, PowerShell ou bash), créez un répertoire pour votre application et accédez-y.
mkdir myapp && cd myapp
Exécutez la commande npm init pour créer une application de nœud avec un fichier package.json.
npm init
Créez également un dossier /resources à la racine de votre projet et ajoutez-y un exemple d’image.
Installer le client du Kit de développement logiciel (SDK)
Installez le package NPM @azure-rest/ai-content-safety :
npm install @azure-rest/ai-content-safety
Installez également le module dotenv pour utiliser des variables d’environnement :
npm install dotenv
Le fichier package.json de votre application sera mis à jour avec les dépendances.
Créer des variables d’environnement
Dans cet exemple, vous allez écrire vos informations d’identification dans des variables d’environnement sur l’ordinateur local exécutant l’application.
Pour définir la variable d’environnement de votre clé et point de terminaison, ouvrez une fenêtre de console et suivez les instructions relatives à votre système d’exploitation et à votre environnement de développement.
- Pour définir la variable d’environnement
CONTENT_SAFETY_KEY, remplacezYOUR_CONTENT_SAFETY_KEYpar l’une des clés de votre ressource. - Pour définir la variable d’environnement
CONTENT_SAFETY_ENDPOINT, remplacezYOUR_CONTENT_SAFETY_ENDPOINTpar le point de terminaison de votre ressource.
Important
Utilisez les clés API avec précaution. N’incluez pas la clé API directement dans votre code et ne la diffusez jamais publiquement. Si vous utilisez une clé API, stockez-la en lieu sûr dans Azure Key Vault. Pour plus d’informations sur l’utilisation sécurisée des clés API dans vos applications, consultez Clés API avec Azure Key Vault.
Pour découvrir plus d’informations sur la sécurité des services IA, consultez Authentifier les requêtes auprès d’Azure AI services.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
Après avoir ajouté les variables d'environnement, il se peut que vous deviez redémarrer tous les programmes en cours d'exécution qui liront les variables d'environnement, y compris la fenêtre de console.
Analyser le contenu d’une image
Créez un fichier dans votre répertoire, index.js. Ouvrez-le dans votre éditeur ou IDE préféré et collez dans le code suivant. Remplacez la variable image_path par le chemin d’accès à votre exemple d’image.
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);
});
Exécutez l’application avec la commande node de votre fichier de démarrage rapide.
node index.js
Output
Hate severity: 0
SelfHarm severity: 0
Sexual severity: 0
Violence severity: 0
Documentation de référence | Code source de la bibliothèque | Package (npm) | Exemples |
Prérequis
- Un abonnement Azure - En créer un gratuitement
- Node.js LTS
- TypeScript
- Visual Studio Code
- Une fois que vous avez votre abonnement Azure, créez une ressource Content Safety dans le portail Azure pour obtenir votre clé et votre point de terminaison. Entrez un nom unique pour votre ressource, sélectionnez votre abonnement, puis sélectionnez un groupe de ressources, une région prise en charge (voir disponibilité région) et le niveau tarifaire pris en charge. Sélectionnez ensuite Créer.
- Le déploiement de la ressource prend quelques minutes. Une fois qu’il est terminé, sélectionnez Accéder à la ressource. Dans le volet gauche, sous Gestion des ressources, sélectionnez Clé et point de terminaison de l’abonnement. Le point de terminaison et l’une des clés sont utilisés pour appeler les API.
Configurer l’environnement de développement local
Créez un répertoire pour votre projet et accédez-y :
mkdir content-safety-image-analysis cd content-safety-image-analysis code .Créez un package pour les modules ESM dans votre répertoire de projet :
npm init -y npm pkg set type=moduleInstallez les packages nécessaires :
npm install @azure-rest/ai-content-safetyInstallez les dépendances de développement :
npm install typescript @types/node --save-devCréez un
tsconfig.jsonfichier dans le répertoire de votre projet :{ "compilerOptions": { "target": "es2022", "module": "esnext", "moduleResolution": "bundler", "rootDir": "./src", "outDir": "./dist/", "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "strict": true, "skipLibCheck": true, "declaration": true, "sourceMap": true, "resolveJsonModule": true, "moduleDetection": "force", "allowSyntheticDefaultImports": true, "verbatimModuleSyntax": false }, "include": [ "src/**/*.ts" ], "exclude": [ "node_modules/**/*", "**/*.spec.ts" ] }Mettez à jour
package.jsonpour inclure un script pour générer des fichiers TypeScript :"scripts": { "build": "tsc", "start": "node dist/index.js" }Créez un
resourcesdossier et ajoutez-y un exemple d’image.Créez un
srcrépertoire pour votre code TypeScript.
Créer des variables d’environnement
Dans cet exemple, vous allez écrire vos informations d’identification dans des variables d’environnement sur l’ordinateur local exécutant l’application.
Pour définir la variable d’environnement de votre clé et point de terminaison, ouvrez une fenêtre de console et suivez les instructions relatives à votre système d’exploitation et à votre environnement de développement.
- Pour définir la variable d’environnement
CONTENT_SAFETY_KEY, remplacezYOUR_CONTENT_SAFETY_KEYpar l’une des clés de votre ressource. - Pour définir la variable d’environnement
CONTENT_SAFETY_ENDPOINT, remplacezYOUR_CONTENT_SAFETY_ENDPOINTpar le point de terminaison de votre ressource.
Important
Utilisez les clés API avec précaution. N’incluez pas la clé API directement dans votre code et ne la diffusez jamais publiquement. Si vous utilisez une clé API, stockez-la en lieu sûr dans Azure Key Vault. Pour plus d’informations sur l’utilisation sécurisée des clés API dans vos applications, consultez Clés API avec Azure Key Vault.
Pour découvrir plus d’informations sur la sécurité des services IA, consultez Authentifier les requêtes auprès d’Azure AI services.
setx CONTENT_SAFETY_KEY 'YOUR_CONTENT_SAFETY_KEY'
setx CONTENT_SAFETY_ENDPOINT 'YOUR_CONTENT_SAFETY_ENDPOINT'
Après avoir ajouté les variables d'environnement, il se peut que vous deviez redémarrer tous les programmes en cours d'exécution qui liront les variables d'environnement, y compris la fenêtre de console.
Analyser le contenu d’une image
Créez un fichier dans votre src répertoire et index.ts collez-le dans le code suivant. Remplacez la chaîne utilisée pour créer la imagePath variable par le chemin d’accès à votre exemple d’image.
import ContentSafetyClient, {
isUnexpected,
AnalyzeImageParameters,
AnalyzeImage200Response,
AnalyzeImageDefaultResponse,
AnalyzeImageOptions,
ImageCategoriesAnalysisOutput
} from "@azure-rest/ai-content-safety";
import { AzureKeyCredential } from "@azure/core-auth";
import * as fs from "fs";
import * as path from "path";
import { fileURLToPath } from "url";
// Create __dirname equivalent for ESM modules
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
// Get endpoint and key from environment variables
const endpoint = process.env.CONTENT_SAFETY_ENDPOINT;
const key = process.env.CONTENT_SAFETY_KEY;
if (!endpoint || !key) {
throw new Error("Missing required environment variables CONTENT_SAFETY_ENDPOINT or CONTENT_SAFETY_KEY");
}
try {
const credential = new AzureKeyCredential(key);
const client = ContentSafetyClient(endpoint, credential);
const imagePath = path.join(__dirname, '../resources/image.jpg');
const imageBuffer = fs.readFileSync(imagePath);
const base64Image = imageBuffer.toString("base64");
const analyzeImageOption: AnalyzeImageOptions = { image: { content: base64Image } };
const analyzeImageParameters: AnalyzeImageParameters = { body: analyzeImageOption };
const result: AnalyzeImage200Response | AnalyzeImageDefaultResponse = await client.path("/image:analyze").post(analyzeImageParameters);
if (isUnexpected(result)) {
throw result;
}
const categoriesAnalysis = result.body.categoriesAnalysis as ImageCategoriesAnalysisOutput[];
for (const analysis of categoriesAnalysis) {
console.log(`${analysis.category} severity: ${analysis.severity}`);
}
} catch (error) {
console.error("Error analyzing image:", error);
}
Création et exécution de l’exemple
Compilez le code TypeScript :
npm run buildExécutez le code JavaScript compilé :
node dist/index.js
Output
Hate severity: 0
SelfHarm severity: 0
Sexual severity: 0
Violence severity: 0
Nettoyer les ressources
Si vous souhaitez nettoyer et supprimer un abonnement Azure AI services, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.
Contenu connexe
- Catégories préjudiciables
- Configurez des filtres pour chaque catégorie et testez des jeux de données en utilisant Content Safety Studio, puis exportez le code et déployez-le.