Bezpečnost obsahu Azure AI klientská knihovna pro JavaScript - verze 1.0.0-beta.1

Tento balíček obsahuje izomorfní SDK (běží jak v Node.js, tak v prohlížečích) pro analýzu škodlivého obsahu, vyhodnocování politik Agent Control Specification, detekci původu obsahu a správu textových blokových seznamů.

Klíčové odkazy:

Tento balíček dosud nebyl zveřejněn na NPM. Stránka balíčku npm a odkaz hostovaného API budou dostupné po prvním vydání.

Začínáme

Aktuálně podporovaná prostředí

Další podrobnosti najdete v zásadách podpory.

Předpoklady

  • Předplatné služby Azure.

Nainstalujte balíček @azure/ai-content-safety.

Po první beta verzi nainstalujte klientskou knihovnu Bezpečnost obsahu Azure AI pro JavaScript s npm:

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

Vytvářejte a autentizujte klienty

Pro vytvoření klienta budete potřebovat endpoint svůj zdroj Bezpečnost obsahu Azure AI a přihlašovací údaje. Endpoint najdete v Azure Portal.

Můžete se autentizovat pomocí Microsoft Entra ID pomocí přihlašovacích údajů z knihovny @azure/identity nebo existujícího Microsoft Entra tokenu.

Pokud chcete použít poskytovatele DefaultAzureCredential zobrazené níže nebo jiné zprostředkovatele přihlašovacích údajů poskytnuté sadou Azure SDK, nainstalujte balíček @azure/identity:

npm install @azure/identity

Budete také muset zaregistrovat novou aplikaci Microsoft Entra a udělit přístup k Bezpečnost obsahu Azure AI přiřazením vhodné role vašemu zástupci služby (poznámka: role jako například neudělí "Owner" potřebná oprávnění).

Pro více informací o tom, jak vytvořit aplikaci Microsoft Entra, si přečtěte tento průvodce.

Pomocí Node.js a prostředí podobných uzlům můžete k ověření klienta použít třídu DefaultAzureCredential.

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

Pro prostředí prohlížeče použijte k ověření InteractiveBrowserCredential z balíčku @azure/identity.

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

JavaScriptový balíček

Pokud chcete tuto klientskou knihovnu použít v prohlížeči, musíte nejprve použít bundler. Podrobnosti o tom, jak to udělat, najdete v naší dokumentaci sdružování.

Klíčové koncepty

ContentSafetyClient

ContentSafetyClient analyzuje text a obrázky, detekuje chráněný materiál a promptní vstřikování a hodnotí obsah podle politiky Agent Control Specification.

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

ContentProvenanceClientspouští a monitoruje dlouhodobé detekční operace pro C2PA a vodoznakové signály vydané Microsoft.

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;

Serializovaný stav polleru lze obnovit jiným procesem:

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 Vytváří, aktualizuje, seznamuje a maže textové blokové seznamy a jejich položky.

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;

Použijte byPage({ maxPageSize }) pro požadavek na maximální velikost stránky při vypisování položek blokového seznamu:

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;

Řešení problémů

Logging

Povolení protokolování může pomoct odhalit užitečné informace o chybách. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou prostředí AZURE_LOG_LEVEL na info. Případně můžete protokolování povolit za běhu voláním setLogLevel v @azure/logger:

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

setLogLevel("info");

Podrobnější pokyny k povolení protokolů najdete v dokumentaci k @azure/protokolovacímu balíčku.

Contributing

Pokud chcete přispívat do této knihovny, přečtěte si průvodce přispívání a přečtěte si další informace o vytváření a testování kódu.