Todos os produtos
Search
Central de documentação

AI Guardrails:Text moderation 2.0 SDK and integration guide

Última atualização: Jun 27, 2026

Este guia orienta você na ativação do serviço Text Moderation 2.0, na configuração das permissões de acesso e na integração de um SDK para chamar a operação da API TextModeration.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Uma conta Alibaba Cloud

  • Um usuário RAM com a política de sistema AliyunYundunGreenWebFullAccess (consulte a Etapa 2 abaixo)

  • AccessKey ID e AccessKey secret armazenados como variáveis de ambiente (consulte Configurar variáveis de ambiente)

Etapa 1: Ativar o serviço

Ative o serviço Text Moderation 2.0 na página Activate Service.

Após a ativação, o faturamento padrão é pagamento conforme o uso. A cobrança ocorre diariamente com base no uso real. O serviço gera faturas automaticamente conforme sua utilização da API. Se você não utilizar o serviço, nenhuma cobrança será aplicada.

Etapa 2: Conceder permissões a um usuário RAM

Para chamar a API do Content Moderation, o usuário RAM precisa ter as permissões necessárias.

  1. Faça login no RAM console como administrador do RAM.

  2. Crie um usuário RAM. Para mais detalhes, consulte Create a RAM user.

  3. Conceda a política de sistema AliyunYundunGreenWebFullAccess ao usuário RAM. Para mais detalhes, consulte Grant permissions to a RAM user.

Configurar variáveis de ambiente

Armazene seu par de AccessKey como variáveis de ambiente para evitar codificar credenciais diretamente em sua aplicação.

Linux / macOS

export ALIBABA_CLOUD_ACCESS_KEY_ID="<your-access-key-id>"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="<your-access-key-secret>"

Windows (Prompt de Comando)

set ALIBABA_CLOUD_ACCESS_KEY_ID=<your-access-key-id>
set ALIBABA_CLOUD_ACCESS_KEY_SECRET=<your-access-key-secret>

Substitua <your-access-key-id> e <your-access-key-secret> pelo AccessKey ID e AccessKey secret do seu usuário RAM.

Importante

Nunca codifique seu par de AccessKey diretamente no código-fonte ou o envie para um repositório de código. Utilize variáveis de ambiente ou tokens do Security Token Service (STS) para transmitir credenciais. Para mais informações, consulte Configure credentials.

Etapa 3: Instalar e integrar o SDK

Regiões suportadas

Região

Endpoint público

Endpoint VPC

Singapura

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

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

EUA (Virgínia)

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

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

EUA (Vale do Silício)

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

N/A

Reino Unido (Londres)

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

N/A

Para exemplos de SDK em outras linguagens, utilize o OpenAPI Explorer para depurar operações da API e gerar código SDK automaticamente.

Todos os exemplos abaixo utilizam variáveis de ambiente para autenticação e chamam TextModerationWithOptions (ou seu equivalente na linguagem) para enviar uma solicitação de moderação síncrona. A resposta contém um campo labels (a categoria de conteúdo detectada) e um campo reason (a explicação).

Java SDK

Requisitos: Java 1.8 ou superior

Código-fonte: GitHub ou Maven Central

1. Adicione a dependência ao seu pom.xml.

Inclua o seguinte na seção <dependencies>:

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

2. Chame a API.

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();
        // Exposing your source code can leak your AccessKey pair, compromising the security of all your resources. The following sample code is for reference only. For improved security, we recommend using a more secure method, such as a Security Token Service (STS) token, for authorization. For more information, see the relevant documentation.
        // Ensure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set.
        config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
        config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        // Modify the region and endpoint based on your requirements.
        config.setRegionId("ap-southeast-1");
        config.setEndpoint("green-cip.ap-southeast-1.aliyuncs.com");
        // Set the read and connection timeout in milliseconds.
        config.setReadTimeout(6000);
        config.setConnectTimeout(3000);

        // For better performance, we strongly recommend that you reuse the client instance to avoid establishing redundant connections.
        Client client = new Client(config);

        // Create a RuntimeOptions 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();
        // Set the service based on your requirements.
        textModerationRequest.setService("text_moderation_service");
        textModerationRequest.setServiceParameters(serviceParameters.toJSONString());
        try {
            // Call the method to get the detection result.
            TextModerationResponse response = client.textModerationWithOptions(textModerationRequest, runtime);

            // Print the 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 failed. code:" + code);
                }
                } else {
                    System.out.println("request failed. status:" + response.getStatusCode());
                }
                }
                } catch (Exception e) {
                    e.printStackTrace();
                }
        }
}

Saída esperada (quando a solicitação é bem-sucedida e nenhuma violação é detectada):

{"code":200,"data":{"labels":"","reason":""},"requestId":"...","message":"OK"}
labels = []
reason = []

Python SDK

Requisitos: Python 3.6 ou superior

Código-fonte: PyPI

1. Instale o pacote.

pip install alibabacloud_green20220302==3.2.4

2. Chame a API.

