本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

自訂圖庫

更新時間:2024-07-06 00:13

本文介紹了如何使用PHP SDK管理自訂圖庫。

功能描述

您可以自訂智能鑒黃、暴恐涉政識別、圖片或視頻廣告的圖片樣本,滿足個人化內容管控需求。關於參數的詳細資料,請參見建立圖庫API文檔

您需要使用Alibaba Content Security Service的API接入地址,調用本SDK介面。關於API接入地址的資訊,請參見接入地址(Endpoint)

前提條件

已安裝PHP依賴。關於安裝PHP依賴的具體操作,請參見安裝PHP依賴

說明

請一定按照安裝PHP依賴頁面中的版本安裝,否則會導致調用失敗。

查詢自訂圖庫列表

您可以使用以下代碼查詢使用者圖庫列表(包括使用者自訂的圖庫列表和系統迴流圖庫):

<?php

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;

try {
    /**
     * 注意:此處執行個體化的client儘可能重複使用,提升檢測效能。避免重複建立串連。
     * 常見擷取環境變數方式:
     * 擷取RAM使用者AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * 擷取RAM使用者AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    AlibabaCloud::accessKeyClient('建議從環境變數中擷取RAM使用者AccessKey ID', '建議從環境變數中擷取RAM使用者AccessKey Secret')
        ->timeout(10) // 逾時10秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
        ->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
        ->regionId('cn-shanghai')
        ->asDefaultClient();

    $result = Green::v20170823()->describeImageLib()
        ->timeout(10) // 逾時10秒,request逾時設定,僅對當前請求有效。
        ->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,request逾時設定,僅對當前請求有效。
        ->withServiceModule('open_api')
        ->request();
    print_r($result->toArray());
} catch (ClientException $exception) {
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}

建立自訂圖庫

您可以使用以下代碼建立自訂圖庫:

說明

請根據您所需要的業務情境設定不同的參數。

<?php

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;

try {
    /**
     * 注意:此處執行個體化的client儘可能重複使用,提升檢測效能。避免重複建立串連。
     * 常見擷取環境變數方式:
     * 擷取RAM使用者AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * 擷取RAM使用者AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    AlibabaCloud::accessKeyClient('建議從環境變數中擷取RAM使用者AccessKey ID', '建議從環境變數中擷取RAM使用者AccessKey Secret')
        ->timeout(10) // 逾時10秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
        ->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
        ->regionId('cn-shanghai')
        ->asDefaultClient();

    $result = Green::v20170823()->createImageLib()
        ->timeout(10) // 逾時10秒,request逾時設定,僅對當前請求有效。
        ->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,request逾時設定,僅對當前請求有效。
        ->withServiceModule('open_api')
        ->withName('圖庫名稱')
        ->withScene('圖庫的使用情境')
        ->withCategory('圖庫類型')
        ->request();
    print_r($result->toArray());
} catch (ClientException $exception) {
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}

修改自訂圖庫

您可以使用以下代碼修改自訂圖庫的名稱及其適用的業務情境(BizType):

<?php

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;

try {
    /**
     * 注意:此處執行個體化的client儘可能重複使用,提升檢測效能。避免重複建立串連。
     * 常見擷取環境變數方式:
     * 擷取RAM使用者AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * 擷取RAM使用者AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    AlibabaCloud::accessKeyClient('建議從環境變數中擷取RAM使用者AccessKey ID', '建議從環境變數中擷取RAM使用者AccessKey Secret')
        ->timeout(10) // 逾時10秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
        ->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
        ->regionId('cn-shanghai')
        ->asDefaultClient();

    $result = Green::v20170823()->updateImageLib()
        ->timeout(10) // 逾時10秒,request逾時設定,僅對當前請求有效。
        ->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,request逾時設定,僅對當前請求有效。
        ->withId('圖片ID')
        ->withName('圖庫名稱')
        ->withScene('圖庫的使用情境')
        ->withCategory('圖庫類型')
        ->withBizTypes(array('業務情境1', '業務情境2'))
        ->request();
    print_r($result->toArray());
} catch (ClientException $exception) {
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}

刪除自訂圖庫

您可以使用以下代碼刪除自訂圖庫:

重要

刪除自訂圖庫時,圖庫下的所有圖片也將被刪除。

<?php

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;

try {
    /**
     * 注意:此處執行個體化的client儘可能重複使用,提升檢測效能。避免重複建立串連。
     * 常見擷取環境變數方式:
     * 擷取RAM使用者AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * 擷取RAM使用者AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    AlibabaCloud::accessKeyClient('建議從環境變數中擷取RAM使用者AccessKey ID', '建議從環境變數中擷取RAM使用者AccessKey Secret')
        ->timeout(10) // 逾時10秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
        ->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
        ->regionId('cn-shanghai')
        ->asDefaultClient();

    $result = Green::v20170823()->deleteImageLib()
        ->timeout(10) // 逾時10秒,request逾時設定,僅對當前請求有效。
        ->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,request逾時設定,僅對當前請求有效。
        ->withId('圖庫ID')
        ->request();
    print_r($result->toArray());
} catch (ClientException $exception) {
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}

查詢自訂圖庫圖片列表

您可以使用以下代碼查詢自訂圖庫中所有已添加的圖片列表:

<?php

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;

try {
    /**
     * 注意:此處執行個體化的client儘可能重複使用,提升檢測效能。避免重複建立串連。
     * 常見擷取環境變數方式:
     * 擷取RAM使用者AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * 擷取RAM使用者AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    AlibabaCloud::accessKeyClient('建議從環境變數中擷取RAM使用者AccessKey ID', '建議從環境變數中擷取RAM使用者AccessKey Secret')
        ->timeout(10) // 逾時10秒,使用該用戶端且沒有單獨設定的請求都使用此設定
        ->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,使用該用戶端且沒有單獨設定的請求都使用此設定
        ->regionId('cn-shanghai')
        ->asDefaultClient();

    $result = Green::v20170823()->describeImageFromLib()
        ->timeout(10) // 逾時10秒,request逾時設定,僅對當前請求有效。
        ->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,request逾時設定,僅對當前請求有效。
        ->withImageLibId('圖庫Id')
        ->withPageSize('10')
        ->withCurrentPage('1')
        ->request();
    print_r($result->toArray());
} catch (ClientException $exception) {
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}

刪除自訂圖片

您可以使用以下代碼刪除自訂圖庫中的多張自訂圖片:

<?php

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;

try {
    /**
     * 注意:此處執行個體化的client儘可能重複使用,提升檢測效能。避免重複建立串連。
     * 常見擷取環境變數方式:
     * 擷取RAM使用者AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * 擷取RAM使用者AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    AlibabaCloud::accessKeyClient('建議從環境變數中擷取RAM使用者AccessKey ID', '建議從環境變數中擷取RAM使用者AccessKey Secret')
        ->timeout(10) // 逾時10秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
        ->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
        ->regionId('cn-shanghai')
        ->asDefaultClient();

    // 多張圖片請使用英文逗號隔開。
    $result = Green::v20170823()->deleteImageFromLib()
        ->timeout(10) // 逾時10秒,request逾時設定,僅對當前請求有效。
        ->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,request逾時設定,僅對當前請求有效。
        ->withIds("['圖片ID_1','圖片ID_2']")
        ->request();
    print_r($result->toArray());
} catch (ClientException $exception) {
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}
  • 本頁導讀 (0, M)
  • 功能描述
  • 前提條件
  • 查詢自訂圖庫列表
  • 建立自訂圖庫
  • 修改自訂圖庫
  • 刪除自訂圖庫
  • 查詢自訂圖庫圖片列表
  • 刪除自訂圖片
文檔反饋