全部產品
Search
文件中心

Content Moderation:文本審核增強版泛型服務SDK及接入指南

更新時間:Oct 29, 2025

本文介紹文本審核2.0版SDK接入的方式。

步驟一:開通服務

訪問開通服務頁面,開通文本審核2.0版服務。

開通文本2.0版服務後,預設付費方式是按量後付費,且按照實際用量結算當日費用,不調用服務不收費。介面接入使用後系統會按使用量自動出賬。

步驟二:為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

美國(維吉尼亞)

green-cip.us-east-1.aliyuncs.com

green-cip-vpc.us-east-1.aliyuncs.com

美國(矽谷)

green-cip.us-west-1.aliyuncs.com

暫無

倫敦

green-cip.eu-west-1.aliyuncs.com

暫無

說明

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

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

文本審核增強版泛型服務

該SDK對應介面為文本審核增強版2.0版多語言服務

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.23.0</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.TextModerationRequest;
    import com.aliyun.green20220302.models.TextModerationResponse;
    import com.aliyun.green20220302.models.TextModerationResponseBody;
    import com.aliyun.teaopenapi.models.Config;
    import com.aliyun.teautil.models.RuntimeOptions;
    
    public class TextAutoRoute {
        public static void main(String[] args) throws Exception {
            Config config = new Config();
            // The leakage of code may lead to the leakage of AccessKey and security breakage of your account. The following examples are for reference only. It is recommended to use STS tokens for authorization, please refer to related documentation.
            // Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set.
            config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
            config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
            // Modify region and endpoint according to your requirement.
            config.setRegionId("ap-southeast-1");
            config.setEndpoint("green-cip.ap-southeast-1.aliyuncs.com");
            // Setup read and connection timeout by ms.
            config.setReadTimeout(6000);
            config.setConnectTimeout(3000);
    
            // To improve performance, we strongly recommend you reuse client instance to avoid establishing duplicate connections.
            Client client = new Client(config);
    
            // Create RuntimeObject instance and set runtime parameters.
            RuntimeOptions runtime = new RuntimeOptions();
            runtime.readTimeout = 10000;
            runtime.connectTimeout = 10000;
    
            // Construct service parameters.
            JSONObject serviceParameters = new JSONObject();
            serviceParameters.put("content", "text to be detected");
    
            if (serviceParameters.get("content") == null || serviceParameters.getString("content").trim().length() == 0) {
                System.out.println("text moderation content is empty");
                return;
            }
    
            TextModerationRequest textModerationRequest = new TextModerationRequest();
            // Setup service according to your requirement.
            textModerationRequest.setService("text moderation service");
            textModerationRequest.setServiceParameters(serviceParameters.toJSONString());
            try {
                // Method to obtain detection result.
                TextModerationResponse response = client.textModerationWithOptions(textModerationRequest, runtime);
    
                // Print detection result.
                if (response != null) {
                    if (response.getStatusCode() == 200) {
                        TextModerationResponseBody result = response.getBody();
                        System.out.println(JSON.toJSONString(result));
                        Integer code = result.getCode();
                        if (code != null && code == 200) {
                        TextModerationResponseBody.TextModerationResponseBodyData data = result.getData();
                        System.out.println("labels = [" + data.getLabels() + "]");
                        System.out.println("reason = [" + data.getReason() + "]");
                    } 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源碼

支援Python 3.6及以上版本。

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

    pip install alibabacloud_green20220302==2.22.1

  2. 接入Python SDK。

    程式碼範例

    # coding=utf-8
    
    from alibabacloud_green20220302.client import Client
    from alibabacloud_green20220302 import models
    from alibabacloud_tea_openapi.models import Config
    from alibabacloud_tea_util.client import Client as UtilClient
    from alibabacloud_tea_util import models as util_models
    import json
    import uuid
    
    
    class TextAutoRoute:
    
        @staticmethod
        def main() -> None:
            service_parameters = {
                'content': 'text to be detected',
                'dataId': str(uuid.uuid1())
            }
            if service_parameters.get("content") is None or len(service_parameters.get("content").strip()) == 0:
                print("text moderation content is empty")
                return
            text_moderation_request = models.TextModerationRequest(
                # Setup service according to your requirement.
                service = 'text moderation service',
                service_parameters = json.dumps(service_parameters)
            )
            # Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set.
            config = Config(
                # The leakage of code may lead to the leakage of AccessKey and security breakage of your account. The following examples are for reference only. It is recommended to use STS tokens for authorization, please refer to related documentation.
                access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
                access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
                # Setup read and connection timeout by ms.
                connect_timeout=3000,
                read_timeout=6000,
                # Modify region and endpoint according to your requirement.
                region_id='ap-southeast-1',
                endpoint='green-cip.ap-southeast-1.aliyuncs.com'
            )
            # To improve performance, we strongly recommend you reuse client instance to avoid establishing duplicate connections.
            client = Client(config)
    
            # Create RuntimeObject instance and set runtime parameters.
            runtime = util_models.RuntimeOptions()
            runtime.read_timeout = 10000
            runtime.connect_timeout = 10000
            try:
                response = client.text_moderation_with_options(text_moderation_request, runtime)
    
                if response.status_code == 200:
                    # Print detection result.
                    result = response.body
                    print('response success. result:{}'.format(result))
                    if result.code == 200:
                        resultData = result.data
                        print('labels:{}, reason:{}'.format(resultData.labels, resultData.reason))
                else:
                    print('response not success. status:{} ,result:{}'.format(response.status_code, response))
            except Exception as err:
                print(err)
    
    
    if __name__ == '__main__':
        TextAutoRoute.main()

PHP SDK

支援PHP 5.6及以上版本。

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

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

    composer require alibabacloud/green-20220302 2.22.1

  2. 接入PHP SDK。

    程式碼範例

    <?php
    
      require('vendor/autoload.php');
    
    use AlibabaCloud\Tea\Utils\Utils;
    use Darabonba\OpenApi\Models\Config;
    use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
    use AlibabaCloud\SDK\Green\V20220302\Green;
    use AlibabaCloud\SDK\Green\V20220302\Models\TextModerationRequest;
    
    
    $request = new TextModerationRequest();
    // Setup service according to your requirement.
    $request->service = "text moderation service";
    $arr = array('content' => 'text to be detected');
    $request->serviceParameters = json_encode($arr);
    if (empty($arr) || empty(trim($arr["content"]))) {
      echo "text moderation content is empty";
      return;
    }
    $config = new Config([
                         // The leakage of code may lead to the leakage of AccessKey and security breakage of your account. The following examples are for reference only. It is recommended to use STS tokens for authorization, please refer to related documentation.
                         // Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set.
                         "accessKeyId" => getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
                         "accessKeySecret" => getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
                         // Modify region and endpoint according to your requirement.
                         "endpoint" => "green-cip.ap-southeast-1.aliyuncs.com",
                         "regionId" => "ap-southeast-1"
    
                         ]);
    // To improve performance, we strongly recommend you reuse client instance to avoid establishing duplicate connections.
    $client = new Green($config);
    
    // Create RuntimeObject instance and set runtime parameters.
    $runtime = new RuntimeOptions([]);
    $runtime->readTimeout = 10000;
    $runtime->connectTimeout = 10000;
    
    try {
      // Method to obtain detection result.
      $response = $client->textModerationWithOptions($request, $runtime);
      // Print detection result.
      print_r($response->body);
    } catch (Exception $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/v2@v2.22.1

  2. 接入Go SDK。

    程式碼範例

    package main
    
    import (
    	"encoding/json"
    	"fmt"
    	openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
    	green "github.com/alibabacloud-go/green-20220302/v2/client"
    	"github.com/alibabacloud-go/tea/tea"
    	"net/http"
    )
    
    func main() {
    	config := &openapi.Config{
    		// 您的AccessKey ID
    		AccessKeyId: tea.String("建議從環境變數中擷取RAM使用者AccessKey ID"),
    		// 您的AccessKey Secret
    		AccessKeySecret: tea.String("建議從環境變數中擷取RAM使用者AccessKey Secret"),
    		// 訪問的 Endpoint
    		Endpoint: tea.String("green-cip.ap-southeast-1.aliyuncs.com"),
    		/**
    		 * 請設定逾時時間。服務端全鏈路處理逾時時間為10秒,請做相應設定。
    		 * 如果您設定的ReadTimeout小於服務端處理的時間,程式中會獲得一個ReadTimeout異常。
    		 */
    		ConnectTimeout: tea.Int(3000),
    		ReadTimeout:    tea.Int(6000),
    	}
    	client, _err := green.NewClient(config)
    	if _err != nil {
    		panic(_err)
    	}
    
    	serviceParameters, _ := json.Marshal(
    		map[string]interface{}{
    			"content": "待檢測文本",
    		},
    	)
    	request := green.TextModerationRequest{
    		Service:           tea.String("text moderation service"),
    		ServiceParameters: tea.String(string(serviceParameters)),
    	}
    	result, _err := client.TextModeration(&request)
    	if _err != nil {
    		panic(_err)
    	}
    	statusCode := tea.IntValue(tea.ToInt(result.StatusCode))
    	if statusCode == http.StatusOK {
    		textModerationResponse := result.Body
    		fmt.Println("response success. response:" + textModerationResponse.String())
    		if tea.IntValue(tea.ToInt(textModerationResponse.Code)) == 200 {
    			textModerationResponseData := textModerationResponse.Data
    			fmt.Println("response reason:" + tea.StringValue(textModerationResponseData.Reason))
    			fmt.Println("response labels:" + tea.StringValue(textModerationResponseData.Labels))
    		}
    	} else {
    		fmt.Println("response not success. status:" + tea.ToString(statusCode))
    	}
    }

Node.js SDK

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

    npm install @alicloud/green20220302@2.22.1

  2. 接入Node.js SDK。

    程式碼範例

    const RPCClient = require("@alicloud/pop-core");
    
    async function main() {
        // To improve performance, we strongly recommend you reuse client instance to avoid establishing duplicate connections.
        var client = new RPCClient({
            // The leakage of code may lead to the leakage of AccessKey and security breakage of your account. The following examples are for reference only. It is recommended to use STS tokens for authorization, please refer to related documentation.
            // Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set.
            accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
            // Modify region and endpoint according to your requirement.
            endpoint: "https://green-cip.ap-southeast-1.aliyuncs.com",
            apiVersion: '2022-03-02'
        });
        // Create RuntimeObject instance and set runtime parameters.
        var params = {
            // Setup service according to your requirement.
            "Service": "text moderation service",
            "ServiceParameters": JSON.stringify({
                "content": "text to be detected",
            })
        }
    
     		var serviceParameters = JSON.parse(params.ServiceParameters);
        if (!serviceParameters.hasOwnProperty("content") || serviceParameters.content.trim().length === 0) {
            console.log("text moderation content is empty")
            return;
        }
    
        var requestOption = {
            method: 'POST',
            formatParams: false,
        };
    
        try {
            // Method to obtain detection result.
            var response = await client.request('TextModeration', params, requestOption)
            // Print detection result.
            console.log(JSON.stringify(response))
        } catch (err) {
            console.log(err);
       }
    }
    
    main().then(function (response) { });

C# SDK

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

    dotnet add package AlibabaCloud.SDK.Green20220302 --version 2.22.1

  2. 接入C# SDK。

    程式碼範例

    // This file is auto-generated, don't edit it. Thanks.
    
    using Newtonsoft.Json;
    
    namespace AlibabaCloud.SDK.Green20220302
    {
        public class TextModerationAutoRoute
        {
            public static void Main(string[] args)
            {
                // Construct text moderation request.
                AlibabaCloud.SDK.Green20220302.Models.TextModerationRequest textModerationRequest = new AlibabaCloud.SDK.Green20220302.Models.TextModerationRequest();
                // Setup service according to your requirement.
                textModerationRequest.Service = "text moderation service";
                Dictionary<string, object> task = new Dictionary<string, object>();
                task.Add("content", "text to be detected");
                if (!task.ContainsKey("content") || Convert.ToString(task["content"]).Trim() == string.Empty)
                {
                    Console.WriteLine("text moderation content is empty");
                    return;
                }
                textModerationRequest.ServiceParameters = JsonConvert.SerializeObject(task);
    
    
                // The leakage of code may lead to the leakage of AccessKey and security breakage of your account. The following examples are for reference only. It is recommended to use STS tokens for authorization, please refer to related documentation.
                // Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set.
                AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
                {
                    AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
                    AccessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
                    // Modify region and endpoint according to your requirement.
                    Endpoint = "green-cip.ap-southeast-1.aliyuncs.com",
                };
                // To improve performance, we strongly recommend you reuse client instance to avoid establishing duplicate connections.
                AlibabaCloud.SDK.Green20220302.Client client = new AlibabaCloud.SDK.Green20220302.Client(config);
    
                // Create RuntimeObject instance and set runtime parameters.
                AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
                runtime.ReadTimeout = 10000;
                runtime.ConnectTimeout = 10000;
                try
                {
                    // Method to obtain detection result.
                    AlibabaCloud.SDK.Green20220302.Models.TextModerationResponse response =
                    client.TextModerationWithOptions(textModerationRequest, runtime);
    
                    // Print detection result.
                    Console.WriteLine(response.Body.RequestId);
                    Console.WriteLine(JsonConvert.SerializeObject(response.Body));
                }
                catch (Exception _err)
                {
                    Console.WriteLine(_err);
                }
            }
        }
    }