Azure Yapay Zeka İçerik Güvenliği client library for JavaScript - version 1.0.0-beta.1

Bu paket, zararlı içeriği analiz etmek, Ajan Kontrol Spesifikasyonu politikalarını değerlendirmek, içerik kaynağını tespit etmek ve metin engelleme listelerini yönetmek için izomorfik bir SDK (hem Node.js hem de tarayıcılarda çalışan) içerir.

Önemli bağlantılar:

Bu paket henüz npm'e yayımlanmadı. npm paket sayfası ve barındırılan API referansı, ilk sürümden sonra erişilebilir olacaktır.

Başlangıç Yapmak

Şu anda desteklenen ortamlar

Daha fazla bilgi için bkz. destek ilkesi.

Prerequisites

@azure/ai-content-safety paketini yükleme

İlk beta sürümünden sonra, JavaScript için Azure Yapay Zeka İçerik Güvenliği istemci kütüphanesini şu şekilde npmkurun:

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

Müşteriler oluşturun ve kimlik doğrulamanız

Bir istemci oluşturmak için Azure Yapay Zeka İçerik Güvenliği kaynağınıza ve bir kimlik belgenize ihtiyacınız endpoint olacaktır. Uç noktayı Azure portal'da bulabilirsiniz.

@azure/identity kütüphanesinden veya mevcut bir Microsoft Entra token'ından bir kimlik bilgisi kullanarak Microsoft Entra ID ile kimlik doğrulaması yapabilirsiniz.

Aşağıda gösterilen DefaultAzureCredential sağlayıcısını veya Azure SDK ile sağlanan diğer kimlik bilgisi sağlayıcılarını kullanmak için lütfen @azure/identity paketini yükleyin:

npm install @azure/identity

Ayrıca yeni bir Microsoft Entra uygulaması kaydetmeniz ve hizmet başlınıza uygun bir rol atayarak Azure Yapay Zeka İçerik Güvenliği'ye erişim vermeniz gerekecektir (not: Like "Owner" roller gerekli izinleri vermeyecektir).

Microsoft Entra uygulamasının nasıl oluşturulacağı hakkında daha fazla bilgi için bu rehbere göz atın.

Node.js ve Node benzeri ortamları kullanarak istemcinin kimliğini doğrulamak için DefaultAzureCredential sınıfını kullanabilirsiniz.

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

Tarayıcı ortamlarında kimlik doğrulaması yapmak için InteractiveBrowserCredential paketindeki @azure/identity kullanın.

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 Paketi

Bu istemci kitaplığını tarayıcıda kullanmak için önce bir paketleyici kullanmanız gerekir. Bunun nasıl yapılacağının ayrıntıları için lütfen paketleme belgelerimize bakın.

Kilit kavramlar

ContentSafetyClient

ContentSafetyClient metin ve görselleri analiz eder, korunan materyali tespit eder ve anında enjeksiyon yapar ve içeriği Ajan Kontrol Spesifikasyonu politikasına göre değerlendirir.

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

ContentProvenanceClientMicrosoft tarafından yayımlanan C2PA ve watermark sinyalleri için uzun süredir devam eden tespit işlemlerini başlatır ve izler.

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;

Serileştirilmiş poller durumu başka bir süreçte geri getirilebilir:

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 metin blok listelerini ve öğelerini oluşturur, günceller, listeler ve siler.

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;

Blok listesi öğeleri listelerken maksimum sayfa büyüklüğü talep etmek için kullanılır byPage({ maxPageSize }) :

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;

Sorun giderme

Logging

Loglamayı etkinleştirmek, hatalarla ilgili yararlı bilgilerin ortaya çıkmasına yardımcı olabilir. HTTP isteklerinin ve yanıtlarının günlüğünü görmek için ortam değişkenini AZURE_LOG_LEVEL olarak infoayarlayın. Alternatif olarak, çalışma zamanında setLogLevel@azure/logger çağrılarak günlük tutma etkinleştirilebilir.

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

setLogLevel("info");

Günlükleri etkinleştirme hakkında daha ayrıntılı yönergeler için @azure/günlükçü paketi belgelerine bakabilirsiniz.

Katkıda Bulunmak

Bu kitaplığa katkıda bulunmak istiyorsanız kodu oluşturma ve test etme hakkında daha fazla bilgi edinmek için lütfen katkıda bulunma kılavuzu okuyun.

  • JavaScript için Microsoft Azure SDK