Este tópico explica como integrar o SDK do serviço Text Moderation Enhanced 2.0 PLUS.
Enhanced
Etapa 1: Ativar o serviço
Acesse a página Activate Service para ativar o serviço Text Moderation 2.0.
Após ativar o serviço Text Moderation 2.0, o método de faturamento padrão é pagamento conforme o uso. A cobrança ocorre diariamente com base na utilização. Se você não utilizar o serviço, nenhuma taxa será gerada. O sistema emite a fatura automaticamente após o início do uso da API.
Etapa 2: Conceder permissões ao usuário RAM
Antes de integrar o SDK ou chamar uma API, conceda as permissões necessárias a um usuário RAM. Crie um AccessKey para sua conta Alibaba Cloud ou para um usuário RAM. Use o AccessKey para verificar sua identidade ao chamar APIs da Alibaba Cloud. Para mais informações, consulte Obter um AccessKey.
Conceder permissões a um usuário RAM
Faça login no RAM console com sua conta Alibaba Cloud.
Crie um usuário RAM. Para detalhes, consulte Criar um usuário RAM.
-
Conceda a política de sistema
AliyunYundunGreenWebFullAccessao usuário RAM. Essa política concede acesso total ao Content Moderation. Para detalhes, consulte Gerenciar permissões de usuário RAM.O usuário RAM agora pode chamar a API do Content Moderation.
Etapa 3: Integrar o SDK
As seguintes regiões são compatíveis:
|
Região |
Endpoint público |
Endpoint VPC |
Serviços |
|
China (Shanghai) |
green-cip.cn-shanghai.aliyuncs.com |
green-cip-vpc.cn-shanghai.aliyuncs.com |
, |
|
China (Beijing) |
green-cip.cn-beijing.aliyuncs.com |
green-cip-vpc.cn-beijing.aliyuncs.com |
|
|
China (Hangzhou) |
green-cip.cn-hangzhou.aliyuncs.com |
green-cip-vpc.cn-hangzhou.aliyuncs.com |
|
|
China (Shenzhen) |
green-cip.cn-shenzhen.aliyuncs.com |
green-cip-vpc.cn-shenzhen.aliyuncs.com |
|
|
China (Chengdu) |
green-cip.cn-chengdu.aliyuncs.com |
Não disponível |
|
|
China (Hong Kong) |
green-cip.cn-hongkong.aliyuncs.com |
green-cip-vpc.cn-hongkong.aliyuncs.com |
|
|
Singapura |
green-cip.ap-southeast-1.aliyuncs.com |
green-cip-vpc.ap-southeast-1.aliyuncs.com |
|
|
Reino Unido (Londres) |
green-cip.eu-west-1.aliyuncs.com |
Não disponível |
|
|
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ão disponível |
|
|
Alemanha (Frankfurt) |
green-cip.eu-central-1.aliyuncs.com |
green-cip-vpc.eu-central-1.aliyuncs.com |
Para obter códigos de exemplo do SDK em diversas linguagens de programação, use a ferramenta de depuração online OpenAPI Explorer. Ela gera automaticamente códigos de exemplo para uma API durante a depuração.
Os SDKs da Alibaba Cloud criam credenciais padrão lendo as variáveis de ambiente ALIBABA_CLOUD_ACCESS_KEY_ID e ALIBABA_CLOUD_ACCESS_KEY_SECRET. Ao chamar uma operação de API, o programa lê seu AccessKey dessas variáveis e conclui a autenticação automaticamente. Antes de usar o código de exemplo do SDK, configure as variáveis de ambiente. Para mais informações, consulte Configurar credenciais de autenticação.
O SDK está disponível em duas versões. Recomendamos a integração do serviço PLUS descrito nesta página. Se você integrou anteriormente o serviço geral, consulte SDK do Serviço Geral Text Moderation Enhanced 2.0 e Guia de Integração.
Text moderation 2.0 PLUS
Este SDK oferece suporte às seguintes operações de API: Serviço multilíngue Text Moderation 2.0 PLUS.
Java SDK
Compatível com Java 1.8 e versões posteriores.
Para acessar o source, consulte Source do Java SDK ou Source do Java SDK (caminho OSS).
Para usar o SDK em seu projeto Maven, adicione a seguinte dependência ao arquivo pom.xml.
-
Adicione a seguinte dependência à seção
dependencies.<dependency> <groupId>com.aliyun</groupId> <artifactId>green20220302</artifactId> <version>3.3.3</version> </dependency> -
Veja abaixo um exemplo de código do 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(); /** * Using an AccessKey pair from your Alibaba Cloud account is a high-risk operation because it grants full permissions to all APIs. * To prevent security risks from AccessKey leaks, do not hard-code the AccessKey ID and AccessKey Secret in your code. * We recommend that you use a RAM user for API access or routine O&M. * Common methods for obtaining environment variables: * Method 1: * Obtain the AccessKey ID of the RAM user: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); * Obtain the AccessKey Secret of the RAM user: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); * Method 2: * Obtain the AccessKey ID of the RAM user: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID"); * Obtain the AccessKey Secret of the RAM user: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); */ config.setAccessKeyId("
Python SDK
Compatível com Python 3.6 e versões posteriores.
Para acessar o source, consulte Source do Python SDK.
-
Execute o comando a seguir para instalar a dependência.
pip install alibabacloud_green20220302==3.2.4 -
Veja abaixo um exemplo de código do 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( # Using an AccessKey pair from your Alibaba Cloud account is a high-risk operation because it grants full permissions to all APIs. # To prevent security risks from AccessKey leaks, do not hard-code the AccessKey ID and AccessKey Secret in your code. # We recommend that you obtain credentials from environment variables. For example: # Obtain the AccessKey ID of the RAM user: os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] # Obtain the AccessKey Secret of the RAM user: os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] access_key_id='
PHP SDK
Compatível com PHP 5.6 e versões posteriores.
Para acessar o source, consulte Source do PHP SDK.
-
Execute o comando a seguir para instalar a dependência.
composer require alibabacloud/green-20220302 3.2.4 -
Exemplo de código para o 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([ /** * Using an AccessKey pair from your Alibaba Cloud account is a high-risk operation because it grants full permissions to all APIs. * To prevent security risks from AccessKey leaks, do not hard-code the AccessKey ID and AccessKey Secret in your code. * We recommend that you obtain credentials from environment variables. For example: * Obtain the AccessKey ID of the RAM user: getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); * Obtain the AccessKey Secret of the RAM user: getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); */ "accessKeyId" => '
Go SDK
-
Execute o comando a seguir para instalar a dependência.
go get github.com/alibabacloud-go/green-20220302/v3 -
Exemplo de código para o Go SDK.
package main import ( "encoding/json" "fmt" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" green20220302 "github.com/alibabacloud-go/green-20220302/v3/client" util "github.com/alibabacloud-go/tea-utils/v2/service" "github.com/alibabacloud-go/tea/tea" "net/http" ) func main() { // Hard-coding an AccessKey pair in your code poses a security risk from potential AccessKey leaks. We recommend that you use a more secure method, such as STS, for authentication. config := &openapi.Config{ /** * Using an AccessKey pair from your Alibaba Cloud account is a high-risk operation because it grants full permissions to all APIs. * To prevent security risks from AccessKey leaks, do not hard-code the AccessKey ID and AccessKey Secret in your code. * We recommend that you obtain credentials from environment variables. For example: * Obtain the AccessKey ID of the RAM user: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") * Obtain the AccessKey Secret of the RAM user: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") */ AccessKeyId: tea.String("
Node.js SDK
Para acessar o source, consulte Source do Node.js SDK.
-
Execute o comando a seguir para instalar a dependência.
npm install @alicloud/green20220302@3.2.4 -
Exemplo de código para o Node.js SDK.
const Green20220302 = require('@alicloud/green20220302'); const OpenApi = require('@alicloud/openapi-client'); const Util = require('@alicloud/tea-util'); // Note: To improve performance and avoid creating a new connection for each request, reuse the client object. // Hard-coding an AccessKey pair in your code poses a security risk from potential AccessKey leaks. class Client { static createClient() { const config = new OpenApi.Config({ // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is configured in your runtime environment. accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'], // Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is configured in your runtime environment. accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], endpoint: `green-cip.ap-southeast-1.aliyuncs.com`, }); return new Green20220302.default(config); } static async main() { const client = Client.createClient(); // Construct the request object. const textModerationPlusRequest = new Green20220302.TextModerationPlusRequest({ // The service for Text Moderation 2.0 PLUS. For more information, see https://www.alibabacloud.com/help/document_detail/2684669.html#p-t7m-66g-cv6. "service": "text_multilingual_pro_global", "serviceParameters": JSON.stringify({ // The text to be moderated. "content": "Test text"}) }); // Create the runtime configuration object. const runtime = new Util.RuntimeOptions(); try { // Send the request and obtain the response. const response = await client.textModerationPlusWithOptions(textModerationPlusRequest, runtime); console.log(JSON.stringify(response.body)); } catch (error) { // This is for demonstration purposes only. In production, handle exceptions with caution and do not ignore them. // error message console.log('Error occurred:', error.message); } } } Client.main();
C# SDK
Para acessar o source, consulte Source do C# SDK.
-
Execute o comando a seguir para instalar a dependência.
dotnet add package AlibabaCloud.SDK.Green20220302 --version 3.2.4 -
Exemplo de código para o C# SDK.
// This file is auto-generated, don't edit it. Thanks. using Newtonsoft.Json; namespace AlibabaCloud.SDK.Green20220302 { public class TextModerationPlusAutoRoute { public static void Main(string[] args) { /** * Using an AccessKey pair from your Alibaba Cloud account is a high-risk operation because it grants full permissions to all APIs. * To prevent security risks from AccessKey leaks, do not hard-code the AccessKey ID and AccessKey Secret in your code. * We recommend that you obtain credentials from environment variables. For example: * Obtain the AccessKey ID of the RAM user: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID") * Obtain the AccessKey Secret of the RAM user: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET") */ String accessKeyId = "
Chamadas HTTPS nativas
O serviço de API do Content Moderation 2.0 também oferece suporte a chamadas HTTPS nativas. Esse método exige que você gerencie a assinatura e a montagem da requisição (incluindo URL, corpo, cabeçalhos e parâmetros). Use chamadas HTTPS nativas apenas nos cenários abaixo. Em todos os outros casos, recomendamos o uso de um SDK.
Sua aplicação possui limites rigorosos de tamanho no cliente.
Sua aplicação tem requisitos de bibliotecas de dependência que entram em conflito com o SDK.
-
Calling conventions
Endpoint do serviço: https://green-cip.{region}.aliyuncs.com
Protocolo: HTTPS
Método: POST
-
Common request parameters
Os parâmetros de requisição para uma operação de API do Text Moderation 2.0 incluem parâmetros comuns e parâmetros específicos da operação. Os parâmetros comuns aplicam-se a todas as operações de API. A tabela a seguir descreve esses parâmetros.
Parâmetro
Tipo
Obrigatório
Descrição
Format
String
Sim
Formato da resposta. Valores válidos:
-
JSON (padrão)
-
XML
Version
String
Sim
Versão da operação de API. Segue o formato AAAA-MM-DD. A versão desta operação de API é 2022-03-02.
AccessKeyId
String
Sim
AccessKey ID emitido pela Alibaba Cloud para acesso ao serviço.
Signature
String
Sim
String de assinatura. Para saber como calcular uma assinatura, consulte a seção "Método de assinatura" abaixo.
SignatureMethod
String
Sim
Método de assinatura. Apenas HMAC-SHA1 é compatível.
Timestamp
String
Sim
Timestamp da requisição. Deve seguir o padrão ISO 8601 e estar em UTC. O formato é aaaa-MM-ddTHH:mm:ssZ. Por exemplo, 2022-12-12T01:13:14Z representa 09:13:14 em 12 de dezembro de 2022 (UTC+8).
SignatureVersion
String
Sim
Versão do algoritmo de assinatura. Defina o valor como 1,0.
SignatureNonce
String
Sim
Número aleatório único (nonce) para prevenir ataques de replay. Use um novo nonce para cada requisição.
Action
String
Sim
-
Operação de API para o serviço Text Moderation 2.0 PLUS: TextModerationPlus
-
-
Common response parameters
Cada requisição de API retorna um ID de requisição único (RequestId), independentemente do sucesso da operação. Outros parâmetros de resposta incluem Label e Confidence. Diferentes serviços retornam parâmetros distintos. Para mais informações, consulte a documentação do serviço específico.
-
Code samples
Os exemplos de resposta a seguir estão formatados para facilitar a leitura. As respostas reais não contêm quebras de linha ou indentação.
O código abaixo fornece um exemplo de requisição para Text Moderation 2.0-International Business Multilingual Detection. Para outras operações de API, consulte a documentação específica para obter os parâmetros de requisição de negócios.
https://green-cip.ap-southeast-1.aliyuncs.com/ ?Format=JSON &Version=2022-03-02 &Signature=vpEEL0zFHfxXYzSFV0n7%2FZiFL9o%3D &SignatureMethod=Hmac-SHA1 &SignatureNonce=15215528852396 &SignatureVersion=1.0 &Action=TextModerationPlus &AccessKeyId=123****cip &Timestamp=2022-12-12T12:00:00Z &Service=text_multilingual_pro_global &ServiceParameters={"content": "Test text"}O código abaixo fornece um exemplo de resposta JSON para Text Moderation 2.0-International Business Multilingual Detection:
{ "Code": 200, "Data": { "Result": [ { "Label": "political_entity", "Description":"Suspected political entity", "Confidence": 100.0, "RiskWords": "Word A,Word B,Word C" }, { "Label": "political_figure", "Description":"Suspected political figure", "Confidence": 100.0, "RiskWords": "Word A,Word B,Word C" } ], "RiskLevel": "high" }, "Message": "OK", "RequestId": "AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****" } -
Signature method
O serviço Text Moderation 2.0 autentica cada requisição. Portanto, inclua informações de assinatura em todas as requisições. O serviço Text Moderation 2.0 usa um AccessKey ID e um AccessKey Secret para executar criptografia simétrica e verificar a identidade do remetente da requisição.
A Alibaba Cloud emite o AccessKey ID e o AccessKey Secret. Solicite e gerencie-os no site da Alibaba Cloud. O AccessKey ID identifica o usuário. O AccessKey Secret é uma chave usada para criptografar a string de assinatura e verificá-la no servidor. Mantenha seu AccessKey Secret em sigilo.
Para assinar uma requisição, siga estas etapas:
-
Construa uma string de consulta canônica.
Ordene todos os parâmetros da requisição (comuns e específicos da operação) alfabeticamente por nome, excluindo o parâmetro Signature.
-
Codifique os nomes e valores dos parâmetros da requisição em UTF-8 usando codificação URL.
NotaA maioria das bibliotecas de codificação URL, como
java.net.URLEncoderem Java, codifica strings com base nas regras do tipo MIMEapplication/x-www-form-urlencoded. Use esse método para codificação e substitua sinais de mais (+) por %20, asteriscos (*) por %2A e %7E por tis (~) para obter a string codificada necessária.As regras de codificação URL são as seguintes:
Não codifique letras maiúsculas (A-Z), minúsculas (a-z), dígitos (0-9) e os seguintes caracteres: hífen (-), sublinhado (_), ponto (.) e til (~).
Outros caracteres são codificados no formato
%XY, onde XY é a representação hexadecimal do código ASCII do caractere. Por exemplo, aspas duplas inglesas (") são codificadas como%22.Caracteres UTF-8 estendidos são codificados como
%XY%ZA….Observe que um caractere de espaço ( ) deve ser codificado como
%20, não como um sinal de mais (+).
Conecte cada nome de parâmetro codificado ao seu valor codificado com um sinal de igual (=).
Concatene os pares nome-valor resultantes com e comerciais (&) na ordem dos nomes de parâmetros classificados para obter a string de consulta canônica.
-
Use a string de consulta canônica da etapa anterior para construir a string a ser assinada com base nas seguintes regras:
StringToSign= HTTPMethod + "&" + percentEncode("/") + "&" + percentEncode(CanonicalizedQueryString)NotaHTTPMethod é o método HTTP usado para enviar a requisição, como POST. percentEncode(/) é o valor obtido codificando o caractere / de acordo com as regras de codificação URL descritas na seção a.ii, ou seja,
%2F. percentEncode(CanonicalizedQueryString) é a string obtida codificando a string de consulta canônica construída na seção a.i de acordo com as regras de codificação URL descritas na seção a.ii. -
Calcule o valor HMAC da string a ser assinada conforme definido na RFC 2104.
NotaNote que a chave usada para calcular a assinatura é o seu AccessKey Secret seguido por um caractere
&(ASCII:38), e o algoritmo de hash é SHA1. Codifique o valor HMAC em Base64 para obter a assinatura.
-
Adicione a assinatura resultante à requisição como o parâmetro
Signature.NotaAo enviar a assinatura para o servidor Content Moderation, codifique-a em URL junto com outros parâmetros de acordo com a RFC 3986.
-