Perpustakaan klien Keamanan Konten Azure AI untuk JavaScript - versi 1.0.0-beta.1

Paket ini berisi SDK isomorfik (berjalan baik di Node.js maupun browser) untuk menganalisis konten berbahaya, mengevaluasi kebijakan Spesifikasi Kontrol Agen, mendeteksi asal-usul konten, dan mengelola daftar blokir teks.

Tautan kunci:

Paket ini belum dipublikasikan ke npm. Halaman paket npm dan referensi API hosted akan tersedia setelah rilis pertama.

Memulai Langkah Pertama

Lingkungan yang didukung saat ini

Lihat kebijakan dukungan kami untuk detail selengkapnya.

Prasyarat

  • Sebuah langganan Azure.

Pasang paket @azure/ai-content-safety

Setelah rilis beta pertama, instal pustaka klien Keamanan Konten Azure AI untuk JavaScript dengan npm:

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

Buat dan autentikasi klien

Untuk membuat klien, Anda memerlukan endpoint sumber daya Keamanan Konten Azure AI dan kredensial. Anda dapat menemukan endpoint di portal Azure.

Anda dapat mengautentikasi dengan Microsoft Entra ID menggunakan kredensial dari pustaka @azure/identity atau token Microsoft Entra yang ada.

Untuk menggunakan penyedia DefaultAzureCredential yang ditunjukkan di bawah ini, atau penyedia kredensial lain yang disediakan dengan Azure SDK, instal paket :

npm install @azure/identity

Anda juga perlu mendaftarkan aplikasi Microsoft Entra baru dan memberikan akses ke Keamanan Konten Azure AI dengan menetapkan peran yang sesuai kepada prinsipal layanan Anda (catatan: peran seperti tidak "Owner" akan memberikan izin yang diperlukan).

Untuk informasi lebih lanjut tentang cara membuat aplikasi Microsoft Entra, lihat panduan ini.

Dengan menggunakan lingkungan Node.js dan seperti Node, Anda dapat menggunakan kelas DefaultAzureCredential untuk mengautentikasi klien.

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

Untuk lingkungan browser, gunakan InteractiveBrowserCredential dari paket @azure/identity untuk mengautentikasi.

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

Bundel JavaScript

Untuk menggunakan pustaka klien ini di browser, pertama-tama Anda perlu menggunakan bunder. Untuk detail tentang cara melakukan ini, silakan lihat dokumentasi bundling kami.

Konsep Utama

ContentSafetyClient

ContentSafetyClient menganalisis teks dan gambar, mendeteksi materi yang dilindungi dan injeksi prompt, serta mengevaluasi konten berdasarkan kebijakan Spesifikasi Kontrol Agen.

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

ContentProvenanceClientmemulai dan memantau operasi deteksi yang telah berjalan lama untuk sinyal C2PA dan watermark yang dikeluarkan 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;

Status poller berseri dapat dipulihkan dalam proses lain:

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 membuat, memperbarui, mendaftarkan, dan menghapus daftar blokir teks beserta itemnya.

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;

Gunakan byPage({ maxPageSize }) untuk meminta ukuran halaman maksimum saat mencantumkan item daftar blokir:

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;

Penyelesaian Masalah

Logging

Mengaktifkan pengelogan dapat membantu menemukan informasi yang berguna tentang kegagalan. Untuk melihat log permintaan dan respons HTTP, atur variabel lingkungan AZURE_LOG_LEVEL ke info. Atau, pengelogan dapat diaktifkan saat runtime dengan memanggil setLogLevel di @azure/logger:

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

setLogLevel("info");

Untuk instruksi lebih rinci tentang cara mengaktifkan log, Anda dapat melihat dokumen paket @azure/logger.

Contributing

Jika Anda ingin berkontribusi pada pustaka ini, baca panduan berkontribusi untuk mempelajari selengkapnya tentang cara membuat dan menguji kode.