Partager via


Démarrage rapide : Catégories personnalisées (mode standard) (préversion)

Suivez ce guide pour utiliser les catégories personnalisées (standard) de l’API REST Azure AI Sécurité du Contenu afin de créer vos propres catégories de contenu pour votre cas d’utilisation et d’entraîner Azure AI Sécurité du Contenu à les détecter dans le nouveau contenu texte.

Pour plus d’informations sur les catégories personnalisées, consultez la page des concepts des catégories personnalisées. Pour connaître les limites d’entrée de l’API, consultez la section Exigences pour les entrées de la Vue d’ensemble.

Important

Cette fonctionnalité est disponible uniquement dans certaines régions Azure. Consultez Disponibilité dans les régions.

Important

Laisser suffisamment de temps pour l’entraînement du modèle

L’exécution de bout en bout de l’entraînement des catégories personnalisées peut prendre entre cinq et dix heures. Planifiez votre pipeline de modération en conséquence.

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 et un 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. Copiez le point de terminaison et l’une des valeurs clés sur un emplacement temporaire pour une utilisation ultérieure.
  • Créez également un conteneur de Stockage Blob Azure dans lequel vous conservez votre fichier d’annotation d’entraînement.
  • L'un des éléments suivants est installé :

Préparer vos données d’entraînement

Pour entraîner une catégorie personnalisée, vous avez besoin d’exemples de données de texte qui représentent la catégorie que vous souhaitez détecter. Dans ce guide, vous pouvez utiliser des exemples de données. Le fichier d’annotation fourni contient des invites de texte sur les conseils de survie dans des situations de camping/en pleine nature sauvage. Le modèle entraîné apprend à détecter ce type de contenu dans de nouvelles données de texte.

Conseil

Pour obtenir des conseils sur la création de votre propre jeu de données, consultez le guide pratique.

  1. Téléchargez l’exemple de fichier de données de texte à partir du référentiel GitHub.
  2. Chargez le fichier .jsonl dans votre conteneur de Stockage Blob Azure. Copiez ensuite l’URL d’objet blob sur un emplacement temporaire pour une utilisation ultérieure.

Important

Le compte de stockage de l’utilisateur est configuré en tant que compte d’espace de noms hiérarchique, lequel ne peut pas être pris en charge par les catégories personnalisées. Essayez plutôt d’utiliser un compte de stockage standard. Par exemple, votre URL de blob ne peut pas être divisée en deux couches, comme exemple/exemple1/, elle ne doit avoir qu’une seule couche. Pour plus d’informations, reportez-vous à la documentation : Espace de noms hiérarchique Azure Data Lake Storage – Stockage Azure.

Accorder l’accès au stockage

Ensuite, vous devez accorder à votre ressource Content Safety l’accès à la lecture à partir de la ressource Stockage Azure. Activez l’identité managée affectée par le système pour l’instance Azure AI Sécurité du Contenu et attribuez le rôle de contributeur/propriétaire des données Blob du stockage à l’identité :

Important

Les rôles Contributeur des données Blob du stockage et Propriétaire des données Blob du stockage sont les seuls rôles valides pour continuer.

  1. Activez une identité managée pour l’instance Azure AI Content Safety.

    Capture d’écran montrant l’activation d’une identité managée.

  2. 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.

    Capture d’écran de la page Ajouter une attribution de rôle sur le portail Azure.

    Capture d’écran des rôles assignés dans le portail Azure.

    Capture d’écran montrant le rôle de l’identité managée.

Créer et entraîner une catégorie personnalisée

Dans la commande ci-dessous, remplacez <your_api_key>, <your_endpoint> et d’autres paramètres nécessaires par vos propres valeurs. Entrez ensuite chaque commande dans une fenêtre de terminal et exécutez-la.

Créer une nouvelle version de catégorie

curl -X PUT "<your_endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-09-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json" \
     -d "{
            \"categoryName\": \"survival-advice\",
            \"definition\": \"text prompts about survival advice in camping/wilderness situations\",
            \"sampleBlobUrl\": \"https://<your-azure-storage-url>/example-container/survival-advice.jsonl\"
        }"

Conseil

Chaque fois que vous modifiez le nom, la définition ou les exemples de votre catégorie, une nouvelle version est créée. Vous pouvez utiliser le numéro de version pour revenir aux versions précédentes. N’oubliez pas ce numéro de version, car il sera nécessaire dans l’URL à l’étape suivante : catégories personnalisées d’entraînement.

Demande API

