Azure AI Sécurité du Contenu client library for JavaScript - version 1.0.0-beta.1

Ce paquet contient un SDK isomorphe (exécuté à la fois dans Node.js navigateurs) pour analyser les contenus nuisibles, évaluer les politiques de spécification de contrôle des agents, détecter la provenance du contenu et gérer les listes de blocage de textes.

Liens clés :

Ce dossier n’a pas encore été publié sur npm. La page du package npm et la référence API hébergée seront disponibles après la première version.

Premiers pas

Environnements actuellement pris en charge

Pour plus d’informations, consultez notre de stratégie de support .

Prerequisites

Installer le package @azure/ai-content-safety

Après la première version bêta, installez la bibliothèque client Azure AI Sécurité du Contenu pour JavaScript avec npm:

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

Créer et authentifier des clients

Pour créer un client, vous aurez besoin de endpoint votre ressource Azure AI Sécurité du Contenu et d’une accréditation. Vous pouvez trouver le point de terminaison dans Portail Azure.

Vous pouvez vous authentifier avec Microsoft Entra ID en utilisant un identifiant de la bibliothèque @azure/identity ou un jeton Microsoft Entra existant.

Pour utiliser le fournisseur DefaultAzureCredential indiqué ci-dessous ou d’autres fournisseurs d’informations d’identification fournis avec le Kit de développement logiciel (SDK) Azure, installez le package :

npm install @azure/identity

Vous devrez également enregistrer une nouvelle application Microsoft Entra et accorder l’accès à Azure AI Sécurité du Contenu en attribuant un rôle approprié à votre directeur de service (note : des rôles comme "Owner" ne délivreront pas les autorisations nécessaires).

Pour plus d’informations sur la création d’une application Microsoft Entra, consultez ce guide.

À l’aide de Node.js et d’environnements de type Nœud, vous pouvez utiliser la classe DefaultAzureCredential pour authentifier le client.

import { DefaultAzureCredential } from "@azure/identity";
import {
  ContentSafetyClient,
  ContentProvenanceClient,
  BlocklistClient,
} from "@azure/ai-content-safety";

const credential = new DefaultAzureCredential();
const contentSafetyClient = new ContentSafetyClient("<endpoint>", credential);
const contentProvenanceClient = new ContentProvenanceClient("<endpoint>", credential);
const blocklistClient = new BlocklistClient("<endpoint>", credential);

Pour les environnements de navigateur, utilisez le InteractiveBrowserCredential à partir du package @azure/identity pour l’authentification.

import { InteractiveBrowserCredential } from "@azure/identity";
import { ContentSafetyClient } from "@azure/ai-content-safety";

const credential = new InteractiveBrowserCredential({
  tenantId: "<YOUR_TENANT_ID>",
  clientId: "<YOUR_CLIENT_ID>",
});
const client = new ContentSafetyClient("<endpoint>", credential);

Offre groupée JavaScript

Pour utiliser cette bibliothèque cliente dans le navigateur, vous devez d’abord utiliser un bundler. Pour plus d’informations sur la procédure à suivre, reportez-vous à notre documentation de regroupement .

Concepts clés

ContenuSécuritéClient

ContentSafetyClient analyse le texte et les images, détecte le matériel protégé et l’injection rapide, et évalue le contenu selon une politique de spécification de contrôle de l’agent.

import { ContentSafetyClient } from "@azure/ai-content-safety";
import { DefaultAzureCredential } from "@azure/identity";

const client = new ContentSafetyClient("<endpoint>", new DefaultAzureCredential());
async function moderateInput(): Promise<void> {
  const result = await client.unifiedModerate({
    policyId: "<policy-id>",
    source: "input",
    content: "Text to evaluate",
  });
  console.log(result.verdict);
}
void moderateInput;

ContentProvenanceClient

ContentProvenanceClientlance et surveille des opérations de détection de longue date pour les signaux C2PA et filigranes délivrés par Microsoft.

import { ContentProvenanceClient } from "@azure/ai-content-safety";
import { DefaultAzureCredential } from "@azure/identity";

const client = new ContentProvenanceClient("<endpoint>", new DefaultAzureCredential());
async function detectProvenance(): Promise<void> {
  const poller = client.detect({ content: { uri: "<media-blob-uri>" } });
  const result = await poller.pollUntilDone();
  console.log(result.outcome);
}
void detectProvenance;

L’état sérialisé du poller peut être restauré dans un autre processus :

import { ContentProvenanceClient, restorePoller } from "@azure/ai-content-safety";
import { DefaultAzureCredential } from "@azure/identity";

const client = new ContentProvenanceClient("<endpoint>", new DefaultAzureCredential());
async function resumeDetection(serializedState: string): Promise<void> {
  const poller = restorePoller(client, serializedState, client.detect.bind(client));
  const result = await poller.pollUntilDone();
  console.log(result.outcome);
}
void resumeDetection;

BlocklistClient

BlocklistClient crée, met à jour, liste et supprime des listes de blocage de texte et leurs éléments.

import { BlocklistClient } from "@azure/ai-content-safety";
import { DefaultAzureCredential } from "@azure/identity";

const client = new BlocklistClient("<endpoint>", new DefaultAzureCredential());
async function updateBlocklist(): Promise<void> {
  const result = await client.createOrUpdateTextBlocklist("<blocklist-name>", {
    description: "Blocklist description",
  });
  console.log(result.blocklistName);
}
void updateBlocklist;

À utiliser byPage({ maxPageSize }) pour demander une taille maximale de page lors de la liste des éléments de blocage :

import { BlocklistClient } from "@azure/ai-content-safety";
import { DefaultAzureCredential } from "@azure/identity";

const client = new BlocklistClient("<endpoint>", new DefaultAzureCredential());
async function listBlocklistItemPages(): Promise<void> {
  const pages = client.listTextBlocklistItems("<blocklist-name>").byPage({ maxPageSize: 20 });
  for await (const page of pages) {
    for (const item of page) {
      console.log(item.blocklistItemId, item.text);
    }
  }
}
void listBlocklistItemPages;

Résolution des problèmes

Logging

L’activation de la journalisation peut vous aider à découvrir des informations utiles sur les échecs. Pour afficher un journal des requêtes et réponses HTTP, définissez la variable d’environnement AZURE_LOG_LEVEL sur info. Vous pouvez également activer la journalisation au moment de l’exécution en appelant setLogLevel dans la @azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Pour obtenir des instructions plus détaillées sur l’activation des journaux, vous pouvez consulter la documentationdu package @azure/enregistreur d’événements.

Contributing

Si vous souhaitez contribuer à cette bibliothèque, lisez le guide de contribution pour en savoir plus sur la génération et le test du code.