Text Moderation 2.0 は、ユーザーが生成したテキストを、言語の指定なしに自動検出することで、38 言語にわたってモデレーションを行います。Text Moderation 1.0(18 言語をサポートし、言語を手動で指定する必要があり、単一のモデレーションモデルを使用)と比較して、Text Moderation 2.0 では、各言語および地域の特性に最適化された複数のモデルを採用しています。また、国際ビジネス向けに調整された個別のモデレーションポリシーを適用し、検出されたリスクコンテンツの英語訳を返すことで手動レビューを支援するとともに、1 回のリクエストで複数のリスクラベルをサポートします。
仕組み
comment_multilingual_global サービスにテキストを送信します。Text Moderation 2.0 は、言語を自動検出し、適切なモデレーションモデルを適用して、以下の情報を返します。
1 つ以上のリスクラベル(例:
violence、profanity)詳細な分類のためのサブカテゴリラベル(
riskTips)リスクレベル(
high、medium、またはlow)および推奨される対応方法検出された言語コード
手動レビューを支援するためのコンテンツの英語訳
サポート言語
テキストを送信する際に言語コードを指定する必要はありません。Text Moderation 2.0 が言語を自動検出し、適切なモデレーションモデルを適用します。
Text Moderation 2.0 は 38 言語をサポートします。
| 言語タイプ | 名称 | 言語コード |
|---|---|---|
| 英語 | English | en |
| 簡体字中国語 | Chinese | zh |
| 繁体字中国語 | Traditional Chinese | zh-tw |
| インドネシア語 | Indonesian | id |
| マレー語 | Malay | ms |
| タイ語 | Thai | th |
| ベトナム語 | Vietnamese | vi |
| タガログ語 | Tagalog | tl |
| ヒンディー語 | Hindi | hi |
| アラビア語 | Arabic | ar |
| トルコ語 | Turkish | tr |
| フランス語 | French | fr |
| ドイツ語 | German | de |
| ロシア語 | Russian | ru |
| ポルトガル語 | Portuguese | pt |
| スペイン語 | Spanish | es |
| イタリア語 | Italian | it |
| オランダ語 | Dutch | nl |
| ポーランド語 | Polish | pl |
| 日本語 | Japanese | ja |
| 韓国語 | Korean | ko |
| ウルドゥー語 | Urdu | ur |
| ウイグル語 | Uighur | ug |
| ベンガル語 | Bengali | bn |
| ペルシャ語 | Persian | fa |
| スウェーデン語 | Swedish | sv |
| デンマーク語 | Danish | da |
| ノルウェー語 | Norwegian | no |
| アイスランド語 | Icelandic | is |
| フィンランド語 | Finnish | fi |
| ベラルーシ語 | Belarusian | be |
| リトアニア語 | Lithuanian | lt |
| チェコ語 | Czech | cs |
| スロバキア語 | Slovak | sk |
| ハンガリー語 | Hungarian | hu |
| ギリシャ語 | Modern Greek | el |
| ルーマニア語 | Romanian | ro |
| アイルランド語 | Irish | ga |
国際化ラベル
Text Moderation 2.0 は、グローバルビジネス向けに設計された国際化ラベルシステムを使用します。コンテンツに複数のリスクタイプが含まれる場合、サービスは複数のラベルを同時に返します。2.0
レベル 1 ラベル
| ラベル | 説明 |
|---|---|
violence | 暴力 |
contraband | 違法物品 |
sexuality | ポルノグラフィ |
profanity | 不適切な言葉・嫌がらせ |
pullinTraffic | 広告コンテンツ |
regional | 地域的敵意 |
C_customized | カスタムライブラリとの一致 |
サブカテゴリラベル
サブカテゴリラベル(riskTips)は、xxx_yyy 形式でより細かい分類を提供します。たとえば、contraband_Drugs は、違法物品の内容が薬物に特化していることを示します。
リスクレベル
riskLevel フィールドは、検出されたコンテンツの深刻度および推奨される対応を示します。
| リスクレベル | ビジネス上の意味 | 推奨される対応 |
|---|---|---|
high | コンテンツが明確に有害であり、ポリシーに違反している | コンテンツを直ちにブロックまたは削除する |
medium | コンテンツがポリシーに違反する可能性があり、人的判断が必要 | 手動レビューへルーティングする |
low | コンテンツには弱いリスク信号が見られるが、単独では対応を要しない可能性がある | よりリスクの高いコンテンツが検出された際に対応する |
リスクが検出されなかったコンテンツについては、Labels フィールドが空になります — ご利用のビジネス要件に応じて対応してください。
課金
Text Moderation 2.0 は従量課金方式を採用しています。成功したリクエスト(HTTP ステータスコード 200)のみが課金対象となります。サービスが呼び出されない場合は課金されません。
| モデレーションタイプ 2.0 | サービス | 単価 |
|---|---|---|
高度なテキストモデレーション(text_standard) | グローバルビジネスシナリオ向けの多言語検出:comment_multilingual_global | 1,000 回の呼び出しにつき 0.30 USD |
高度なテキストモデレーション(text_advanced) | comment_multilingual_global | 1,000 回の呼び出しにつき 0.3 USD |
クイックスタート
ステップ 1:サービスの有効化
サービス有効化2.0 ページを開き、Text Moderation 2.0 を有効化します。有効化後、デフォルトの課金方法は従量課金となります。
ステップ 2:RAM ユーザーへの権限付与
Resource Access Management (RAM) ユーザーとして API オペレーションを呼び出す前に、該当ユーザーに必要な権限を付与してください。
RAM コンソール に RAM 管理者としてログインします。
RAM ユーザーを作成します。詳細については、「RAM ユーザーの作成」をご参照ください。
RAM ユーザーに
AliyunYundunGreenWebFullAccessシステムポリシーを付与します。詳細については、「RAM ユーザーに権限を付与する」をご参照ください。
これらの手順を完了すると、RAM ユーザーは Content Moderation API を呼び出せるようになります。API 呼び出しの認証を行うには、RAM ユーザーに対して AccessKey ペアを作成し、各リクエストに含めてください。詳細については、「AccessKey ペアの取得」をご参照ください。
ステップ 3:SDK のインストールと API の呼び出し
以下の表に、サポートされているリージョンおよびそのエンドポイントを示します。SDK のインストール手順および使用例については、「Text Moderation 2.0 SDK および使用ガイド」をご参照ください。
| リージョン | パブリックエンドポイント | 内部エンドポイント |
|---|---|---|
| シンガポール | 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 を使用してください。OpenAPI Explorer は、各サポート対象 SDK について動的にサンプルコードを生成します。
API リファレンス
注意事項
サービスエンドポイント:https://green-cip.{region}.aliyuncs.com
TextModeration オペレーションを呼び出して、テキストモデレーションタスクを送信します。HTTP リクエストの構築方法については、「リクエスト構文」をご参照ください。
課金: HTTP ステータスコード 200 を返すリクエストのみが課金対象となります。
QPS 制限: アカウントあたり 1 秒間に 100 回の呼び出しに制限されます。この制限を超えると速度制限が発生します。
リクエストパラメーター
| パラメーター | 型 | 必須 | 例 | 説明 |
|---|---|---|---|---|
Service | String | はい | comment_multilingual_global | モデレーションサービスの種類。有効な値:comment_multilingual_global(国際ビジネス向けの多言語モデレーション) |
ServiceParameters | JSONString | はい | — | JSON 文字列形式のモデレーションパラメーター。下記の表をご参照ください。 |
ServiceParameters のフィールド
| パラメーター | 型 | 必須 | 例 | 説明 |
|---|---|---|---|---|
content | String | はい | モデレーション対象のコンテンツ | モデレーション対象のテキスト。最大長:600 文字。 |
accountId | String | いいえ | 10123**** | アカウントを一意に識別するアカウント ID。指定した場合、レスポンスに含まれます。 |
deviceId | String | いいえ | 20240307**** | デバイスを一意に識別するデバイス ID。指定した場合、レスポンスに含まれます。 |
deviceToken | String | いいえ | MzQvo1d7scyZ3tl_RcJ****** | リスク管理 SDK から取得したデバイストークン。 |
レスポンスパラメーター
| パラメーター | 型 | 例 | 説明 |
|---|---|---|---|
Code | Integer | 200 | HTTP ステータスコード。詳細については、「エラーコード」をご参照ください。 |
Data | JSONObject | — | モデレーション結果。下記の表をご参照ください。 |
Message | String | OK | レスポンスメッセージ。 |
RequestId | String | AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE**** | リクエスト ID。 |
Data オブジェクトのフィールド
| パラメーター | 型 | 例 | 説明 |
|---|---|---|---|
Labels | String | sexuality,profanity | 検出されたリスクラベル(カンマ区切り)。リスクが検出されない場合は空。 |
Reason | String | {"riskLevel":"high",...} | 検出されたリスクに関する詳細を含む JSON 文字列。下記のフィールドをご参照ください。 |
AccountId | String | 10123**** | accountId をリクエストで指定した場合に返されます。 |
DeviceId | String | 20240307**** | deviceId をリクエストで指定した場合に返されます。 |
Reason JSON のフィールド
| フィールド | 説明 |
|---|---|
riskLevel | リスクレベル:high、medium、または low。「リスクレベル」をご参照ください。 |
riskTips | サブカテゴリラベル(例:sexuality_Suggestive)。 |
riskWords | コンテンツ内で検出されたリスクのある単語。 |
customizedWords | カスタムライブラリと一致した単語。 |
customizedLibs | 一致したカスタムライブラリ。 |
detectedLanguage | 検出された言語コード(例:en、ar)。 |
translatedContent | モデレーション対象のコンテンツの英語訳(手動レビューを支援)。 |
例
すべての例では comment_multilingual_global サービスを使用します。accountId は実際のアカウント ID に置き換えてください。
リクエスト
{
"Service": "comment_multilingual_global",
"ServiceParameters": {
"content": "testing content",
"accountId": "10123****",
"dataId": "text0424****"
}
}レスポンス:カスタムライブラリとリスクのある単語の両方が検出された場合
{
"Code": 200,
"Data": {
"Labels": "C_customized,profanity",
"Reason": "{\"riskLevel\":\"high\",\"customizedWords\":\"HXXXXX\",\"detectedLanguage\":\"en\",\"riskTips\":\"sexuality_Suggestive\",\"riskWords\":\"pxxxxy\",\"translatedContent\":\"pxxxxy sxxxx,HXXXXX\",\"customizedLibs\":\"ZXXXXX\"}"
},
"Message": "OK",
"RequestId": "AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****"
}応答: カスタムライブラリのみ
{
"Code": 200,
"Data": {
"Labels": "C_customized",
"Reason": "{\"riskLevel\":\"high\",\"customizedWords\":\"HXXXXX\",\"detectedLanguage\":\"en\",\"translatedContent\":\"HXXXXX\",\"customizedLibs\":\"ZXXXXX\"}"
},
"Message": "OK",
"RequestId": "AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****"
}レスポンス:リスクのある単語のみ検出された場合
{
"Code": 200,
"Data": {
"Labels": "sexuality",
"Reason": "{\"riskLevel\":\"high\",\"detectedLanguage\":\"ar\",\"riskTips\":\"sexuality_Suggestive\",\"riskWords\":\"pxxxxy\",\"translatedContent\":\"pxxxxy sxxxx\"}"
},
"Message": "OK",
"RequestId": "AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****"
}応答: リスクが検出されませんでした
{
"Code": 200,
"Data": {
"Labels": "",
"Reason": "{\"detectedLanguage\":\"en\",\"translatedContent\":\"AXXXXXX\"}"
},
"Message": "OK",
"RequestId": "AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****"
}エラーコード
| HTTP ステータスコード | エラーコード | 説明 |
|---|---|---|
| 200 | OK | リクエストが成功しました。 |
| 400 | BAD_REQUEST | 無効なリクエストです。リクエストパラメーターをご確認ください。 |
| 407 | NOT_SUPPORT | 言語が特定できなかったか、サポートされていません。 |
| 408 | PERMISSION_DENY | アカウントが承認されていない、支払いが滞っている、有効化されていない、または禁止されています。 |
| 500 | GENERAL_ERROR | 一時的なサーバーエラーです。リクエストを再試行してください。エラーが継続する場合は、「チケットを送信」してください。 |
| 581 | TIMEOUT | リクエストがタイムアウトしました。リクエストを再試行してください。エラーが継続する場合は、「チケットを送信」してください。 |
| 588 | EXCEED_QUOTA | QPS 制限を超えました。 |
次のステップ
Text Moderation 2.0 SDK および使用ガイド — SDK のインストールおよび完全な API リファレンス
OpenAPI Explorer — SDK サンプルを生成するインタラクティブな API コンソール