Azure KI Inhaltssicherheit Client-Bibliothek für JavaScript - Version 1.0.0-beta.1

Dieses Paket enthält ein isomorphes SDK (läuft sowohl in Node.js als auch in Browsern) zur Analyse schädlicher Inhalte, zur Bewertung von Agent Control Specification Policies, zur Erkennung der Herkunft von Inhalten und zur Verwaltung von Textblocklisten.

Wichtige Links:

Dieses Paket wurde bisher noch nicht bei npm veröffentlicht. Die npm-Paketseite und die gehostete API-Referenz werden nach der ersten Version verfügbar sein.

Erste Schritte

Derzeit unterstützte Umgebungen

Weitere Informationen finden Sie in unserer Supportrichtlinie.

Voraussetzungen

Installieren Sie das @azure/ai-content-safety-Paket

Nach der ersten Beta-Version installieren Sie die Azure KI Inhaltssicherheit-Client-Bibliothek für JavaScript mitnpm:

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

Erstellen und authentifizieren Sie Clients

Um einen Client zu erstellen, benötigen endpoint Sie Ihre Azure KI Inhaltssicherheit-Ressource und eine Berechtigung. Den Endpunkt findest du im Azure-Portal.

Sie können sich mit der Microsoft Entra ID authentifizieren, indem Sie eine Zugangsdaten aus der @azure/identity-Bibliothek oder ein bestehendes Microsoft Entra-Token verwenden.

Um den unten gezeigten DefaultAzureCredential Anbieter oder andere Anmeldeinformationsanbieter zu verwenden, die mit dem Azure SDK bereitgestellt werden, installieren Sie bitte das @azure/identity Paket:

npm install @azure/identity

Sie müssen außerdem eine neue Microsoft Entra-Anwendung registrieren und Zugang zu Azure KI Inhaltssicherheit gewähren, indem Sie Ihrem Service Principal eine geeignete Rolle zuweisen (Hinweis: Rollen wie "Owner" diese gewähren nicht die erforderlichen Berechtigungen).

Weitere Informationen darüber, wie man eine Microsoft Entra-Anwendung erstellt, finden Sie in diesem Leitfaden.

Mithilfe von Node.js- und Node-ähnlichen Umgebungen können Sie die DefaultAzureCredential Klasse verwenden, um den Client zu authentifizieren.

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

Verwenden Sie für Browserumgebungen die InteractiveBrowserCredential aus dem @azure/identity Paket, um sich zu authentifizieren.

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-Bündel

Um diese Clientbibliothek im Browser zu verwenden, müssen Sie zuerst einen Bundler verwenden. Ausführliche Informationen dazu finden Sie in unserer Bündelungsdokumentation.

Schlüsselkonzepte

ContentSafetyClient

ContentSafetyClient Analysiert Text und Bilder, erkennt geschütztes Material und prompte Injektionen und bewertet Inhalte anhand einer Agent Control Specification Policy.

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

ContentProvenanceClientstartet und überwacht langlaufende Erkennungsoperationen für von Microsoft ausgegebene C2PA- und Wasserzeichensignale.

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;

Der serialisierte Poller-Zustand kann in einem anderen Prozess wiederhergestellt werden:

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 erstellt, aktualisiert, listet und löscht Textblocklisten und deren Elemente.

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;

Verwenden byPage({ maxPageSize }) Sie, um eine maximale Seitengröße beim Auflisten von Blocklisten-Einträgen anzufordern:

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;

Problembehandlung

Protokollierung

Das Aktivieren der Protokollierung kann hilfreiche Informationen zu Fehlern aufdecken. Um ein Protokoll von HTTP-Anforderungen und -Antworten anzuzeigen, legen Sie die AZURE_LOG_LEVEL Umgebungsvariable auf infofest. Alternativ kann die Protokollierung zur Laufzeit durch Aufrufen von setLogLevel im @azure/loggeraktiviert werden:

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

setLogLevel("info");

Ausführlichere Anweisungen zum Aktivieren von Protokollen finden Sie in den @azure/Logger-Paketdokumenten.

Contributing

Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie bitte den mitwirkenden Leitfaden, um mehr über das Erstellen und Testen des Codes zu erfahren.