Text Moderation 2.0 PLUS SDK をアプリケーションに統合すると、単一の API 呼び出しで複数の言語にわたる有害なテキストコンテンツを検出できます。
前提条件
開始する前に、以下を準備してください。
Alibaba Cloud アカウント
AliyunYundunGreenWebFullAccessポリシーを持つ RAM ユーザーその RAM ユーザーに関連付けられた AccessKey ペア
実行環境に設定された
ALIBABA_CLOUD_ACCESS_KEY_IDおよびALIBABA_CLOUD_ACCESS_KEY_SECRET環境変数
ステップ 1: サービスのアクティブ化
サービスの有効化ページに移動し、テキスト審査 2.0 サービスを有効化してください。2.02.02.02.02.02.02.02.02.0
デフォルトの課金方法は従量課金です。1 日あたりの使用量に基づいて課金されます。サービスを使用しない場合、課金されません。
ステップ 2: RAM ユーザーの設定
Content Moderation API には、適切なシステムポリシーを持つ RAM ユーザーが必要です。ルートアカウントの代わりに RAM ユーザーを使用することで、認証情報の漏洩による影響範囲を制限できます。
RAM 管理者として [RAM コンソール] にログインします。
RAM ユーザーを作成します。詳細については、「RAM ユーザーの作成」をご参照ください。
AliyunYundunGreenWebFullAccessシステムポリシーを RAM ユーザーに付与します。詳細については、「RAM ユーザーに権限を付与する」をご参照ください。RAM ユーザーの AccessKey ペアを作成します。詳細については、「AccessKey の取得」をご参照ください。
コード内に AccessKey ID または AccessKey Secret を保存しないでください。これらを環境変数(ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET)として設定し、ランタイム時に読み取ります。認証情報の構成の詳細については、「認証情報の構成」をご参照ください。
ステップ 3: SDK のインストールと最初の呼び出し
すべての例では、comment_multilingual_pro_global サービスとシンガポールエンドポイント (green-cip.ap-southeast-1.aliyuncs.com) を使用しています。デプロイメントに合わせてリージョンとエンドポイントを変更してください。
サポートされているリージョン
| リージョン | Public エンドポイント | VPC エンドポイント |
|---|---|---|
| シンガポール | green-cip.ap-southeast-1.aliyuncs.com | green-cip-vpc.ap-southeast-1.aliyuncs.com |
| イギリス (ロンドン) | 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 | 利用不可 |
comment_multilingual_pro_global サービスはシンガポールで利用可能です。リージョンごとのサービスの完全な一覧については、テキストモデレーション エンハンスド 2.0 マルチリンガル PLUS サービスをご参照ください。
ここに記載されていない言語の SDK サンプルについては、OpenAPI Explorer を使用して、対応している任意の言語のコードを生成します。
Java
Java 1.8 以降がサポートされています。ソースコード: GitHub または OSS パス。
1. 依存関係を pom.xml に追加します:
requestId = AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****
code = 200
msg = OK
{
"Result": [
{"Label": "political_entity", "Description": "政治的エンティティの疑い", "Confidence": 100.0, "RiskWords": "Word A,Word B,Word C"}
],
"RiskLevel": "高"
}2. API を呼び出します:
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 アカウント (root ユーザー) の AccessKey は、すべての API オペレーションに対する権限を持ちます。これはセキュリティリスクです。
* API オペレーションの呼び出しや日常的な運用・保守 (O&M) を行う際には、RAM ユーザーを使用することを推奨します。
* リクエストの認証を行うには、認証情報を設定する必要があります。
* 認証情報の設定には、環境変数の使用を推奨します。
* たとえば、RAM ユーザーの AccessKey ID および AccessKey Secret を以下の環境変数から取得できます:
* System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
* System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// リージョン ID。サービスがデプロイされているリージョンを指定します。
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("text_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("テキストモデレーションに失敗しました。Code: " + code);
}
} else {
System.out.println("リクエストに失敗しました。ステータスコード: " + response.getStatusCode());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}期待される出力:
requestId = AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****
code = 200
msg = OK
{
"Result": [
{"Label": "political_entity", "Description": "政治的エンティティの疑いあり", "Confidence": 100.0, "RiskWords": "Word A,Word B,Word C"}
],
"RiskLevel": "high"
}Python
Python 3.6 以降がサポートされています。ソースコード: PyPI。
1. パッケージをインストールします:
pip install alibabacloud_green20220302==2.2.112. API を呼び出します:
# coding=utf-8
import os
import json
from alibabacloud_green20220302.client import Client
from alibabacloud_green20220302 import models
from alibabacloud_tea_openapi.models import Config
config = Config(
# 認証情報を環境変数から読み込みます — コード内にハードコーディングしないでください
access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
connect_timeout=10000, # 接続タイムアウト(ミリ秒単位)
read_timeout=3000, # 読み取りタイムアウト(ミリ秒単位)
region_id='ap-southeast-1',
endpoint='green-cip.ap-southeast-1.aliyuncs.com'
)
client = Client(config)
service_parameters = {'content': 'テスト用テキストコンテンツ'}
request = models.TextModerationPlusRequest(
service='comment_multilingual_pro_global',
service_parameters=json.dumps(service_parameters)
)
try:
response = client.text_moderation_plus(request)
if response.status_code == 200:
print('成功。結果: {}'.format(response.body))
else:
print('リクエストに失敗しました。ステータス: {}, 結果: {}'.format(response.status_code, response))
except Exception as err:
print(err)期待される出力:
成功。結果: {"Code": 200, "Data": {"Result": [...], "RiskLevel": "high"}, "Message": "OK", "RequestId": "..."}# -*- coding: utf-8 -*-
# この例では Python 3.6 以降が必要です。
import os
import json
from alibabacloud_green20220302.client import Client
from alibabacloud_green20220302 import models
from alibabacloud_tea_openapi.models import Config
# Alibaba Cloud アカウント (root ユーザー) の AccessKey は、すべての API オペレーションに対する権限を持ちます。これはセキュリティリスクです。
# API オペレーションの呼び出しや日常的な運用・保守 (O&M) を行う際には、RAM ユーザーを使用することを推奨します。
# コード内に AccessKey ID および AccessKey Secret をハードコーディングしないでください。
# 認証情報は、環境変数から読み込むことを推奨します。
# たとえば、RAM ユーザーの AccessKey ID および AccessKey Secret を以下の環境変数から取得できます:
# os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID')
# os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET')
config = Config(
access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),
access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
# 接続タイムアウト(ミリ秒単位)を指定します。
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='text_multilingual_pro_global',
service_parameters=json.dumps(serviceParameters)
)
try:
response = clt.text_moderation_plus(textModerationPlusRequest)
if response.status_code == 200:
# API 呼び出しが成功しました。
result = response.body
print(f"API 呼び出し成功。結果: {result}")
else:
print(f"API 呼び出し失敗。ステータスコード: {response.status_code}, 応答: {response}")
except Exception as err:
print(err)PHP
PHP 5.6 以降がサポートされています。ソースコード: Packagist。
1. パッケージをインストールします:
composer require alibabacloud/green-20220302 2.2.102. API を呼び出します:
<?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 アカウント (root ユーザー) の AccessKey は、すべての API オペレーションに対する権限を持ちます。これはセキュリティリスクです。
* API オペレーションの呼び出しや日常的な運用・保守 (O&M) を行う際には、RAM ユーザーを使用することを推奨します。
* コード内に AccessKey ID および AccessKey Secret をハードコーディングしないでください。
* 認証情報は、環境変数から読み込むことを推奨します。
* たとえば、RAM ユーザーの AccessKey ID および AccessKey Secret を以下の環境変数から取得できます:
* getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
* getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
"accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
"accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
// 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 = "text_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->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("テキストモデレーションに失敗しました。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
1. SDK をクローンします:
git clone --branch v2.2.11 github.com/alibabacloud-go/green-20220302/v22. API を呼び出します:
package main
import (
"encoding/json"
"fmt"
"os"
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() {
// コード内に AccessKey をハードコーディングするのは推奨されません。これによりセキュリティリスクが生じる可能性があります。
// セキュリティを高めるために、STS 認証情報を使用することを推奨します。
config := &openapi.Config{
/**
* Alibaba Cloud アカウント (root ユーザー) の AccessKey は、すべての API オペレーションに対する権限を持ちます。これはセキュリティリスクです。
* API オペレーションの呼び出しや日常的な運用・保守 (O&M) を行う際には、RAM ユーザーを使用することを推奨します。
* リクエストの認証を行うには、認証情報を設定する必要があります。
* 認証情報の設定には、環境変数の使用を推奨します。
* たとえば、RAM ユーザーの AccessKey ID および AccessKey Secret を以下の環境変数から取得できます:
* os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
* os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
// 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 例外が返されます。
*/
ConnectTimeout: tea.Int(3000),
ReadTimeout: tea.Int(6000),
}
client, _err := green20220302.NewClient(config)
if _err != nil {
panic(_err)
}
// ランタイムオプションオブジェクトを作成します。
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("text_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("リクエストに失敗しました。ステータスコード: %d\n", *result.StatusCode)
return
}
body := result.Body
fmt.Printf("リクエストが成功しました。requestId: %s, code: %d, msg: %s\n", *body.RequestId, *body.Code, *body.Message)
if *body.Code != http.StatusOK {
fmt.Printf("テキストモデレーションに失敗しました。Code: %d\n", *body.Code)
return
}
data := body.Data
fmt.Printf("テキストモデレーションデータ: %s\n", *data)
}Node.js
ソースコード: npm。
1. パッケージをインストールします:
npm install @alicloud/green20220302@2.2.102. API を呼び出します:
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({
// テキストモデレーション強化 PLUS のサービス名。詳細については、「https://www.alibabacloud.com/help/ja/content-moderation/latest/api-green-2022-03-02-textmoderationplus」をご参照ください。
"service": "text_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.message);
}
}
}
Client.main();C#
ソースコード: NuGet。
1. パッケージを追加します:
dotnet add package AlibabaCloud.SDK.Green20220302 --version 2.2.102. API を呼び出します:
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
namespace AlibabaCloud.SDK.Green20220302
{
public class TextModerationPlusDemo
{
public static void Main(string[] args)
{
// 認証情報を環境変数から読み込みます — コード内にハードコーディングしないでください
string accessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
string accessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
string endpoint = "green-cip.ap-southeast-1.aliyuncs.com";
// 再利用可能なクライアントインスタンスを使用して、接続の再設定を回避します
Client client = CreateClient(accessKeyId, accessKeySecret, endpoint);
var runtimeOptions = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
var request = new Models.TextModerationPlusRequest();
request.Service = "comment_multilingual_pro_global";
var task = new Dictionary<string, object> { { "content", "テストテキスト" } };
request.ServiceParameters = JsonConvert.SerializeObject(task);
try
{
var response = client.TextModerationPlusWithOptions(request, 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)
{
var config = new AlibabaCloud.OpenApiClient.Models.Config
{
AccessKeyId = accessKeyId,
AccessKeySecret = accessKeySecret,
// (任意)HTTP または HTTPS プロキシを設定
// HttpProxy = "http://10.10.xx.xx:xxxx",
// HttpsProxy = "https://username:password@xxx.xxx.xxx.xxx:9999",
Endpoint = endpoint,
};
return new Client(config);
}
}
}ネイティブ HTTPS 呼び出し
SDK を使用できない場合(たとえば、パッケージサイズが極めて重要となるモバイルアプリの構築時、または SDK の導入を妨げる依存関係の制約がある場合など)のみ、ネイティブ HTTPS 方式を使用してください。それ以外の場合は、必ず SDK を使用してください。
ネイティブ方式では、リクエストの署名、URL エンコーディング、ヘッダーの組み立てを手動で処理する必要があります。
リクエストの詳細
URL:
https://green-cip.{region}.aliyuncs.comプロトコル: HTTPS
メソッド: POST
API バージョン:
2022-03-02Action:
TextModerationPlus
共通リクエストパラメーター
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
Format | String | はい | 応答フォーマット。有効な値: JSON(デフォルト)、XML。 |
Version | String | はい | API バージョン(YYYY-MM-DD 形式)。2022-03-02 を使用します。 |
AccessKeyId | String | はい | ご利用の AccessKey ID。 |
Signature | String | はい | 計算されたリクエスト署名。 |
SignatureMethod | String | はい | 署名アルゴリズム。 HMAC-SHA1 を使用します。 |
Timestamp | String | はい | ISO 8601 UTC 形式のリクエストタイムスタンプ:yyyy-MM-ddTHH:mm:ssZ(例:2022-12-12T01:13:14Z)。 |
SignatureVersion | String | はい | 署名アルゴリズムのバージョン。 1.0 を使用します。 |
SignatureNonce | String | はい | 各リクエストに対して一意のランダム文字列。リプレイ攻撃を防止するために使用されます。 |
Action | String | はい | API オペレーション名。 TextModerationPlus を使用します。 |
リクエストの例
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": "sample text"}リクエストの署名
このサービスでは、HMAC-SHA1 対称暗号化を使用して各リクエストを認証します。リクエストの署名には、以下の手順に従ってください:
正規化されたクエリ文字列を作成します:
Signatureを除くすべてのリクエストパラメーターを収集し、アルファベット順に並べ替えます。UTF-8 でパラメーター名および値を URL エンコードします。以下のルールを適用します:
A–Z、a–z、0–9、-、_、.、~はエンコードしません。その他の文字は
%XY形式でエンコードします。XYは大文字の 16 進 ASCII 値です(例:"→%22)。拡張 UTF-8 文字は
%XY%ZA…形式でエンコードします。スペースは
%20でエンコードします(+ではありません)。URL エンコーディングライブラリ(例:
java.net.URLEncoder)を使用する場合、出力内の+を%20に、*を%2Aに、%7Eを~に置き換えます。
各エンコード済みの名前・値ペアを
=で結合します。すべてのペアをアルファベット順に
&で結合します。
署名対象文字列を作成します:
StringToSign = HTTPMethod + "&" + percentEncode("/") + "&" + percentEncode(CanonicalizedQueryString)ここで、
percentEncode("/")=%2Fです。HMAC-SHA1 署名を計算します: 署名キーとして
AccessKey secret + "&"(ASCII 38)を使用し、SHA1 を適用します。HMAC 値を Base64 エンコード して署名文字列を取得します。
RFC3986 に従って署名を URL エンコード し、
Signatureパラメーターとして付加します。
応答の理解
すべての SDK の例は、以下の構造の応答を返します。
| フィールド | 型 | 説明 |
|---|---|---|
Code | 整数 | 200 は成功を示します。その他の値は、モデレーションまたは API エラーを示します。 |
Message | 文字列 | OK、それ以外はエラーの説明。 |
RequestId | 文字列 | リクエストの一意の ID。トラブルシューティングに役立ちます。 |
Data.Result | 配列 | 検出されたリスクラベルのリスト。 |
Data.RiskLevel | 文字列 | 全体的なリスクレベル: high、medium、または low。 |
Data.Result 内の各項目には、以下が含まれます。
| フィールド | 型 | 説明 |
|---|---|---|
Label | 文字列 | リスクカテゴリ (例: political_entity、political_figure)。 |
Description | 文字列 | 検出されたリスクの人間が判読可能な説明。 |
Confidence | フロート | 検出の信頼度レベル (0 から 100)。 |
RiskWords | 文字列 | フラグが立てられた単語またはフレーズのコンマ区切りのリスト。 |
応答例:
{
"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****"
}次のステップ
Text Moderation Enhanced 2.0 Multilingual PLUS Service — すべてのサポートされているサービスとパラメーターを含む完全な API リファレンス
Text Moderation Enhanced 2.0 General Service SDK および統合ガイド — 以前に汎用サービスバージョンを統合した場合
認証情報を設定する — 本番運用向けの推奨される認証情報管理方法