このトピックでは、テキスト審査 2.0 SDK を統合する方法について説明します。
ステップ 1: サービスを有効化する
サービスの有効化ページでテキスト審査 2.0 サービスを有効化します。
テキスト 2.0 サービスを有効化すると、デフォルトの課金方法は従量課金になります。実際の使用量に基づいて毎日課金されます。サービスを使用しない場合は課金されません。システムは API 操作の使用状況に基づいて請求書を自動的に生成します。
ステップ 2: RAM ユーザーに権限を付与する
SDK を統合したり API 操作を呼び出したりする前に、RAM ユーザーに権限を付与する必要があります。Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ペアを作成できます。Alibaba Cloud API 操作を呼び出すときは、AccessKey ペアを使用して ID 検証を完了する必要があります。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 |
米国 (バージニア) | 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 オンラインツールを使用して API 操作をデバッグし、対応する SDK サンプルコードを自動的に生成できます。
Alibaba Cloud SDK コードでは、ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数を定義することで、デフォルトのアクセス資格情報を作成できます。Alibaba Cloud サービスの API 操作を呼び出すと、システムは資格情報に直接アクセスし、AccessKey ペアを読み取り、自動的に認証を完了します。SDK サンプルコードを使用する前に、環境変数を構成する必要があります。詳細については、「資格情報の設定」をご参照ください。
テキスト審査拡張版汎用サービス
この SDK は、テキスト審査拡張版 2.0 多言語サービスに対応しています。
Java SDK
Java 1.8 以降がサポートされています。
ソースコードについては、「Java SDK ソースコード」または「Java SDK ソースコード (OSS パス)」をご参照ください。
Maven プロジェクトで SDK を使用するには、pom.xml ファイルに次の依存関係を追加します。
dependencies セクションに次の依存関係を追加します。
<dependency> <groupId>com.aliyun</groupId> <artifactId>green20220302</artifactId> <version>2.2.11</version> </dependency>Java SDK を統合します。
サンプルコード
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.aliyun.green20220302.Client; import com.aliyun.green20220302.models.TextModerationRequest; import com.aliyun.green20220302.models.TextModerationResponse; import com.aliyun.green20220302.models.TextModerationResponseBody; import com.aliyun.teaopenapi.models.Config; import com.aliyun.teautil.models.RuntimeOptions; public class TextAutoRoute { public static void main(String[] args) throws Exception { Config config = new Config(); // ソースコードが漏洩すると、AccessKey ペアが漏洩し、すべてのリソースのセキュリティが脅かされる可能性があります。次のサンプルコードは参照用です。権限付与には Security Token Service (STS) トークンを使用してください。詳細については、関連ドキュメントをご参照ください。 // ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。 config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")); config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); // 必要に応じてリージョンとエンドポイントを変更します。 config.setRegionId("ap-southeast-1"); config.setEndpoint("green-cip.ap-southeast-1.aliyuncs.com"); // 読み取りおよび接続タイムアウト期間をミリ秒単位で設定します。 config.setReadTimeout(6000); config.setConnectTimeout(3000); // パフォーマンスを向上させるには、クライアントインスタンスを再利用して、複数の接続が作成されないようにします。 Client client = new Client(config); // RuntimeObject インスタンスを作成し、実行時パラメーターを設定します。 RuntimeOptions runtime = new RuntimeOptions(); runtime.readTimeout = 10000; runtime.connectTimeout = 10000; // サービスパラメーターを構築します。 JSONObject serviceParameters = new JSONObject(); serviceParameters.put("content", "検出対象のテキスト"); if (serviceParameters.get("content") == null || serviceParameters.getString("content").trim().length() == 0) { System.out.println("text moderation content is empty"); return; } TextModerationRequest textModerationRequest = new TextModerationRequest(); // 必要に応じてサービスを設定します。 textModerationRequest.setService("テキスト審査サービス"); textModerationRequest.setServiceParameters(serviceParameters.toJSONString()); try { // 検出結果を取得します。 TextModerationResponse response = client.textModerationWithOptions(textModerationRequest, runtime); // 検出結果を出力します。 if (response != null) { if (response.getStatusCode() == 200) { TextModerationResponseBody result = response.getBody(); System.out.println(JSON.toJSONString(result)); Integer code = result.getCode(); if (code != null && code == 200) { TextModerationResponseBody.TextModerationResponseBodyData data = result.getData(); System.out.println("labels = [" + data.getLabels() + "]"); System.out.println("reason = [" + data.getReason() + "]"); } 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 ソースコード」をご参照ください。
Python 3.6 以降がサポートされています。
次のコマンドを実行して、依存関係をインストールします。
pip install alibabacloud_green20220302==2.2.11Python SDK を統合できます。
例
# coding=utf-8 from alibabacloud_green20220302.client import Client from alibabacloud_green20220302 import models from alibabacloud_tea_openapi.models import Config from alibabacloud_tea_util.client import Client as UtilClient from alibabacloud_tea_util import models as util_models import json import uuid class TextAutoRoute: @staticmethod def main() -> None: service_parameters = { 'content': '検出対象のテキスト', 'dataId': str(uuid.uuid1()) } if service_parameters.get("content") is None or len(service_parameters.get("content").strip()) == 0: print("text moderation content is empty") return text_moderation_request = models.TextModerationRequest( # 必要に応じてサービスを設定します。 service = 'テキスト審査サービス', service_parameters = json.dumps(service_parameters) ) # ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。 config = Config( # ソースコードが漏洩すると、AccessKey ペアが漏洩し、すべてのリソースのセキュリティが脅かされる可能性があります。次のサンプルコードは参照用です。権限付与には STS トークンを使用してください。詳細については、関連ドキュメントをご参照ください。 access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], # 読み取りおよび接続タイムアウト期間をミリ秒単位で設定します。 connect_timeout=3000, read_timeout=6000, # 必要に応じてリージョンとエンドポイントを変更します。 region_id='ap-southeast-1', endpoint='green-cip.ap-southeast-1.aliyuncs.com' ) # パフォーマンスを向上させるには、クライアントインスタンスを再利用して、複数の接続が作成されないようにします。 client = Client(config) # RuntimeObject インスタンスを作成し、実行時パラメーターを設定します。 runtime = util_models.RuntimeOptions() runtime.read_timeout = 10000 runtime.connect_timeout = 10000 try: response = client.text_moderation_with_options(text_moderation_request, runtime) if response.status_code == 200: # 検出結果を出力します。 result = response.body print('response success. result:{}'.format(result)) if result.code == 200: resultData = result.data print('labels:{}, reason:{}'.format(resultData.labels, resultData.reason)) else: print('response not success. status:{} ,result:{}'.format(response.status_code, response)) except Exception as err: print(err) if __name__ == '__main__': TextAutoRoute.main()
PHP SDK
この SDK は PHP 5.6 以降をサポートしています。
ソースコードについては、「PHP SDK ソースコード」をご参照ください。
次のコマンドを実行して、依存関係をインポートします。
composer require alibabacloud/green-20220302 2.2.10PHP SDK を統合します。
サンプルコード
<?php require('vendor/autoload.php'); use AlibabaCloud\Tea\Utils\Utils; use Darabonba\OpenApi\Models\Config; use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions; use AlibabaCloud\SDK\Green\V20220302\Green; use AlibabaCloud\SDK\Green\V20220302\Models\TextModerationRequest; $request = new TextModerationRequest(); // 必要に応じてサービスを設定します。 $request->service = "テキスト審査サービス"; $arr = array('content' => '検出対象のテキスト'); $request->serviceParameters = json_encode($arr); if (empty($arr) || empty(trim($arr["content"]))) { echo "text moderation content is empty"; return; } $config = new Config([ // ソースコードが漏洩すると、AccessKey ペアが漏洩し、すべてのリソースのセキュリティが脅かされる可能性があります。次のサンプルコードは参照用です。権限付与には STS トークンを使用してください。詳細については、関連ドキュメントをご参照ください。 // ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。 "accessKeyId" => getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), "accessKeySecret" => getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'), // 必要に応じてリージョンとエンドポイントを変更します。 "endpoint" => "green-cip.ap-southeast-1.aliyuncs.com", "regionId" => "ap-southeast-1" ]); // パフォーマンスを向上させるには、クライアントインスタンスを再利用して、複数の接続が作成されないようにします。 $client = new Green($config); // RuntimeObject インスタンスを作成し、実行時パラメーターを設定します。 $runtime = new RuntimeOptions([]); $runtime->readTimeout = 10000; $runtime->connectTimeout = 10000; try { // 検出結果を取得します。 $response = $client->textModerationWithOptions($request, $runtime); // 検出結果を出力します。 print_r($response->body); } catch (Exception $e) { var_dump($e->getMessage()); var_dump($e->getErrorInfo()); var_dump($e->getLastException()); var_dump($e->getLastRequest()); }
Go SDK
次のコマンドを実行して、依存関係をインポートします。
go git clone --branch v2.2.11 github.com/alibabacloud-go/green-20220302/v2Go SDK を統合します。
サンプルコード
package main import ( "encoding/json" "fmt" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" green "github.com/alibabacloud-go/green-20220302/v2/client" "github.com/alibabacloud-go/tea/tea" "net/http" ) func main() { config := &openapi.Config{ // お客様の AccessKey ID。 AccessKeyId: tea.String("環境変数から RAM ユーザーの AccessKey ID を取得します"), // お客様の AccessKey Secret。 AccessKeySecret: tea.String("環境変数から RAM ユーザーの AccessKey Secret を取得します"), // アクセスするエンドポイント。 Endpoint: tea.String("green-cip.ap-southeast-1.aliyuncs.com"), /** * タイムアウト期間を設定します。サーバー側のエンドツーエンドの処理タイムアウト期間は 10 秒です。それに応じてタイムアウト期間を設定してください。 * ReadTimeout パラメーターをサーバー側の処理に必要な時間よりも短い値に設定すると、プログラムは ReadTimeout 例外を受け取ります。 */ ConnectTimeout: tea.Int(3000), ReadTimeout: tea.Int(6000), } client, _err := green.NewClient(config) if _err != nil { panic(_err) } serviceParameters, _ := json.Marshal( map[string]interface{}{ "content": "審査対象のテキスト", }, ) request := green.TextModerationRequest{ Service: tea.String("テキスト審査サービス"), ServiceParameters: tea.String(string(serviceParameters)), } result, _err := client.TextModeration(&request) if _err != nil { panic(_err) } statusCode := tea.IntValue(tea.ToInt(result.StatusCode)) if statusCode == http.StatusOK { textModerationResponse := result.Body fmt.Println("response success. response:" + textModerationResponse.String()) if tea.IntValue(tea.ToInt(textModerationResponse.Code)) == 200 { textModerationResponseData := textModerationResponse.Data fmt.Println("response reason:" + tea.StringValue(textModerationResponseData.Reason)) fmt.Println("response labels:" + tea.StringValue(textModerationResponseData.Labels)) } } else { fmt.Println("response not success. status:" + tea.ToString(statusCode)) } }
Node.js SDK
次のコマンドを実行して、依存関係をインストールします。
npm install @alicloud/green20220302@2.2.10Node.js SDK を統合します。
サンプルコード
const RPCClient = require("@alicloud/pop-core"); async function main() { // パフォーマンスを向上させるには、クライアントインスタンスを再利用して、複数の接続が作成されないようにします。 var client = new RPCClient({ // ソースコードが漏洩すると、AccessKey ペアが漏洩し、すべてのリソースのセキュリティが脅かされる可能性があります。次のサンプルコードは参照用です。権限付与には STS トークンを使用してください。詳細については、関連ドキュメントをご参照ください。 // ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。 accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'], accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], // 必要に応じてリージョンとエンドポイントを変更します。 endpoint: "https://green-cip.ap-southeast-1.aliyuncs.com", apiVersion: '2022-03-02' }); // RuntimeObject インスタンスを作成し、実行時パラメーターを設定します。 var params = { // 必要に応じてサービスを設定します。 "Service": "テキスト審査サービス", "ServiceParameters": JSON.stringify({ "content": "検出対象のテキスト", }) } var serviceParameters = JSON.parse(params.ServiceParameters); if (!serviceParameters.hasOwnProperty("content") || serviceParameters.content.trim().length === 0) { console.log("text moderation content is empty") return; } var requestOption = { method: 'POST', formatParams: false, }; try { // 検出結果を取得します。 var response = await client.request('TextModeration', params, requestOption) // 検出結果を出力します。 console.log(JSON.stringify(response)) } catch (err) { console.log(err); } } main().then(function (response) { });
C# SDK
次のコマンドを実行して、依存関係をインポートできます。
dotnet add package AlibabaCloud.SDK.Green20220302 --version 2.2.10C# SDK を統合できます。
サンプルコード
// このファイルは自動生成されたものです。編集しないでください。ありがとうございます。 using Newtonsoft.Json; namespace AlibabaCloud.SDK.Green20220302 { public class TextModerationAutoRoute { public static void Main(string[] args) { // テキスト審査リクエストを構築します。 AlibabaCloud.SDK.Green20220302.Models.TextModerationRequest textModerationRequest = new AlibabaCloud.SDK.Green20220302.Models.TextModerationRequest(); // 必要に応じてサービスを設定します。 textModerationRequest.Service = "テキスト審査サービス"; Dictionary<string, object> task = new Dictionary<string, object>(); task.Add("content", "検出対象のテキスト"); if (!task.ContainsKey("content") || Convert.ToString(task["content"]).Trim() == string.Empty) { Console.WriteLine("text moderation content is empty"); return; } textModerationRequest.ServiceParameters = JsonConvert.SerializeObject(task); // ソースコードが漏洩すると、AccessKey ペアが漏洩し、すべてのリソースのセキュリティが脅かされる可能性があります。次のサンプルコードは参照用です。権限付与には STS トークンを使用してください。詳細については、関連ドキュメントをご参照ください。 // ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。 AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config { AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"), AccessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"), // 必要に応じてリージョンとエンドポイントを変更します。 Endpoint = "green-cip.ap-southeast-1.aliyuncs.com", }; // パフォーマンスを向上させるには、クライアントインスタンスを再利用して、複数の接続が作成されないようにします。 AlibabaCloud.SDK.Green20220302.Client client = new AlibabaCloud.SDK.Green20220302.Client(config); // RuntimeObject インスタンスを作成し、実行時パラメーターを設定します。 AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions(); runtime.ReadTimeout = 10000; runtime.ConnectTimeout = 10000; try { // 検出結果を取得します。 AlibabaCloud.SDK.Green20220302.Models.TextModerationResponse response = client.TextModerationWithOptions(textModerationRequest, runtime); // 検出結果を出力します。 Console.WriteLine(response.Body.RequestId); Console.WriteLine(JsonConvert.SerializeObject(response.Body)); } catch (Exception _err) { Console.WriteLine(_err); } } } }