すべてのプロダクト
Search
ドキュメントセンター

Content Moderation:テキスト審査拡張版汎用サービス SDK と統合ガイド

最終更新日:Nov 09, 2025

このトピックでは、テキスト審査 2.0 SDK を統合する方法について説明します。

ステップ 1: サービスを有効化する

サービスの有効化ページでテキスト審査 2.0 サービスを有効化します。

テキスト 2.0 サービスを有効化すると、デフォルトの課金方法は従量課金になります。実際の使用量に基づいて毎日課金されます。サービスを使用しない場合は課金されません。システムは API 操作の使用状況に基づいて請求書を自動的に生成します。

ステップ 2: RAM ユーザーに権限を付与する

SDK を統合したり API 操作を呼び出したりする前に、RAM ユーザーに権限を付与する必要があります。Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ペアを作成できます。Alibaba Cloud API 操作を呼び出すときは、AccessKey ペアを使用して ID 検証を完了する必要があります。AccessKey ペアの取得方法の詳細については、「AccessKey ペアの取得」をご参照ください。

手順

  1. RAM 管理者として RAM コンソールにログオンします。

  2. RAM ユーザーを作成します。

    詳細については、「RAM ユーザーの作成」をご参照ください。

  3. RAM ユーザーに AliyunYundunGreenWebFullAccess システムポリシーを付与します。

    詳細については、「RAM ユーザーへの権限付与」をご参照ください。

    上記の手順を完了すると、RAM ユーザーとして Content Moderation API を呼び出すことができます。

ステップ 3: SDK のインストールと統合

次のリージョンがサポートされています。

リージョン

パブリックエンドポイント

VPC エンドポイント

シンガポール

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

N/A

英国 (ロンドン)

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

N/A

説明

他の言語の SDK サンプルコードが必要な場合は、OpenAPI Explorer オンラインツールを使用して API 操作をデバッグし、対応する SDK サンプルコードを自動的に生成できます。

Alibaba Cloud SDK コードでは、ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数を定義することで、デフォルトのアクセス資格情報を作成できます。Alibaba Cloud サービスの API 操作を呼び出すと、システムは資格情報に直接アクセスし、AccessKey ペアを読み取り、自動的に認証を完了します。SDK サンプルコードを使用する前に、環境変数を構成する必要があります。詳細については、「資格情報の設定」をご参照ください。

テキスト審査拡張版汎用サービス

この SDK は、テキスト審査拡張版 2.0 多言語サービスに対応しています。

Java SDK

Java 1.8 以降がサポートされています。

ソースコードについては、「Java SDK ソースコード」または「Java SDK ソースコード (OSS パス)」をご参照ください。

Maven プロジェクトで SDK を使用するには、pom.xml ファイルに次の依存関係を追加します。

  1. dependencies セクションに次の依存関係を追加します。

    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>green20220302</artifactId>
      <version>2.2.11</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();
            // ソースコードが漏洩すると、AccessKey ペアが漏洩し、すべてのリソースのセキュリティが脅かされる可能性があります。次のサンプルコードは参照用です。権限付与には Security Token Service (STS) トークンを使用してください。詳細については、関連ドキュメントをご参照ください。
            // ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
            config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
            config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
            // 必要に応じてリージョンとエンドポイントを変更します。
            config.setRegionId("ap-southeast-1");
            config.setEndpoint("green-cip.ap-southeast-1.aliyuncs.com");
            // 読み取りおよび接続タイムアウト期間をミリ秒単位で設定します。
            config.setReadTimeout(6000);
            config.setConnectTimeout(3000);
    
            // パフォーマンスを向上させるには、クライアントインスタンスを再利用して、複数の接続が作成されないようにします。
            Client client = new Client(config);
    
            // RuntimeObject インスタンスを作成し、実行時パラメーターを設定します。
            RuntimeOptions runtime = new RuntimeOptions();
            runtime.readTimeout = 10000;
            runtime.connectTimeout = 10000;
    
            // サービスパラメーターを構築します。
            JSONObject serviceParameters = new JSONObject();
            serviceParameters.put("content", "検出対象のテキスト");
    
            if (serviceParameters.get("content") == null || serviceParameters.getString("content").trim().length() == 0) {
                System.out.println("text moderation content is empty");
                return;
            }
    
            TextModerationRequest textModerationRequest = new TextModerationRequest();
            // 必要に応じてサービスを設定します。
            textModerationRequest.setService("テキスト審査サービス");
            textModerationRequest.setServiceParameters(serviceParameters.toJSONString());
            try {
                // 検出結果を取得します。
                TextModerationResponse response = client.textModerationWithOptions(textModerationRequest, runtime);
    
                // 検出結果を出力します。
                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.2.11

  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': '検出対象のテキスト',
                '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(
                # 必要に応じてサービスを設定します。
                service = 'テキスト審査サービス',
                service_parameters = json.dumps(service_parameters)
            )
            # ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
            config = Config(
                # ソースコードが漏洩すると、AccessKey ペアが漏洩し、すべてのリソースのセキュリティが脅かされる可能性があります。次のサンプルコードは参照用です。権限付与には STS トークンを使用してください。詳細については、関連ドキュメントをご参照ください。
                access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
                access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
                # 読み取りおよび接続タイムアウト期間をミリ秒単位で設定します。
                connect_timeout=3000,
                read_timeout=6000,
                # 必要に応じてリージョンとエンドポイントを変更します。
                region_id='ap-southeast-1',
                endpoint='green-cip.ap-southeast-1.aliyuncs.com'
            )
            # パフォーマンスを向上させるには、クライアントインスタンスを再利用して、複数の接続が作成されないようにします。
            client = Client(config)
    
            # RuntimeObject インスタンスを作成し、実行時パラメーターを設定します。
            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:
                    # 検出結果を出力します。
                    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

