Manual image review

更新时间:
复制 MD 格式

This topic describes how to use the PHP software development kit (SDK) to manually review images.

Feature description

If an image detection result does not meet your expectations, you can perform a manual review. For more information about the parameters, see Manual image review.

For more information about API endpoints, see Endpoints.

Note
  • This SDK supports only image URLs. It does not support local files or binary data.

  • The following types of URLs are supported:

    • Public HTTP and HTTPS URLs. The URLs cannot exceed 2,048 characters in length.

    • Alibaba Cloud Object Storage Service (OSS) URLs in the format of oss://<bucket-name>.<endpoint>/<object-name>. You must grant AI Guardrails the required permissions to access the destination OSS bucket. The bucket and the AI Guardrails service must be in the same region. For more information, see Authorize AI Guardrails to access OSS buckets.

Prerequisites

The PHP dependencies have been installed. For more information, see Install PHP dependencies.

Note

You must use the required PHP version described in the Installation topic to install the dependencies. Otherwise, subsequent operation calls fail.

Submit a manual image review task

Sample code

<?php

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

try {
    /**
     * Note: To improve detection performance, reuse the instantiated client. This avoids repeated connection establishment.
     * Common methods to obtain environment variables:
     * Obtain the AccessKey ID of a Resource Access Management (RAM) user: getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * Obtain the AccessKey secret of a RAM user: getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    AlibabaCloud::accessKeyClient('Obtain the AccessKey ID of the RAM user from an environment variable', 'Obtain the AccessKey secret of the RAM user from an environment variable')
        ->timeout(10) // The timeout period is 10 seconds. This setting applies to all requests that use this client and do not have a timeout period specified.
        ->connectTimeout(3) // The connection timeout period is 3 seconds. If the unit is less than 1, it is automatically converted to milliseconds. This setting applies to all requests that use this client and do not have a connection timeout period specified.
        ->regionId('cn-shanghai')
        ->asDefaultClient();

    $task1 = array('dataId' => 'Business data ID', 'url' => 'URL of the image to be reviewed');

    $result = Green::v20180509()->imageAsyncManualScan()
        ->timeout(10) // The timeout period is 10 seconds. This request timeout setting is valid only for the current request.
        ->connectTimeout(3) // The connection timeout period is 3 seconds. If the unit is less than 1, it is automatically converted to milliseconds. This request timeout setting is valid only for the current request.
        ->body(json_encode(array('tasks' => array($task1),
            'callback' => 'Webhook address',
            'seed' => 'Random string')))
        ->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;
}

Query the result of a manual image review task

Sample code

<?php

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

try {
    /**
     * Note: To improve detection performance, reuse the instantiated client. This avoids repeated connection establishment.
     * Common methods to obtain environment variables:
     * Obtain the AccessKey ID of a Resource Access Management (RAM) user: getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * Obtain the AccessKey secret of a RAM user: getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    AlibabaCloud::accessKeyClient('Obtain the AccessKey ID of the RAM user from an environment variable', 'Obtain the AccessKey secret of the RAM user from an environment variable')
        ->timeout(10) // The timeout period is 10 seconds. This setting applies to all requests that use this client and do not have a timeout period specified.
        ->connectTimeout(3) // The connection timeout period is 3 seconds. If the unit is less than 1, it is automatically converted to milliseconds. This setting applies to all requests that use this client and do not have a connection timeout period specified.
        ->regionId('cn-shanghai')
        ->asDefaultClient();

    $result = Green::v20180509()->imageAsyncManualScanResults()
        ->timeout(10) // The timeout period is 10 seconds. This request timeout setting is valid only for the current request.
        ->connectTimeout(3) // The connection timeout period is 3 seconds. If the unit is less than 1, it is automatically converted to milliseconds. This request timeout setting is valid only for the current request.
        ->body(json_encode(array('ID of the asynchronous manual image review task')))
        ->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;
}