このトピックでは、Text Moderation 2.0 PLUS サービス SDK の統合方法について説明します。
ステップ 1:サービスの有効化
サービスの有効化 ページにアクセスして、Text Moderation 2.0 サービスを有効化します。
Text Moderation 2.0 サービスを有効化すると、デフォルトの課金方法は従量課金になります。ご利用状況に応じて日次で課金されます。サービスをご利用にならない場合は、課金されません。API の利用を開始すると、システムが自動的にご利用分を請求します。
ステップ 2:RAM ユーザーへの権限付与
SDK を統合するか API を呼び出す前に、RAM ユーザーに権限を付与する必要があります。Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey を作成できます。Alibaba Cloud API を呼び出す際には、AccessKey を使用してご自身の ID を認証します。詳細については、「AccessKey の取得」をご参照ください。
RAM ユーザーへの権限付与
Alibaba Cloud アカウントを使用して、RAM コンソールにログインします。
RAM ユーザーを作成します。詳細については、「RAM ユーザーの作成」をご参照ください。
RAM ユーザーに、
AliyunYundunGreenWebFullAccessシステムポリシーを付与します。このポリシーにより、Content Moderation へのフルアクセス権限が付与されます。詳細については、「RAM ユーザーへの権限付与」をご参照ください。これにより、RAM ユーザーは Content Moderation API を呼び出せるようになります。
ステップ 3:SDK の統合
以下のリージョンがサポートされています。
リージョン | パブリックエンドポイント | VPC エンドポイント | サービス |
中国 (上海) | green-cip.cn-shanghai.aliyuncs.com | green-cip-vpc.cn-shanghai.aliyuncs.com | 、 |
中国 (北京) | green-cip.cn-beijing.aliyuncs.com | green-cip-vpc.cn-beijing.aliyuncs.com | |
中国 (杭州) | green-cip.cn-hangzhou.aliyuncs.com | green-cip-vpc.cn-hangzhou.aliyuncs.com | |
中国 (深セン) | green-cip.cn-shenzhen.aliyuncs.com | green-cip-vpc.cn-shenzhen.aliyuncs.com | |
中国 (成都) | green-cip.cn-chengdu.aliyuncs.com | 利用不可 | |
中国 (香港) | green-cip.cn-hongkong.aliyuncs.com | green-cip-vpc.cn-hongkong.aliyuncs.com |
|
シンガポール | 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 | green-cip-vpc.eu-central-1.aliyuncs.com |
さまざまなプログラミング言語の SDK サンプルコードを取得するには、OpenAPI Explorer オンラインデバッグツールをご利用ください。デバッグ中に API のサンプルコードが自動生成されます。
Alibaba Cloud SDK は、環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET を読み取ることで、デフォルトの認証情報を自動的に作成します。API オペレーションを呼び出す際、プログラムはこれらの変数から AccessKey を読み取り、自動的に認証を完了します。SDK サンプルコードを使用する前に、環境変数を構成する必要があります。詳細については、「認証情報の構成」をご参照ください。
SDK には 2 つのバージョンがあります。このページで説明している PLUS サービスの統合を推奨します。すでに一般サービスを統合済みの場合は、「Text Moderation Enhanced 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>3.2.3</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 に対するフルアクセス権限が付与されるためです。
* AccessKey 漏洩によるセキュリティリスクを防ぐため、コード内に AccessKey ID および AccessKey Secret をハードコードしないでください。
* API アクセスや日常的な運用管理 (O&M) には、RAM ユーザーの使用を推奨します。
* 環境変数を取得する一般的な方法:
* 方法 1:
* RAM ユーザーの AccessKey ID を取得: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* RAM ユーザーの AccessKey Secret を取得: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
* 方法 2:
* RAM ユーザーの AccessKey ID を取得: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
* RAM ユーザーの AccessKey Secret を取得: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
config.setAccessKeyId("Python SDK
Python 3.6 以降をサポートしています。
ソースコードについては、「Python SDK ソースコード」をご参照ください。
1. 以下のコマンドを実行して依存関係をインストールします。
pip install alibabacloud_green20220302==3.2.32. 以下は 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 に対するフルアクセス権限が付与されるためです。
# AccessKey 漏洩によるセキュリティリスクを防ぐため、コード内に AccessKey ID および AccessKey Secret をハードコードしないでください。
# 環境変数から認証情報を取得することを推奨します。例:
# RAM ユーザーの AccessKey ID を取得: os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
# RAM ユーザーの AccessKey Secret を取得: os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
access_key_id='PHP SDK
PHP 5.6 以降をサポートしています。
ソースコードについては、「PHP SDK ソースコード」をご参照ください。
1. 以下のコマンドを実行して依存関係をインストールします。
composer require alibabacloud/green-20220302 3.2.32. 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 に対するフルアクセス権限が付与されるためです。
* AccessKey 漏洩によるセキュリティリスクを防ぐため、コード内に AccessKey ID および AccessKey Secret をハードコードしないでください。
* 環境変数から認証情報を取得することを推奨します。例:
* RAM ユーザーの AccessKey ID を取得: getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* RAM ユーザーの AccessKey Secret を取得: getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
"accessKeyId" => 'Go SDK
1. 以下のコマンドを実行して依存関係をインストールします。
go get github.com/alibabacloud-go/green-20220302/v32. 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() {
// コード内に AccessKey ペアをハードコードすると、AccessKey 漏洩の可能性があり、セキュリティリスクが生じます。認証には STS などのより安全な方法の使用を推奨します。
config := &openapi.Config{
/**
* Alibaba Cloud アカウントの AccessKey ペアを使用するのは高リスク操作です。すべての API に対するフルアクセス権限が付与されるためです。
* AccessKey 漏洩によるセキュリティリスクを防ぐため、コード内に AccessKey ID および AccessKey Secret をハードコードしないでください。
* 環境変数から認証情報を取得することを推奨します。例:
* RAM ユーザーの AccessKey ID を取得: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
* RAM ユーザーの AccessKey Secret を取得: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
AccessKeyId: tea.String("Node.js SDK
ソースコードについては、「Node.js SDK ソースコード」をご参照ください。
1. 以下のコマンドを実行して依存関係をインストールします。
npm install @alicloud/green20220302@3.2.32. Node.js SDK のコードサンプルを以下に示します。
const Green20220302 = require('@alicloud/green20220302');
const OpenApi = require('@alicloud/openapi-client');
const Util = require('@alicloud/tea-util');
// 注意: パフォーマンスを向上させ、各リクエストで新しい接続を作成しないようにするため、クライアントオブジェクトを再利用してください。
// コード内に AccessKey ペアをハードコードすると、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({
// テキストモデレーション 2.0 PLUS のサービス。詳細については、https://www.alibabacloud.com/help/document_detail/2684669.html#p-t7m-66g-cv6 をご参照ください。
"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# SDK
ソースコードについては、「C# SDK ソースコード」をご参照ください。
1. 以下のコマンドを実行して依存関係をインストールします。
dotnet add package AlibabaCloud.SDK.Green20220302 --version 3.2.32. C# SDK のコードサンプルを以下に示します。
// このファイルは自動生成されたものです。編集しないでください。ありがとうございます。
using Newtonsoft.Json;
namespace AlibabaCloud.SDK.Green20220302
{
public class TextModerationPlusAutoRoute
{
public static void Main(string[] args)
{
/**
* Alibaba Cloud アカウントの AccessKey ペアを使用するのは高リスク操作です。すべての API に対するフルアクセス権限が付与されるためです。
* AccessKey 漏洩によるセキュリティリスクを防ぐため、コード内に AccessKey ID および AccessKey Secret をハードコードしないでください。
* 環境変数から認証情報を取得することを推奨します。例:
* RAM ユーザーの AccessKey ID を取得: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID")
* RAM ユーザーの AccessKey Secret を取得: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
String accessKeyId = "ネイティブ HTTPS 呼び出し
Content Moderation 2.0 API サービスは、ネイティブ HTTPS 呼び出しにも対応しています。この方法では、リクエスト署名およびリクエストの組み立て(URL、本文、ヘッダー、パラメーターを含む)を自分で処理する必要があります。ネイティブ HTTPS 呼び出しは、以下のシナリオでのみ使用してください。それ以外の場合は、SDK の使用を推奨します。
アプリケーションにクライアント側のサイズ制限が厳しい場合。
アプリケーションの依存関係ライブラリ要件が SDK と競合する場合。
呼び出し規則
サービスエンドポイント: https://green-cip.{region}.aliyuncs.com
プロトコル: HTTPS
メソッド: POST
共通リクエストパラメーター
テキストモデレーション 2.0 API オペレーションのリクエストパラメーターには、共通リクエストパラメーターとオペレーション固有のリクエストパラメーターが含まれます。共通リクエストパラメーターは、すべての API オペレーションで使用されます。以下の表に、共通リクエストパラメーターを示します。
パラメーター
型
必須
説明
Format
String
はい
レスポンスのフォーマット。有効な値:
JSON (デフォルト)
XML
Version
String
はい
API オペレーションのバージョン。バージョンは YYYY-MM-DD 形式です。この 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 + 08:00) を表します。
SignatureVersion
String
はい
署名アルゴリズムのバージョン。値を 1.0 に設定します。
SignatureNonce
String
はい
リプレイ攻撃を防ぐための一意の乱数 (nonce)。各リクエストで新しい nonce を使用する必要があります。
Action
String
はい
テキストモデレーション 2.0 PLUS サービスの API オペレーション: TextModerationPlus
共通レスポンスパラメーター
各 API リクエストには、成功の有無に関係なく、一意のリクエスト ID (RequestId) が返されます。その他のレスポンスパラメーターには、Label および Confidence が含まれます。サービスによって返されるパラメーターは異なります。詳細については、該当するサービスのドキュメントをご参照ください。
コードサンプル
以下のレスポンスサンプルは、読みやすさのために整形されています。実際のレスポンスには改行やインデントは含まれません。
以下のコードは、テキストモデレーション 2.0-国際ビジネス多言語検出 のリクエストサンプルを提供します。その他の 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=text_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 Secret を使用して対称暗号化を行い、リクエスト送信者の ID を検証します。
AccessKey ID および AccessKey Secret は Alibaba Cloud が発行します。Alibaba Cloud Web サイトで申請および管理できます。AccessKey ID はユーザーを識別するために使用されます。AccessKey Secret は、署名文字列を暗号化し、サーバー上で署名文字列を検証するためのキーです。AccessKey Secret は秘密にしてください。
リクエストに署名するには、以下の手順に従います。
正規化されたクエリ文字列を構築します。
Signature パラメーターを除き、すべてのリクエストパラメーター(共通およびオペレーション固有の両方)を、名前のアルファベット順に並べ替えます。
リクエストパラメーターの名前と値を UTF-8 で URL エンコードします。
説明Java の
java.net.URLEncoderなど、ほとんどの URL エンコーディングライブラリは、application/x-www-form-urlencodedMIME タイプのルールに基づいて文字列をエンコードします。この方法でエンコードした後、プラス記号 (+) を %20 に、アスタリスク (*) を %2A に、%7E をチルダ (~) に置き換えることで、必要なエンコード済み文字列を取得できます。URL エンコーディングルールは次のとおりです。
大文字 (A~Z)、小文字 (a~z)、数字 (0~9)、およびハイフン (-)、アンダースコア (_)、ピリオド (.)、チルダ (~) はエンコードしません。
その他の文字は、
%XYの形式でエンコードします。ここで XY は、その文字の ASCII コードの 16 進数表現です。たとえば、英語の二重引用符 (") は%22としてエンコードされます。拡張 UTF-8 文字は、
%XY%ZA…としてエンコードされます。スペース文字 ( ) は、プラス記号 (+) ではなく
%20としてエンコードする必要があることに注意してください。
各エンコード済みパラメーター名を、そのエンコード済み値と等号 (=) で接続します。
並べ替えたパラメーター名の順序に従って、結果の名前と値のペアをアンパサンド (&) で連結し、正規化されたクエリ文字列を取得します。
前のステップで取得した正規化されたクエリ文字列を使用して、以下のルールに基づいて署名対象文字列を構築します。
StringToSign= HTTPMethod + "&" + percentEncode("/") + "&" + percentEncode(CanonicalizedQueryString)説明HTTPMethod は、リクエストを送信するために使用する HTTP メソッド(例: POST)です。percentEncode(/) は、セクション a.ii で説明した URL エンコーディングルールに従って / 文字をエンコードした値、つまり
%2Fです。percentEncode(CanonicalizedQueryString) は、セクション a.i で構築した正規化されたクエリ文字列を、セクション a.ii で説明した URL エンコーディングルールに従ってエンコードした文字列です。RFC 2104 で定義されているとおり、署名対象文字列の HMAC 値を計算します。
説明署名を計算する際に使用するキーは、AccessKey Secret の後に
&文字 (ASCII:38) を付けたものであり、ハッシュ化アルゴリズムは SHA1 です。HMAC 値を Base64 エンコードして、署名を取得します。
得られた署名を、
Signatureパラメーターとしてリクエストに追加します。説明Content Moderation サーバーに署名を送信する際は、RFC 3986 に従って、他のパラメーターとともに URL エンコードする必要があります。