全部產品
Search
文件中心

AI Guardrails:SDK參考

更新時間:Oct 23, 2025

本文介紹AI安全護欄SDK接入的方式。

步驟一:開通服務

前往AI安全護欄產品開通服務頁面,開通AI安全護欄產品服務。預設付費方式是按量後付費,且按照實際用量結算當日費用,不調用服務不收費。介面接入使用後系統會按使用量自動出賬。

步驟二:為RAM使用者授權

在接入SDK或者API之前,您需要為RAM使用者授權。您可以為阿里雲帳號和RAM使用者建立一個存取金鑰(AccessKey)。在調用阿里雲API時您需要使用AccessKey完成身分識別驗證。擷取方式,請參見擷取AccessKey

操作步驟

  1. 使用Resource Access Management員登入RAM控制台

  2. 建立RAM使用者。

    具體操作,請參見建立RAM使用者

  3. 向RAM使用者授權系統策略許可權:AliyunYundunGreenWebFullAccess

    具體操作,請參見為RAM使用者授權

    完成以上配置後,您可以使用RAM使用者調用Alibaba Content Security ServiceAPI。

步驟三:安裝並接入SDK

目前支援的接入地區如下:

地區

外網接入地址

內網接入地址

新加坡

green-cip.ap-southeast-1.aliyuncs.com

green-cip-vpc.ap-southeast-1.aliyuncs.com

說明

如果需要其他語言的SDK範例程式碼,您可以通過OpenAPI開發人員門戶OpenAPI開發人員門戶線上調試工具調試API介面,該工具會自動產生相應API的SDK調用範例程式碼。

阿里雲SDK代碼通過定義ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET環境變數來建立預設的訪問憑證。調用介面時,程式直接存取憑證,讀取您的存取金鑰(即AccessKey)並自動完成鑒權。您在接入SDK程式碼範例之前,請先配置環境變數。具體操作,請參見身分識別驗證配置

範例程式碼

Java SDK

支援Java 1.8及以上版本。

原始代碼,請參見Java SDK源碼或者Java SDK源碼(OSS路徑)

在pom.xml中加入相應依賴,就可以在Maven工程中使用SDK。

1、在dependencies中添加如下依賴。

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>green20220302</artifactId>
  <version>2.20.3</version>
</dependency>

2、接入Java SDK 程式碼範例。

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.green20220302.Client;
import com.aliyun.green20220302.models.TextModerationPlusRequest;
import com.aliyun.green20220302.models.TextModerationPlusResponse;
import com.aliyun.green20220302.models.TextModerationPlusResponseBody;
import com.aliyun.teaopenapi.models.Config;


public class TextModerationPlusDemo {

