Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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
- Versões LTS de Node.js
- Versões mais recentes do Safari, Chrome, Edge e Firefox.
Consulte nossa política de suporte para obter mais detalhes.
Pré-requisitos
- Uma assinatura do Azure.
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.
Projetos relacionados
Azure SDK for JavaScript