Seguridad del contenido de Azure AI biblioteca cliente para JavaScript - versión 1.0.0-beta.1

Este paquete contiene un SDK isomorfo (que se ejecuta tanto en Node.js como en navegadores) para analizar contenido dañino, evaluar políticas de Especificación de Control de Agentes, detectar el origen del contenido y gestionar listas de bloqueo de texto.

Vínculos clave:

Este paquete aún no ha sido publicado en npm. La página del paquete npm y la referencia de la API alojada estarán disponibles después de la primera versión.

Cómo empezar

Entornos admitidos actualmente

Consulte nuestra de directiva de soporte técnico de para obtener más información.

Prerequisites

Instalación del paquete @azure/ai-content-safety

Tras la primera versión beta, instala la biblioteca cliente Seguridad del contenido de Azure AI para JavaScript con:npm

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

Crear y autenticar clientes

Para crear un cliente, necesitarás el endpoint acceso de tu recurso Seguridad del contenido de Azure AI y una credencial. Puedes encontrar el endpoint en el Azure Portal.

Puedes autenticarte con Microsoft Entra ID usando una credencial de la biblioteca @azure/identity o un token Microsoft Entra existente.

Para usar el proveedor DefaultAzureCredential que se muestra a continuación u otros proveedores de credenciales proporcionados con el SDK de Azure, instale el @azure/identity paquete:

npm install @azure/identity

También tendrás que registrar una nueva aplicación Microsoft Entra y conceder acceso a Seguridad del contenido de Azure AI asignando un rol adecuado a tu principal de servicio (nota: roles como no "Owner" conceden los permisos necesarios).

Para más información sobre cómo crear una aplicación Microsoft Entra, consulta esta guía.

Con Node.js y entornos similares a nodos, puede usar la clase DefaultAzureCredential para autenticar al cliente.

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

En el caso de los entornos del explorador, use el InteractiveBrowserCredential del paquete de @azure/identity para autenticarse.

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

Paquete de JavaScript

Para usar esta biblioteca cliente en el explorador, primero debe usar un agrupador. Para obtener más información sobre cómo hacerlo, consulte nuestra documentación de agrupación de .

Conceptos clave

ContenidoSeguridadCliente

ContentSafetyClient analiza texto e imágenes, detecta material protegido e inyección rápida, y evalúa el contenido según una política de Especificación de Control de Agentes.

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

ContentProvenanceClientinicia y monitoriza las operaciones de detección de larga duración para señales C2PA emitidas por Microsoft y marca de agua.

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;

El estado del sondeador serializado puede restaurarse en otro proceso:

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 crea, actualiza, lista y elimina listas de bloqueo de texto y sus elementos.

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;

Úsalo byPage({ maxPageSize }) para solicitar un tamaño máximo de página al listar elementos de la lista de bloqueo:

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;

Troubleshooting

Logging

Habilitar el registro puede ayudar a descubrir información útil sobre errores. Para ver un registro de solicitudes y respuestas HTTP, establezca la variable de entorno AZURE_LOG_LEVEL en info. Como alternativa, el registro se puede habilitar en tiempo de ejecución llamando a setLogLevel en el @azure/logger:

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

setLogLevel("info");

Para obtener instrucciones más detalladas sobre cómo habilitar los registros, puede consultar los documentos del paquete de @azure/registrador.

Contributing

Si desea contribuir a esta biblioteca, lea la guía de contribución de para obtener más información sobre cómo compilar y probar el código.