# coding=utf-8
import os
import json
import uuid

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

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(
            # Set the service as needed.
            service='text moderation service',
            service_parameters=json.dumps(service_parameters)
        )

        # Read credentials from environment variables.
        config = Config(
            access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
            # Set the connection and read timeout periods (in milliseconds).
            connect_timeout=3000,
            read_timeout=6000,
            # Modify the region and endpoint as needed.
            region_id='ap-southeast-1',
            endpoint='green-cip.ap-southeast-1.aliyuncs.com'
        )

        # Reuse the client instance to avoid creating multiple connections.
        client = Client(config)

        # Set runtime-level timeout periods (in milliseconds).
        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:
                    result_data = result.data
                    print('labels:{}, reason:{}'.format(result_data.labels, result_data.reason))
            else:
                print('response not success. status:{} ,result:{}'.format(response.status_code, response))
        except Exception as err:
            print(err)

if __name__ == '__main__':
    TextAutoRoute.main()

Saída esperada (quando a solicitação é bem-sucedida e nenhuma violação é detectada):

response success. result:...
labels:, reason:

PHP SDK

Requisitos: PHP 5.6 ou superior

Código-fonte: Packagist

1. Instale o pacote.

composer require alibabacloud/green-20220302 3.2.4

2. Chame a API.

<?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();
// Set the service based on your requirements.
$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([
                     // Exposing your source code can leak your AccessKey pair, compromising the security of all your resources. The following sample code is for reference only. For improved security, we recommend using a more secure method, such as an STS token, for authorization. For more information, see the relevant documentation.
                     // Ensure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set.
                     "accessKeyId" => getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
                     "accessKeySecret" => getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
                     // Modify the region and endpoint based on your requirements.
                     "endpoint" => "green-cip.ap-southeast-1.aliyuncs.com",
                     "regionId" => "ap-southeast-1"

                     ]);
// For better performance, we strongly recommend that you reuse the client instance to avoid establishing redundant connections.
$client = new Green($config);

// Create a RuntimeOptions instance and set runtime parameters.
$runtime = new RuntimeOptions([]);
$runtime->readTimeout = 10000;
$runtime->connectTimeout = 10000;

try {
  // Call the method to get the detection result.
  $response = $client->textModerationWithOptions($request, $runtime);
  // Print the 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());
}

Saída esperada (quando a solicitação é bem-sucedida e nenhuma violação é detectada):

AlibabaCloud\SDK\Green\V20220302\Models\TextModerationResponseBody Object
(
    [code] => 200
    [data] => AlibabaCloud\SDK\Green\V20220302\Models\TextModerationResponseBodyData Object
        (
            [labels] =>
            [reason] =>
        )
    [message] => OK
    [requestId] => ...
)

Go SDK

1. Clone o SDK.

go get github.com/alibabacloud-go/green-20220302/v3@v3.2.4

2. Chame a API.

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"
    "os"
)

func main() {
    config := &openapi.Config{
        // Read credentials from environment variables.
        AccessKeyId:     tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
        AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
        // Modify the endpoint as needed.
        Endpoint: tea.String("green-cip.ap-southeast-1.aliyuncs.com"),
        /**
         * The server-side end-to-end processing timeout is 10 seconds.
         * If ReadTimeout is less than the server processing time, the client receives a ReadTimeout error.
         */
        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": "text to be moderated",
        },
    )
    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))
    }
}

Saída esperada (quando a solicitação é bem-sucedida e nenhuma violação é detectada):

response success. response:...
response reason:
response labels:

Node.js SDK

1. Instale o pacote.

npm install @alicloud/green20220302@3.2.4

2. Chame a API.

const RPCClient = require("@alicloud/pop-core");

async function main() {
    // Reuse the client instance to avoid creating multiple connections.
    var client = new RPCClient({
        // Read credentials from environment variables.
        accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
        accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
        // Modify the endpoint as needed.
        endpoint: "https://green-cip.ap-southeast-1.aliyuncs.com",
        apiVersion: '2022-03-02'
    });

    var params = {
        // Set the service as needed.
        "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 {
        var response = await client.request('TextModeration', params, requestOption);
        console.log(JSON.stringify(response));
    } catch (err) {
        console.log(err);
    }
}

main().then(function (response) { });

Saída esperada (quando a solicitação é bem-sucedida e nenhuma violação é detectada):

{"Code":200,"Data":{"Labels":"","Reason":""},"Message":"OK","RequestId":"..."}

C# SDK

1. Adicione o pacote.

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

2. Chame a API.

using System;
using System.Collections.Generic;
using Newtonsoft.Json;

namespace AlibabaCloud.SDK.Green20220302
{
    public class TextModerationAutoRoute
    {
        public static void Main(string[] args)
        {
            // Build the moderation request.
            AlibabaCloud.SDK.Green20220302.Models.TextModerationRequest textModerationRequest =
                new AlibabaCloud.SDK.Green20220302.Models.TextModerationRequest();
            // Set the service as needed.
            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);

            // Read credentials from environment variables.
            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 the endpoint as needed.
                Endpoint = "green-cip.ap-southeast-1.aliyuncs.com",
            };

            // Reuse the client instance to avoid creating multiple connections.
            AlibabaCloud.SDK.Green20220302.Client client = new AlibabaCloud.SDK.Green20220302.Client(config);

            // Set runtime-level timeout periods (in milliseconds).
            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);
            }
        }
    }
}

Saída esperada (quando a solicitação é bem-sucedida e nenhuma violação é detectada):

<request-id>
{"Code":200,"Data":{"Labels":"","Reason":""},"Message":"OK","RequestId":"<request-id>"}

Próximos passos