Bezpieczeństwo zawartości platformy Azure AI biblioteka klienta dla JavaScript - wersja 1.0.0-beta.1

Ten pakiet zawiera izomorficzne SDK (działające zarówno w Node.js, jak i przeglądarkach) do analizy szkodliwych treści, oceny polityk Agent Control Specification, wykrywania pochodzenia treści oraz zarządzania listami bloków tekstowych.

Kluczowe linki:

Ten pakiet nie został jeszcze opublikowany do npm. Strona pakietu npm oraz odniesienie do hostowanego API będą dostępne po pierwszej wersji.

Rozpoczęcie pracy

Obecnie obsługiwane środowiska

  • Wersje LTS systemu Node.js
  • Najnowsze wersje przeglądarek Safari, Chrome, Edge i Firefox.

Aby uzyskać więcej informacji, zobacz nasze zasad pomocy technicznej.

Wymagania wstępne

Instalowanie pakietu @azure/ai-content-safety

Po pierwszej wersji beta zainstaluj bibliotekę klienta Bezpieczeństwo zawartości platformy Azure AI dla JavaScript za pomocą npm:

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

Tworzenie i uwierzytelnianie klientów

Aby stworzyć klienta, będziesz potrzebować endpoint swojego zasobu Bezpieczeństwo zawartości platformy Azure AI oraz posiadania danych uwierzytelniających. Punkt końcowy znajdziesz w Azure Portal.

Możesz uwierzytelnić się za pomocą Microsoft Entra ID, używając poświadczenia z biblioteki @azure/identity lub istniejącego tokena Microsoft Entra.

Aby użyć dostawcy DefaultAzureCredential pokazanego poniżej lub innych dostawców poświadczeń dostarczonych z zestawem Azure SDK, zainstaluj pakiet @azure/identity:

npm install @azure/identity

Będziesz także musiał zarejestrować nową aplikację Microsoft Entra i przyznać dostęp do Bezpieczeństwo zawartości platformy Azure AI, przypisując odpowiednią rolę swojemu podmiotowi usługowym (uwaga: role takie jak nie "Owner" przyznają niezbędnych uprawnień).

Aby dowiedzieć się więcej o tym, jak stworzyć aplikację Microsoft Entra, sprawdź ten przewodnik.

Korzystając ze środowisk Node.js i środowisk podobnych do węzłów, możesz użyć klasy DefaultAzureCredential do uwierzytelniania klienta.

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

W przypadku środowisk przeglądarki użyj InteractiveBrowserCredential z pakietu @azure/identity do uwierzytelniania.

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

Pakiet JavaScript

Aby użyć tej biblioteki klienta w przeglądarce, najpierw należy użyć pakietu. Aby uzyskać szczegółowe informacje o tym, jak to zrobić, zapoznaj się z naszą dokumentacją dotyczącą tworzenia pakietów .

Podstawowe pojęcia

ContentSafetyClient

ContentSafetyClient analizuje tekst i obrazy, wykrywa chronione materiały i szybkie wstrzykiwanie oraz ocenia treść zgodnie z polityką Specyfikacji Kontroli Agentów.

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

ContentProvenanceClienturuchamia i monitoruje długotrwałe operacje wykrywania sygnałów C2PA i znaków wodnych wydawanych przez 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;

Seryalizowany stan pylenia można przywrócić w innym procesie:

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 tworzy, aktualizuje, wykazuje i usuwa tekstowe listy bloków oraz ich elementy.

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;

Użyj byPage({ maxPageSize }) do żądania maksymalnego rozmiaru strony podczas wymieniania elementów z listy bloków:

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

Włączenie rejestrowania może pomóc odkryć przydatne informacje o błędach. Aby wyświetlić dziennik żądań i odpowiedzi HTTP, ustaw zmienną środowiskową AZURE_LOG_LEVEL na info. Alternatywnie rejestrowanie można włączyć w czasie wykonywania, wywołując setLogLevel w @azure/logger:

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

setLogLevel("info");

Aby uzyskać bardziej szczegółowe instrukcje dotyczące włączania dzienników, zapoznaj się z dokumentacją pakietu @azure/logger.

Contributing

Jeśli chcesz współtworzyć tę bibliotekę, przeczytaj przewodnik dotyczący współtworzenia , aby dowiedzieć się więcej na temat tworzenia i testowania kodu.