Segurança de Conteúdo de IA do Azure biblioteca cliente para JavaScript - versão 1.0.0-beta.1

Este pacote contém um SDK isomorfo (executado tanto em Node.js quanto em navegadores) para analisar conteúdo nocivo, avaliar políticas de Especificação de Controle de Agente, detectar a proveniência do conteúdo e gerenciar listas de bloqueio de texto.

Links de chave:

Este pacote ainda não foi publicado para o npm. A página do pacote npm e a referência da API hospedada estarão disponíveis após a primeira versão.

Como começar

Ambientes com suporte no momento

Consulte nossa política de suporte para obter mais detalhes.

Pré-requisitos

Instalar o pacote @azure/ai-content-safety

Após a primeira versão beta, instale a biblioteca cliente Segurança de Conteúdo de IA do Azure para JavaScript comnpm:

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

Crie e autentice clientes

Para criar um cliente, você precisará do endpoint seu recurso Segurança de Conteúdo de IA do Azure e de uma credencial. Você pode encontrar o endpoint no portal do Azure.

Você pode autenticar com o Microsoft Entra ID usando uma credencial da biblioteca @azure/identity ou um token Microsoft Entra existente.

Para usar o provedor DefaultAzureCredential mostrado abaixo ou outros provedores de credenciais fornecidos com o SDK do Azure, instale o pacote @azure/identity:

npm install @azure/identity

Você também precisará registrar uma nova aplicação Microsoft Entra e conceder acesso ao Segurança de Conteúdo de IA do Azure atribuindo um papel adequado ao seu principal de serviço (nota: cargos como "Owner" não concedem as permissões necessárias).

Para mais informações sobre como criar um aplicativo Microsoft Entra, confira este guia.

Usando ambientes semelhantes a Node.js e nó, você pode usar a classe DefaultAzureCredential para autenticar o 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);

Para ambientes de navegador, use o InteractiveBrowserCredential do pacote @azure/identity para autenticar.

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

Pacote JavaScript

Para usar essa biblioteca de clientes no navegador, primeiro você precisa usar um empacotador. Para obter detalhes sobre como fazer isso, consulte nossa documentação de agrupamento .

Conceitos principais

ConteúdoSegurançaCliente

ContentSafetyClient analisa texto e imagens, detecta material protegido e injeção rápida, e avalia o conteúdo em relação a uma política de Especificação de Controle de Agente.

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 e monitora operações de detecção de longa duração para sinais de C2PA fornecidos pela Microsoft e marca d'água.

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;

O estado serializado do poller pode ser restaurado em outro processo:

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 cria, atualiza, lista e exclui listas de bloqueio de texto e seus itens.

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;

Use byPage({ maxPageSize }) para solicitar um tamanho máximo de página ao listar itens da lista de bloqueios:

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;

Resolução de problemas

Logging

Habilitar o registro em log pode ajudar a descobrir informações úteis sobre falhas. Para ver um log de solicitações e respostas HTTP, defina a variável de ambiente AZURE_LOG_LEVEL como info. Como alternativa, o registro em log pode ser habilitado em runtime chamando setLogLevel no @azure/logger:

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

setLogLevel("info");

Para obter instruções mais detalhadas sobre como habilitar logs, você pode consultar os documentos do pacote @azure/logger.

Contributing

Se você quiser contribuir com essa biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.

  • do SDK do Microsoft Azure para JavaScript