Champ Description Exemple de valeur
categoryName Nom de la catégorie ou de la rubrique à laquelle la demande est liée. survival-advice
definition Brève description du type de contenu pour la catégorie. invites de texte sur les conseils de survie dans les situations de camping ou dans la nature
sampleBlobUrl URL permettant d’accéder à un exemple de fichier JSONL contenant des exemples de données pour la catégorie. Lien

Réponse de l’API

Champ Description Exemple de valeur
categoryName Nom de la catégorie ou de la rubrique à laquelle la réponse est liée. survival-advice
definition Brève description du type de contenu pour la catégorie. invites de texte sur les conseils de survie dans les situations de camping ou dans la nature
sampleBlobUrl URL permettant d’accéder à un exemple de fichier JSONL contenant des exemples de données pour la catégorie. Lien
sampleBlobSnapshotUrl URL d’instantané de l’exemple de fichier JSONL, qui fournit l’accès à une version spécifique des données. URL d’instantané
version Numéro de version des données de catégorie. 1
createdTime Horodatage lorsque les données de catégorie ont été créées. 2024-10-28T22:06:59.4626988Z
status État actuel du traitement des données de catégorie. Réussi

Démarrez le processus de génération de catégorie :

Remplacez <your_api_key> et <your_endpoint> par vos propres valeurs, puis ajoutez le numéro de version dans l’URL que vous avez obtenue à la dernière étape. Prévoyez suffisamment de temps pour l’entraînement du modèle : l’exécution de bout en bout de l’entraînement de catégorie personnalisée peut prendre environ cinq heures à dix heures. Planifiez votre pipeline de modération en conséquence. Après avoir reçu la réponse, stockez l’ID d’opération (appelé id) sur un emplacement temporaire. Cet ID sera nécessaire pour récupérer l’état de la build à l’aide de l’API Obtenir l’état dans la section suivante.

curl -X POST "<your_endpoint>/contentsafety/text/categories/survival-advice:build?api-version=2024-09-15-preview&version={version}" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Réponse de l’API

Champ Description Exemple de valeur
operation id Identificateur unique pour récupérer l’état de la build b6c69dc1-2338-484e-85a5b-xxxxxxxxxxxx
status État actuel de la demande Réussi

Obtenir l’état de la build de catégorie :

Pour récupérer l’état, utilisez l’élément id obtenu à partir de la réponse d’API précédente et placez-le dans le chemin d’accès de l’API ci-dessous.

curl -X GET "<your_endpoint>/contentsafety/text/categories/operations/<id>?api-version=2024-09-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Réponse de l’API

Champ Description Exemple de valeur
operation id Identificateur unique pour récupérer l’état de la build b6c69dc1-2338-484e-855b-xxxxxxxxxxxx
status État actuel de la demande Réussi

Analyser du texte avec une catégorie personnalisée

Exécutez la commande suivante pour analyser du texte avec votre catégorie personnalisée. Remplacez <your_api_key> et <your_endpoint> par vos propres valeurs.

curl -X POST "<your_endpoint>/contentsafety/text:analyzeCustomCategory?api-version=2024-09-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json" \
     -d "{
            \"text\": \"<Example text to analyze>\",
            \"categoryName\": \"survival-advice\", 
            \"version\": 1
        }"

Demande API

Champ Description
text Contenu texte ou message destiné à la détection de catégorie
categoryName Nom de la catégorie dans laquelle le texte doit être détecté
version Numéro de version de la catégorie

Réponse de l’API

Champ Description Exemple de valeur
customCategoryAnalysis Objet contenant le résultat d’analyse de la catégorie.
detected Indique si la catégorie spécifiée a été détectée. false

Autres opérations de catégories personnalisées

N’oubliez pas de remplacer les espaces réservés ci-dessous par vos valeurs réelles pour la clé API, le point de terminaison et le contenu spécifique (nom de catégorie, définition, etc.). Ces exemples vous aident à gérer les catégories personnalisées dans votre compte.

Obtenir une catégorie personnalisée ou une version spécifique de celle-ci

Remplacez les espaces réservés par vos propres valeurs et exécutez la commande suivante dans une fenêtre de terminal :

curl -X GET "<endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-09-15-preview&version=1" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Répertorier les catégories de leurs dernières versions

Remplacez les espaces réservés par vos propres valeurs et exécutez la commande suivante dans une fenêtre de terminal :

curl -X GET "<endpoint>/contentsafety/text/categories?api-version=2024-09-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Supprimer une catégorie personnalisée ou une version spécifique de celle-ci

Remplacez les espaces réservés par vos propres valeurs et exécutez la commande suivante dans une fenêtre de terminal :

curl -X DELETE "<endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-09-15-preview&version=1" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"