このトピックでは、テキスト審査 2.0 PLUS サービス SDK を統合する方法について説明します。
ステップ 1: サービスをアクティブ化する
サービスのアクティブ化ページにアクセスして、テキスト審査 2.0 サービスをアクティブ化します。
テキスト 2.0 サービスをアクティブ化すると、デフォルトの課金方法は従量課金になります。料金は、日単位の使用量に基づいて請求されます。サービスを使用しない場合、料金は請求されません。API の使用を開始すると、システムは使用量に基づいて自動的に請求します。
ステップ 2: RAM ユーザーに権限を付与する
SDK または API を呼び出す前に、Resource Access Management (RAM) ユーザーに権限を付与する必要があります。Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ペアを作成できます。Alibaba Cloud API を呼び出すときは、ID 認証に AccessKey を使用する必要があります。AccessKey の取得方法の詳細については、「AccessKey の取得」をご参照ください。
手順
RAM 管理者として RAM コンソールにログインします。
- RAM ユーザーを作成します。
詳細については、「RAM ユーザーの作成」をご参照ください。
- 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 | comment_multilingual_pro_global |
英国 (ロンドン) | https://green-cip.eu-west-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-central-1.aliyuncs.com | 利用不可 |
他のプログラミング言語の SDK サンプルコードが必要な場合は、OpenAPI Explorer オンラインデバッグツールを使用して API 操作をデバッグできます。このツールは、対応する API 操作の SDK サンプルコードを自動的に生成します。
Alibaba Cloud SDK コードでは、ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数を定義することで、デフォルトのアクセス資格情報を作成できます。Alibaba Cloud サービスの API 操作を呼び出すと、システムは資格情報に直接アクセスし、AccessKey ペアを読み取り、自動的に認証を完了します。SDK サンプルコードを使用する前に、環境変数を設定する必要があります。詳細については、「資格情報の設定」をご参照ください。
SDK には 2 つのサービスバージョンがあります。このページで説明されている PLUS サービスを直接統合することをお勧めします。以前に一般サービスを統合した場合は、「テキスト審査拡張 2.0 一般サービス SDK と統合ガイド」をご参照ください。
テキスト審査 2.0 PLUS サービス
この SDK は、次の API 操作に対応しています: テキスト審査拡張 2.0 多言語 PLUS サービス。
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.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();
/**
* Alibaba Cloud アカウントの AccessKey は、すべての API 操作に対する権限を持っています。API アクセスに Alibaba Cloud アカウントの AccessKey を使用すると、リスクが高くなります。API アクセスや O&M には RAM ユーザーを使用することをお勧めします。
* 環境変数を取得する一般的な方法:
* 方法 1:
* RAM ユーザーの AccessKey ID を取得する: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* RAM ユーザーの AccessKey シークレットを取得する: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
* 方法 2:
* RAM ユーザーの AccessKey ID を取得する: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
* RAM ユーザーの AccessKey シークレットを取得する: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
config.setAccessKeyId("環境変数から RAM ユーザーの AccessKey ID を取得することをお勧めします");
config.setAccessKeySecret("環境変数から RAM ユーザーの AccessKey シークレットを取得することをお勧めします");
//必要に応じてリージョンとエンドポイントを変更します
config.setRegionId("ap-southeast-1");
config.setEndpoint("green-cip.ap-southeast-1.aliyuncs.com");
//読み取りタイムアウト期間 (ミリ秒)。
config.setReadTimeout(6000);
//接続タイムアウト期間 (ミリ秒)。
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("comment_multilingual_pro_global");
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.2.112. 統合用の 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(
# Alibaba Cloud アカウントの AccessKey は、すべての API 操作に対する権限を持っています。API アクセスに Alibaba Cloud アカウントの AccessKey を使用すると、リスクが高くなります。API アクセスや O&M には RAM ユーザーを使用することをお勧めします。
# AccessKey ID と AccessKey シークレットをコードに保存しないことを強くお勧めします。そうしないと、AccessKey が漏洩し、アカウントのすべてのリソースのセキュリティが脅かされる可能性があります。
# 環境変数を取得する一般的な方法:
# RAM ユーザーの AccessKey ID を取得する: os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
# RAM ユーザーの AccessKey シークレットを取得する: os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
access_key_id='環境変数から RAM ユーザーの AccessKey ID を取得することをお勧めします',
access_key_secret='環境変数から RAM ユーザーの AccessKey シークレットを取得することをお勧めします',
# 接続タイムアウト期間 (ミリ秒)
connect_timeout=10000,
# 読み取りタイムアウト期間 (ミリ秒)
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='comment_multilingual_pro_global',
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.2.102. 統合用の 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([
/**
* Alibaba Cloud アカウントの AccessKey は、すべての API 操作に対する権限を持っています。API アクセスに Alibaba Cloud アカウントの AccessKey を使用すると、リスクが高くなります。API アクセスや O&M には RAM ユーザーを使用することをお勧めします。
* AccessKey ID と AccessKey シークレットをコードに保存しないことを強くお勧めします。そうしないと、AccessKey が漏洩し、アカウントのすべてのリソースのセキュリティが脅かされる可能性があります。
* 環境変数を取得する一般的な方法:
* RAM ユーザーの AccessKey ID を取得する: getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* RAM ユーザーの AccessKey シークレットを取得する: getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
"accessKeyId" => '環境変数から RAM ユーザーの AccessKey ID を取得することをお勧めします',
"accessKeySecret" => '環境変数から RAM ユーザーの AccessKey シークレットを取得することをお勧めします',
// 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 = new Green($config);
$request = new TextModerationPlusRequest();
$request->service = "comment_multilingual_pro_global";
$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 git clone --branch v2.2.11 github.com/alibabacloud-go/green-20220302/v22. 統合用の 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{
/**
* Alibaba Cloud アカウントの AccessKey は、すべての API 操作に対する権限を持っています。API アクセスに Alibaba Cloud アカウントの AccessKey を使用すると、リスクが高くなります。API アクセスや O&M には RAM ユーザーを使用することをお勧めします。
* AccessKey ID と AccessKey シークレットをコードに保存しないことを強くお勧めします。そうしないと、AccessKey が漏洩し、アカウントのすべてのリソースのセキュリティが脅かされる可能性があります。
* 環境変数を取得する一般的な方法:
* RAM ユーザーの AccessKey ID を取得する: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
* RAM ユーザーの AccessKey シークレットを取得する: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
AccessKeyId: tea.String("環境変数から RAM ユーザーの AccessKey ID を取得することをお勧めします"),
AccessKeySecret: tea.String("環境変数から RAM ユーザーの AccessKey シークレットを取得することをお勧めします"),
// 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("comment_multilingual_pro_global"),
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)
}Node.js SDK
ソースコードについては、「Node.js SDK ソースコード」をご参照ください。
1. 次のコマンドを実行して、依存関係をインポートします。
npm install @alicloud/green20220302@2.2.102. 統合用の Node.js SDK コード例。
const Green20220302 = require('@alicloud/green20220302');
const OpenApi = require('@alicloud/openapi-client');
const Util = require('@alicloud/tea-util');
// 注: インスタンス化されたクライアントをできるだけ再利用して、検出パフォーマンスを向上させます。接続の繰り返し確立を避けてください。
// コードが漏洩すると、AccessKey が漏洩し、アカウントのすべてのリソースのセキュリティが脅かされる可能性があります。次のコードは参照用です。
class Client {
static createClient() {
const config = new OpenApi.Config({
// 必須。コード実行環境で環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID が設定されていることを確認してください。
accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
// 必須。コード実行環境で環境変数 ALIBABA_CLOUD_ACCESS_KEY_SECRET が設定されていることを確認してください。
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();
// リクエストオブジェクトを構築します
const textModerationPlusRequest = new Green20220302.TextModerationPlusRequest({
// テキスト拡張プラス検出サービス、参照: https://www.alibabacloud.com/help/document_detail/2684669.html#p-t7m-66g-cv6。
"service": "comment_multilingual_pro_global",
"serviceParameters": JSON.stringify({
// 検出するテキスト。
"content": "テストテキスト"})
});
// ランタイム設定オブジェクトを作成します
const runtime = new Util.RuntimeOptions();
try {
// リクエストを送信してレスポンスを取得します
const response = await client.textModerationPlusWithOptions(textModerationPlusRequest, runtime);
console.log(JSON.stringify(response.body));
} catch (error) {
// これは表示目的です。プロジェクトでは例外を慎重に処理してください。例外を単に無視しないでください。
// エラーメッセージ
console.log('Error occurred:', error.message);
}
}
}
Client.main();C# SDK
ソースコードについては、「C# SDK ソースコード」をご参照ください。
1. 次のコマンドを実行して、依存関係をインポートします。
dotnet add package AlibabaCloud.SDK.Green20220302 --version 2.2.102. 統合用の C# SDK コード例。
// このファイルは自動生成されます。編集しないでください。ありがとうございます。
using Newtonsoft.Json;
namespace AlibabaCloud.SDK.Green20220302
{
public class TextModerationPlusAutoRoute
{
public static void Main(string[] args)
{
/**
* Alibaba Cloud アカウントの AccessKey は、すべての API 操作に対する権限を持っています。API アクセスに Alibaba Cloud アカウントの AccessKey を使用すると、リスクが高くなります。API アクセスや O&M には RAM ユーザーを使用することをお勧めします。
* AccessKey ID と AccessKey シークレットをコードに保存しないことを強くお勧めします。そうしないと、AccessKey が漏洩し、アカウントのすべてのリソースのセキュリティが脅かされる可能性があります。
* 環境変数を取得する一般的な方法:
* RAM ユーザーの AccessKey ID を取得する: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID")
* RAM ユーザーの AccessKey シークレットを取得する: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
String accessKeyId = "環境変数から RAM ユーザーの AccessKey ID を取得することをお勧めします";
String accessKeySecret = "環境変数から RAM ユーザーの AccessKey シークレットを取得することをお勧めします";
// 必要に応じてリージョンとエンドポイントを変更します
String endpoint = "green-cip.ap-southeast-1.aliyuncs.com";
//注: インスタンス化されたクライアントをできるだけ再利用して、接続の繰り返し確立を避け、検出パフォーマンスを向上させます。
Client client = createClient(accessKeyId, accessKeySecret, endpoint);
// ランタイムパラメーター設定、このランタイムパラメーターインスタンスを使用するリクエストにのみ有効
AlibabaCloud.TeaUtil.Models.RuntimeOptions runtimeOptions =
new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
//テキスト検出リクエストを構築します。
Models.TextModerationPlusRequest textModerationPlusRequest =
new Models.TextModerationPlusRequest();
//テキストプラス検出サービスの例: nickname_detection_pro
//サポートされているサービスについては、https://www.alibabacloud.com/help/document_detail/2684669.html#p-t7m-66g-cv6 をご参照ください
textModerationPlusRequest.Service = "comment_multilingual_pro_global";
Dictionary<string, object> task = new Dictionary<string, object>();
task.Add(
"content",
"テストテキスト"
);
textModerationPlusRequest.ServiceParameters = JsonConvert.SerializeObject(task);
try
{
//API を呼び出して検出結果を取得します。
Models.TextModerationPlusResponse response = client.TextModerationPlusWithOptions(
textModerationPlusRequest,
runtimeOptions
);
Console.WriteLine(response.Body.RequestId);
Console.WriteLine(JsonConvert.SerializeObject(response.Body));
}
catch (Exception _err)
{
Console.WriteLine(_err);
}
}
//リクエストクライアントを作成します
public static Client createClient(
String accessKeyId,
String accessKeySecret,
String endpoint
)
{
AlibabaCloud.OpenApiClient.Models.Config config =
new AlibabaCloud.OpenApiClient.Models.Config
{
AccessKeyId = accessKeyId,
AccessKeySecret = accessKeySecret,
//HTTP プロキシを設定します。
//HttpProxy = "http://10.10.xx.xx:xxxx",
//HTTPS プロキシを設定します。
//HttpsProxy = "https://username:password@xxx.xxx.xxx.xxx:9999",
//アクセスするエンドポイント。
Endpoint = endpoint,
};
return new Client(config);
}
}
}ネイティブ HTTPS 呼び出し
テキスト審査 2.0 API サービスは、ネイティブ HTTPS 呼び出しもサポートしています。ネイティブアプローチでは、ユーザーが独自の署名、復号、リクエストアセンブリ (URL、本文、ヘッダー、パラメーター) をカプセル化する必要があります。ネイティブ HTTPS アプローチを使用する必要があるのは、通常、2 つのシナリオのみです。これらの特別なシナリオのいずれかに該当しない限り、SDK アプローチを使用することをお勧めします。
クライアントサイズに対する要件が高いアプリでの直接使用。
アップグレードが困難な特定の依存関係ライブラリ要件。
呼び出しメソッド
サービスリクエストアドレス: https://green-cip.{region}.aliyuncs.com
プロトコル: HTTPS
メソッド: POST
共通リクエストパラメーター
テキスト審査 2.0 API 操作の入力パラメーターには、共通リクエストパラメーターと特定の API リクエストパラメーターが含まれます。共通リクエストパラメーターは、すべての API 操作が使用するパラメーターです。次の表に、共通リクエストパラメーターの詳細を示します。
名前
タイプ
必須
説明
Format
String
はい
返されるメッセージのフォーマット。有効な値:
JSON (デフォルト)
XML
Version
String
はい
YYYY-MM-DD 形式の API バージョン。この API のバージョンは 2022-03-02 です。
AccessKeyId
String
はい
Alibaba Cloud がサービスアクセス用にユーザーに発行する AccessKey ID。
Signature
String
はい
署名文字列。署名の計算方法の詳細については、以下の署名メソッドのセクションをご参照ください。
SignatureMethod
String
はい
署名メソッド。HMAC-SHA1 がサポートされています。
Timestamp
String
はい
リクエストのタイムスタンプ。タイムスタンプは ISO 8601 標準と UTC 時刻を使用します。フォーマットは yyyy-MM-ddTHH:mm:ssZ です。たとえば、2022-12-12T01:13:14Z は 2022 年 12 月 12 日 09:13:14 (UTC+8) を示します。
SignatureVersion
String
はい
署名アルゴリズムのバージョン。値を 1.0 に設定します。
SignatureNonce
String
はい
リプレイ攻撃を防ぐために使用される一意の乱数。リクエストごとに異なる乱数を使用する必要があります。
Action
String
はい
テキスト拡張プラス API: TextModerationPlus
共通レスポンスパラメーター
システムは、リクエストが成功したかどうかに関係なく、送信する各 API リクエストに対して一意のリクエスト ID (RequestId) を返します。その他のレスポンスパラメーターには、ラベルと信頼度が含まれます。サービスごとに返されるパラメーターは異なります。詳細については、特定のサービスのドキュメントをご参照ください。
コード例
次のレスポンス例は、読みやすさのためにフォーマットされています。実際のレスポンス結果は、改行やインデントでフォーマットされていません。
以下は、テキスト審査 2.0 -国際ビジネス多言語検出のリクエスト例です。他の API 操作については、ビジネス入力パラメーターの特定の API ドキュメントをご参照ください:
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=comment_multilingual_pro_global &ServiceParameters={"content": "テストテキスト"}以下は、テキスト審査 2.0 -国際ビジネス多言語検出のレスポンスパラメーターの JSON コード例です:
{ "Code": 200, "Data": { "Result": [ { "Label": "political_entity", "Description":"政治的実体と疑われる", "Confidence": 100.0, "RiskWords": "単語 A,単語 B,単語 C" }, { "Label": "political_figure", "Description":"政治的人物の疑い", "Confidence": 100.0, "RiskWords": "単語 A,単語 B,単語 C" } ], "RiskLevel": "high" }, "Message": "OK", "RequestId": "AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****" }署名メソッド
テキスト審査 2.0 サービスは、各アクセスリクエストを認証します。したがって、各リクエストには署名情報を含める必要があります。テキスト審査 2.0 サービスは、AccessKey ID と AccessKey シークレットを使用して対称暗号化を実装し、リクエスト送信者の ID を検証します。
AccessKey ID と AccessKey シークレットは、Alibaba Cloud によって正式に発行されます (Alibaba Cloud の Web サイトで申請および管理できます)。AccessKey ID はユーザーを識別するために使用されます。AccessKey シークレットは、署名文字列を暗号化し、サーバーで署名文字列を検証するために使用されるキーです。AccessKey シークレットは厳重に機密を保持する必要があります。あなたと Alibaba Cloud だけが知っています。
サービスにアクセスするときは、次の手順に従ってリクエストに署名します:
リクエストパラメーターを使用して、正規化されたクエリ文字列を構築します。
すべてのリクエストパラメーター ([Signature] パラメーターを除く、API 操作の共通リクエストパラメーターとカスタムパラメーターを含む) をアルファベット順に並べ替えます。
リクエストパラメーターの名前と値をエンコードします。名前と値は、UTF-8 で URL エンコードする必要があります。
説明一般的に、URL エンコーディングライブラリ (Java の java.net.URLEncoder など) は、application/x-www-form-urlencoded MIME タイプのルールに従ってエンコードします。このメソッドを直接エンコードに使用し、エンコードされた文字列のプラス記号 (+) を %20 に、アスタリスク (*) を %2A に、%7E をチルダ (~) に置き換えることで、上記のルールで説明されているエンコードされた文字列を取得できます。
URL エンコーディングのルールは次のとおりです:
文字 A-Z、a-z、0-9、および文字ハイフン (-)、アンダースコア (_)、ピリオド (.)、チルダ (~) はエンコードされません。
その他の文字は
%XYの形式でエンコードされます。ここで、XY は文字の ASCII コードの 16 進数表現です。たとえば、二重引用符 (") のエンコーディングは%22です。拡張 UTF-8 文字は
%XY%ZA…の形式でエンコードされます。スペース文字 ( ) は、プラス記号 (+) ではなく、
%20としてエンコードする必要があることに注意してください。
マーシャリングされたパラメーター名と値を等号 (=) で接続します。
パラメーター名のアルファベット順に等号で文字列を & 記号で接続して、正規化されたクエリ文字列を形成します。
a.i で構築された正規化された文字列を使用して、次のルールに従って署名を計算するための文字列を作成します。
StringToSign= HTTPMethod + "&" + percentEncode("/") + "&" + percentEncode(CanonicalizedQueryString)説明ここで、HTTPMethod はリクエストを送信するために使用される HTTP メソッド (POST など) です。percentEncode (/) は、a.ii で説明されている URL エンコーディングルールに従って文字 (/) をエンコードして得られる値で、
%2Fです。percentEncode (CanonicalizedQueryString) は、a.i で構築された正規化されたクエリ文字列を a.ii で説明されている URL エンコーディングルールに従ってエンコードして得られる文字列です。RFC2104 の定義に従って、上記の署名用文字列を使用して署名 HMAC 値を計算します。
説明署名の計算に使用されるキーは、ユーザーの AccessKey シークレットに
&文字 (ASCII: 38) を追加したものであることに注意してください。使用されるハッシュアルゴリズムは SHA1 です。上記の HMAC 値を Base64 エンコーディングルールに従って文字列にエンコードし、署名値 (Signature) を取得します。
取得した署名値を Signature パラメーターとしてリクエストパラメーターに追加して、リクエスト署名プロセスを完了します。
説明取得した署名値を最終的なリクエストパラメーター値として Content Moderation サーバーに送信する場合、他のパラメーターと同様に、RFC3986 のルールに従って URL エンコードする必要があります。