Azure AI Innehållsäkerhet client library for JavaScript - version 1.0.0-beta.1

Detta paket innehåller ett isomorft SDK (körs både i Node.js och i webbläsare) för att analysera skadligt innehåll, utvärdera Agent Control Spec-policyer, upptäcka innehållsursprung och hantera textblocklistor.

Nyckellänkar:

Detta paket har ännu inte publicerats på npm. NPM-paketsidan och den hostade API-referensen kommer att finnas tillgängliga efter den första releasen.

Komma igång

Miljöer som stöds för närvarande

Mer information finns i vår supportprincip.

Förutsättningar

Installera @azure/ai-content-safety-paketet

Efter den första betaversionen, installera Azure AI Innehållsäkerhet-klientbiblioteket för JavaScript mednpm:

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

Skapa och autentisera klienter

För att skapa en klient behöver endpoint du din Azure AI Innehållsäkerhet-resurs och en legitimation. Du kan hitta endpointen i Azure Portal.

Du kan autentisera dig med Microsoft Entra ID med en legitimation från @azure/identity-biblioteket eller en befintlig Microsoft Entra-token.

Installera -paketet om du vill använda @azure/identity som visas nedan eller andra leverantörer av autentiseringsuppgifter som tillhandahålls med Azure SDKs:

npm install @azure/identity

Du måste också registrera en ny Microsoft Entra-applikation och ge tillgång till Azure AI Innehållsäkerhet genom att tilldela en lämplig roll till din tjänsteansvarig (notera: roller som "Owner" inte ger nödvändiga behörigheter).

För mer information om hur du skapar en Microsoft Entra-applikation, kolla in denna guide.

Med hjälp av Node.js- och Node-liknande miljöer kan du använda klassen DefaultAzureCredential för att autentisera klienten.

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

För webbläsarmiljöer använder du InteractiveBrowserCredential från @azure/identity-paketet för att autentisera.

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

JavaScript-paket

Om du vill använda det här klientbiblioteket i webbläsaren måste du först använda en bundler. Mer information om hur du gör detta finns i vår paketeringsdokumentation.

Viktiga begrepp

ContentSafetyClient

ContentSafetyClient analyserar text och bilder, upptäcker skyddat material och snabb injektion samt utvärderar innehåll mot en policy enligt Agent Control Specifikation.

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

ContentProvenanceClientstartar och övervakar långvariga detekteringsoperationer för Microsoft-utfärdade C2PA- och vattenstämpelssignaler.

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;

Serialiserat pollertillstånd kan återställas i en annan process:

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 skapar, uppdaterar, listar och raderar textblocklistor och deras objekt.

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;

Använd byPage({ maxPageSize }) för att begära en maximal sidstorlek när blocklistor listas:

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

Aktivering av loggning kan hjälpa dig att hitta användbar information om fel. Om du vill se en logg med HTTP-begäranden och svar anger du AZURE_LOG_LEVEL miljövariabeln till info. Du kan också aktivera loggning vid körning genom att anropa setLogLevel i @azure/logger:

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

setLogLevel("info");

Mer detaljerade anvisningar om hur du aktiverar loggar finns i dokument för @azure/logger-paket.

Contributing

Om du vill bidra till det här biblioteket kan du läsa bidragsguide för att lära dig mer om hur du skapar och testar koden.