この SDK は PHP 5.6 以降をサポートしています。

ソースコードについては、「PHP SDK ソースコード」をご参照ください。

  1. 次のコマンドを実行して、依存関係をインポートします。

    composer require alibabacloud/green-20220302 2.2.10

  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();
    // 必要に応じてサービスを設定します。
    $request->service = "テキスト審査サービス";
    $arr = array('content' => '検出対象のテキスト');
    $request->serviceParameters = json_encode($arr);
    if (empty($arr) || empty(trim($arr["content"]))) {
      echo "text moderation content is empty";
      return;
    }
    $config = new Config([
                         // ソースコードが漏洩すると、AccessKey ペアが漏洩し、すべてのリソースのセキュリティが脅かされる可能性があります。次のサンプルコードは参照用です。権限付与には STS トークンを使用してください。詳細については、関連ドキュメントをご参照ください。
                         // ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
                         "accessKeyId" => getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
                         "accessKeySecret" => getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
                         // 必要に応じてリージョンとエンドポイントを変更します。
                         "endpoint" => "green-cip.ap-southeast-1.aliyuncs.com",
                         "regionId" => "ap-southeast-1"
    
                         ]);
    // パフォーマンスを向上させるには、クライアントインスタンスを再利用して、複数の接続が作成されないようにします。
    $client = new Green($config);
    
    // RuntimeObject インスタンスを作成し、実行時パラメーターを設定します。
    $runtime = new RuntimeOptions([]);
    $runtime->readTimeout = 10000;
    $runtime->connectTimeout = 10000;
    
    try {
      // 検出結果を取得します。
      $response = $client->textModerationWithOptions($request, $runtime);
      // 検出結果を出力します。
      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 git clone --branch v2.2.11 github.com/alibabacloud-go/green-20220302/v2

  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: 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("テキスト審査サービス"),
    		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.2.10

  2. Node.js SDK を統合します。

    サンプルコード

    const RPCClient = require("@alicloud/pop-core");
    
    async function main() {
        // パフォーマンスを向上させるには、クライアントインスタンスを再利用して、複数の接続が作成されないようにします。
        var client = new RPCClient({
            // ソースコードが漏洩すると、AccessKey ペアが漏洩し、すべてのリソースのセキュリティが脅かされる可能性があります。次のサンプルコードは参照用です。権限付与には STS トークンを使用してください。詳細については、関連ドキュメントをご参照ください。
            // ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
            accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
            // 必要に応じてリージョンとエンドポイントを変更します。
            endpoint: "https://green-cip.ap-southeast-1.aliyuncs.com",
            apiVersion: '2022-03-02'
        });
        // RuntimeObject インスタンスを作成し、実行時パラメーターを設定します。
        var params = {
            // 必要に応じてサービスを設定します。
            "Service": "テキスト審査サービス",
            "ServiceParameters": JSON.stringify({
                "content": "検出対象のテキスト",
            })
        }
    
     		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 {
            // 検出結果を取得します。
            var response = await client.request('TextModeration', params, requestOption)
            // 検出結果を出力します。
            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.2.10

  2. C# SDK を統合できます。

    サンプルコード

    // このファイルは自動生成されたものです。編集しないでください。ありがとうございます。
    
    using Newtonsoft.Json;
    
    namespace AlibabaCloud.SDK.Green20220302
    {
        public class TextModerationAutoRoute
        {
            public static void Main(string[] args)
            {
                // テキスト審査リクエストを構築します。
                AlibabaCloud.SDK.Green20220302.Models.TextModerationRequest textModerationRequest = new AlibabaCloud.SDK.Green20220302.Models.TextModerationRequest();
                // 必要に応じてサービスを設定します。
                textModerationRequest.Service = "テキスト審査サービス";
                Dictionary<string, object> task = new Dictionary<string, object>();
                task.Add("content", "検出対象のテキスト");
                if (!task.ContainsKey("content") || Convert.ToString(task["content"]).Trim() == string.Empty)
                {
                    Console.WriteLine("text moderation content is empty");
                    return;
                }
                textModerationRequest.ServiceParameters = JsonConvert.SerializeObject(task);
    
    
                // ソースコードが漏洩すると、AccessKey ペアが漏洩し、すべてのリソースのセキュリティが脅かされる可能性があります。次のサンプルコードは参照用です。権限付与には STS トークンを使用してください。詳細については、関連ドキュメントをご参照ください。
                // ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
                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"),
                    // 必要に応じてリージョンとエンドポイントを変更します。
                    Endpoint = "green-cip.ap-southeast-1.aliyuncs.com",
                };
                // パフォーマンスを向上させるには、クライアントインスタンスを再利用して、複数の接続が作成されないようにします。
                AlibabaCloud.SDK.Green20220302.Client client = new AlibabaCloud.SDK.Green20220302.Client(config);
    
                // RuntimeObject インスタンスを作成し、実行時パラメーターを設定します。
                AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
                runtime.ReadTimeout = 10000;
                runtime.ConnectTimeout = 10000;
                try
                {
                    // 検出結果を取得します。
                    AlibabaCloud.SDK.Green20220302.Models.TextModerationResponse response =
                    client.TextModerationWithOptions(textModerationRequest, runtime);
    
                    // 検出結果を出力します。
                    Console.WriteLine(response.Body.RequestId);
                    Console.WriteLine(JsonConvert.SerializeObject(response.Body));
                }
                catch (Exception _err)
                {
                    Console.WriteLine(_err);
                }
            }
        }
    }