    public static void main(String[] args) throws Exception {
        Config config = new Config();
        /**
         * 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
         * 常見擷取環境變數方式:
         * 方式一:
         *     擷取RAM使用者AccessKey ID:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
         *     擷取RAM使用者AccessKey Secret:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
         * 方式二:
         *     擷取RAM使用者AccessKey ID:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
         *     擷取RAM使用者AccessKey Secret:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
         */
        config.setAccessKeyId("建議從環境變數中擷取RAM使用者AccessKey ID");
        config.setAccessKeySecret("建議從環境變數中擷取RAM使用者AccessKey Secret");
        //接入地區和地址請根據實際情況修改
        config.setRegionId("ap-southeast-1");
        config.setEndpoint("green-cip.ap-southeast-1.aliyuncs.com");
        //讀取時逾時時間,單位毫秒(ms)。
        config.setReadTimeout(6000);
        //串連時逾時時間,單位毫秒(ms)。
        config.setConnectTimeout(3000);
        //設定http代理。
        //config.setHttpProxy("http://xx.xx.xx.xx:xxxx");
        //設定https代理。
        //config.setHttpsProxy("https://xx.xx.xx.xx:xxxx");
        Client client = new Client(config);

        JSONObject serviceParameters = new JSONObject();
        serviceParameters.put("content", "測試常值內容");

        TextModerationPlusRequest textModerationPlusRequest = new TextModerationPlusRequest();
        // 檢測類型
        textModerationPlusRequest.setService("query_security_check_intl");
        textModerationPlusRequest.setServiceParameters(serviceParameters.toJSONString());

        try {
            TextModerationPlusResponse response = client.textModerationPlus(textModerationPlusRequest);
            if (response.getStatusCode() == 200) {
                TextModerationPlusResponseBody result = response.getBody();
                System.out.println(JSON.toJSONString(result));
                System.out.println("requestId = " + result.getRequestId());
                System.out.println("code = " + result.getCode());
                System.out.println("msg = " + result.getMessage());
                Integer code = result.getCode();
                if (200 == code) {
                    TextModerationPlusResponseBody.TextModerationPlusResponseBodyData data = result.getData();
                    System.out.println(JSON.toJSONString(data, true));
                } else {
                    System.out.println("text moderation not success. code:" + code);
                }
            } else {
                System.out.println("response not success. status:" + response.getStatusCode());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Python SDK

支援Python 3.6及以上版本。

原始代碼,請參見Python SDK源碼

1、執行如下命令引入相關依賴。

pip install alibabacloud_green20220302==2.20.3

2、接入Python SDK 程式碼範例。

# coding=utf-8
# python version >= 3.6
from alibabacloud_green20220302.client import Client
from alibabacloud_green20220302 import models
from alibabacloud_tea_openapi.models import Config
import json

config = Config(
    # 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
    # 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
    # 常見擷取環境變數方式:
    # 擷取RAM使用者AccessKey ID:os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
    # 擷取RAM使用者AccessKey Secret:os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
    access_key_id='建議從環境變數中擷取RAM使用者AccessKey ID',
    access_key_secret='建議從環境變數中擷取RAM使用者AccessKey Secret',
    # 連線逾時時間 單位毫秒(ms)
    connect_timeout=10000,
    # 讀逾時時間 單位毫秒(ms)
    read_timeout=3000,
    region_id='ap-southeast-1',
    endpoint='green-cip.ap-southeast-1.aliyuncs.com'
)

clt = Client(config)

serviceParameters = {
    'content': '測試常值內容'
}
textModerationPlusRequest = models.TextModerationPlusRequest(
    # 檢測類型
    service='query_security_check_intl',
    service_parameters=json.dumps(serviceParameters)
)

try:
    response = clt.text_moderation_plus(textModerationPlusRequest)
    if response.status_code == 200:
        # 調用成功
        result = response.body
        print('response success. result:{}'.format(result))
    else:
        print('response not success. status:{} ,result:{}'.format(response.status_code, response))
except Exception as err:
    print(err)

PHP SDK

支援PHP 5.6及以上版本。

原始代碼,請參見PHP SDK源碼

1、執行如下命令引入相關依賴。

composer require alibabacloud/green-20220302

2、接入PHP SDK 程式碼範例。

<?php
require('vendor/autoload.php');

use AlibabaCloud\SDK\Green\V20220302\Models\TextModerationPlusRequest;
use AlibabaCloud\Tea\Exception\TeaUnableRetryError;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
use AlibabaCloud\SDK\Green\V20220302\Green;

$config = new Config([
    /**
     * 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
     * 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
     * 常見擷取環境變數方式:
     * 擷取RAM使用者AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * 擷取RAM使用者AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    "accessKeyId" => '建議從環境變數中擷取RAM使用者AccessKey ID',
    "accessKeySecret" => '建議從環境變數中擷取RAM使用者AccessKey Secret',
    // 設定HTTP代理。
    // "httpProxy" => "http://10.10.xx.xx:xxxx",
    // 設定HTTPS代理。
    // "httpsProxy" => "https://10.10.xx.xx:xxxx",
    "endpoint" => "green-cip.ap-southeast-1.aliyuncs.com",
    "regionId" => "ap-southeast-1"

]);
// 注意,此處執行個體化的client請儘可能重複使用,避免重複建立串連,提升檢測效能。
$client = new Green($config);

$request = new TextModerationPlusRequest();
$request->service = "query_security_check_intl";
$serviceParameters = array("content" => "測試內容");

$request->serviceParameters = json_encode($serviceParameters);

$runtime = new RuntimeOptions();
$runtime->readTimeout = 6000;
$runtime->connectTimeout = 3000;

try {
    $response = $client->textModerationPlusWithOptions($request, $runtime);
    print_r($response->body);
    if (200 != $response->statusCode) {
        print_r("response not success. code:" . $response->statusCode);
        return;
    }
    $body = $response->body;
    print_r("requestId = " . $body->requestId . "\n");
    print_r("code = " . $body->code . "\n");
    print_r("message = " . $body->message . "\n");
    if (200 != $body->code) {
        print_r("text moderation not success. code:" . $body->code);
    }
    $data = $body->data;
    print_r("data = " . json_encode($data));
} catch (TeaUnableRetryError $e) {
    var_dump($e->getMessage());
    var_dump($e->getErrorInfo());
    var_dump($e->getLastException());
    var_dump($e->getLastRequest());
}

Go SDK

1、執行如下命令引入相關依賴。

go get github.com/alibabacloud-go/green-20220302

2、接入Go SDK 程式碼範例。

package main

import (
	"encoding/json"
	"fmt"
	openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
	green20220302 "github.com/alibabacloud-go/green-20220302/v2/client"
	util "github.com/alibabacloud-go/tea-utils/v2/service"
	"github.com/alibabacloud-go/tea/tea"
	"net/http"
)

func main() {
	// 工程代碼泄露可能會導致AccessKey泄露,並威脅帳號下所有資源的安全性。以下程式碼範例僅供參考,建議使用更安全的STS方式。
	config := &openapi.Config{
		/**
		 * 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
		 * 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
		 * 常見擷取環境變數方式:
		 * 擷取RAM使用者AccessKey ID:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
		 * 擷取RAM使用者AccessKey Secret:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
		 */
		AccessKeyId: tea.String("建議從環境變數中擷取RAM使用者AccessKey ID"),
		AccessKeySecret: tea.String("建議從環境變數中擷取RAM使用者AccessKey Secret"),
		// 設定HTTP代理。
		// HttpProxy: tea.String("http://xx.xx.xx.xx:xxxx"),
		// 設定HTTPS代理。
		// HttpsProxy: tea.String("https://username:password@xxx.xxx.xxx.xxx:9999"),
		RegionId: tea.String("ap-southeast-1"),
		Endpoint: tea.String("green-cip.ap-southeast-1.aliyuncs.com"),
		/**
		 * 請設定逾時時間。服務端全鏈路處理逾時時間為10秒,請做相應設定。
		 * 如果您設定的ReadTimeout小於服務端處理的時間,程式中會獲得一個ReadTimeout異常。
		 */
		ConnectTimeout: tea.Int(3000),
		ReadTimeout: tea.Int(6000),
	}
	client, _err := green20220302.NewClient(config)
	if _err != nil {
		panic(_err)
	}

	// 建立RuntimeObject執行個體並設定運行參數。
	runtime := &util.RuntimeOptions{}
	runtime.ReadTimeout = tea.Int(10000)
	runtime.ConnectTimeout = tea.Int(10000)

	serviceParameters, _ := json.Marshal(
		map[string]interface{}{
			"content": "測試內容",
		},
	)
	request := green20220302.TextModerationPlusRequest{
		Service: tea.String("query_security_check_intl"),
		ServiceParameters: tea.String(string(serviceParameters)),
	}

	result, _err := client.TextModerationPlusWithOptions(&request, runtime)
	if _err != nil {
		panic(_err)
	}

	if *result.StatusCode != http.StatusOK {
		fmt.Printf("response not success. status:%d\n", *result.StatusCode)
		return
	}
	body := result.Body
	fmt.Printf("response success. requestId:%s, code:%d, msg:%s\n", *body.RequestId, *body.Code, *body.Message)
	if *body.Code != http.StatusOK {
		fmt.Printf("text moderation not success. code:%d\n", *body.Code)
		return
	}

	data := body.Data
	fmt.Printf("text moderation data:%s\n", *data)
}