此套件包含一個同構的 SDK(可在 Node.js 與瀏覽器中運行),用於分析有害內容、評估代理控制規範政策、偵測內容來源及管理文字封鎖清單。
主要連結:
此套件尚未發布至 npm。 npm 套件頁面及託管 API 參考將在首次發佈後開放。
入門指南
目前支援的環境
- Node.js的 LTS 版本
- 最新版的 Safari、Chrome、Edge 和 Firefox。
如需詳細資訊,請參閱我們的支援原則。
Prerequisites
安裝 @azure/ai-content-safety 套件
在第一個測試版釋出後,請安裝 Azure AI 內容安全 的 JavaScript 用戶端函式庫,使用:npm
npm install @azure/ai-content-safety@next
建立並驗證客戶端
要建立客戶端,你需要endpoint你的 Azure AI 內容安全 資源和憑證。 你可以在 Azure 入口網站 找到端點。
你可以用 @azure/identity 函式庫的憑證或現有的 Microsoft Entra 令牌來驗證 Microsoft Entra ID。
若要使用如下所示的 DefaultAzureCredential 提供者,或 Azure SDK 所提供的其他認證提供者,請安裝 @azure/identity 套件:
npm install @azure/identity
你還需要註冊一個新的 Microsoft Entra 應用程式,並透過指派適當的角色給你的服務主體來授權 Azure AI 內容安全 的存取權(注意:這些"Owner"角色不會授予必要的權限)。
想了解更多如何建立 Microsoft Entra 應用程式的資訊,請參考這份指南。
使用 Node.js 和類似節點的環境,您可以使用 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);
針對瀏覽器環境,請使用來自 InteractiveBrowserCredential 套件的 @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);
JavaScript 套件組合
若要在瀏覽器中使用此用戶端連結庫,您必須先使用配套程式。 如需如何執行這項操作的詳細資訊,請參閱我們的 組合檔。
重要概念
內容安全客戶端
ContentSafetyClient 分析文字與圖片,偵測受保護內容與提示注入,並根據代理控制規範政策評估內容。
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啟動並監控長期偵測 Microsoft 核發的 C2PA 及浮水印訊號。
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;
序列化的輪詢器狀態可以在其他程序中還原:
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 建立、更新、列出並刪除文字阻擋清單及其項目。
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;
在列出封鎖清單項目時,請使用 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;
故障排除
記錄
啟用記錄可能有助於找出有關失敗的實用資訊。 若要查看 HTTP 要求和回應的記錄,請將 AZURE_LOG_LEVEL 環境變數設定為 info。 或者,您可以在運行時間啟用記錄,方法是在 setLogLevel中呼叫 @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
如需如何啟用記錄的詳細指示,請參閱
Contributing
如果您想要參與此連結庫,請閱讀 參與指南,以深入瞭解如何建置和測試程序代碼。