本文介紹文本審核2.0版SDK接入的方式。
步驟一:開通服務
訪問開通服務頁面,開通文本審核2.0版服務。
開通文本2.0版服務後,預設付費方式是按量後付費,且按照實際用量結算當日費用,不調用服務不收費。介面接入使用後系統會按使用量自動出賬。
步驟二:為RAM使用者授權
在接入SDK或者API之前,您需要為RAM使用者授權。您可以為阿里雲帳號和RAM使用者建立一個存取金鑰(AccessKey)。在調用阿里雲API時您需要使用AccessKey完成身分識別驗證。擷取方式,請參見擷取AccessKey。
操作步驟
步驟三:安裝並接入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 | 暫無 |
倫敦 | green-cip.eu-west-1.aliyuncs.com | 暫無 |
如果需要其他語言的SDK範例程式碼,您可以通過OpenAPI開發人員門戶線上調試工具調試API介面,該工具會自動產生相應API的SDK調用範例程式碼。
阿里雲SDK代碼通過定義ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET環境變數來建立預設的訪問憑證。調用介面時,程式直接存取憑證,讀取您的存取金鑰(即AccessKey)並自動完成鑒權。您在接入SDK程式碼範例之前,請先配置環境變數。具體操作,請參見身分識別驗證配置。
文本審核增強版泛型服務
該SDK對應介面為文本審核增強版2.0版多語言服務。
Java SDK
支援Java 1.8及以上版本。
原始代碼,請參見Java SDK源碼或者Java SDK源碼(OSS路徑)。
在pom.xml中加入相應依賴,就可以在Maven工程中使用SDK。
在dependencies中添加如下依賴:
<dependency> <groupId>com.aliyun</groupId> <artifactId>green20220302</artifactId> <version>2.23.0</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(); // The leakage of code may lead to the leakage of AccessKey and security breakage of your account. The following examples are for reference only. It is recommended to use STS tokens for authorization, please refer to related documentation. // Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set. config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")); config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); // Modify region and endpoint according to your requirement. config.setRegionId("ap-southeast-1"); config.setEndpoint("green-cip.ap-southeast-1.aliyuncs.com"); // Setup read and connection timeout by ms. config.setReadTimeout(6000); config.setConnectTimeout(3000); // To improve performance, we strongly recommend you reuse client instance to avoid establishing duplicate connections. Client client = new Client(config); // Create RuntimeObject instance and set runtime parameters. RuntimeOptions runtime = new RuntimeOptions(); runtime.readTimeout = 10000; runtime.connectTimeout = 10000; // Construct service parameters. JSONObject serviceParameters = new JSONObject(); serviceParameters.put("content", "text to be detected"); if (serviceParameters.get("content") == null || serviceParameters.getString("content").trim().length() == 0) { System.out.println("text moderation content is empty"); return; } TextModerationRequest textModerationRequest = new TextModerationRequest(); // Setup service according to your requirement. textModerationRequest.setService("text moderation service"); textModerationRequest.setServiceParameters(serviceParameters.toJSONString()); try { // Method to obtain detection result. TextModerationResponse response = client.textModerationWithOptions(textModerationRequest, runtime); // Print detection result. 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.22.1接入Python 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': 'text to be detected', '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( # Setup service according to your requirement. service = 'text moderation service', service_parameters = json.dumps(service_parameters) ) # Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set. config = Config( # The leakage of code may lead to the leakage of AccessKey and security breakage of your account. The following examples are for reference only. It is recommended to use STS tokens for authorization, please refer to related documentation. access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], # Setup read and connection timeout by ms. connect_timeout=3000, read_timeout=6000, # Modify region and endpoint according to your requirement. region_id='ap-southeast-1', endpoint='green-cip.ap-southeast-1.aliyuncs.com' ) # To improve performance, we strongly recommend you reuse client instance to avoid establishing duplicate connections. client = Client(config) # Create RuntimeObject instance and set runtime parameters. 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: # Print detection result. 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
支援PHP 5.6及以上版本。
原始代碼,請參見PHP SDK源碼。
執行如下命令引入相關依賴。
composer require alibabacloud/green-20220302 2.22.1接入PHP 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(); // Setup service according to your requirement. $request->service = "text moderation service"; $arr = array('content' => 'text to be detected'); $request->serviceParameters = json_encode($arr); if (empty($arr) || empty(trim($arr["content"]))) { echo "text moderation content is empty"; return; } $config = new Config([ // The leakage of code may lead to the leakage of AccessKey and security breakage of your account. The following examples are for reference only. It is recommended to use STS tokens for authorization, please refer to related documentation. // Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set. "accessKeyId" => getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), "accessKeySecret" => getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'), // Modify region and endpoint according to your requirement. "endpoint" => "green-cip.ap-southeast-1.aliyuncs.com", "regionId" => "ap-southeast-1" ]); // To improve performance, we strongly recommend you reuse client instance to avoid establishing duplicate connections. $client = new Green($config); // Create RuntimeObject instance and set runtime parameters. $runtime = new RuntimeOptions([]); $runtime->readTimeout = 10000; $runtime->connectTimeout = 10000; try { // Method to obtain detection result. $response = $client->textModerationWithOptions($request, $runtime); // Print detection result. 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 get github.com/alibabacloud-go/green-20220302/v2@v2.22.1接入Go 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 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("text moderation service"), 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.22.1接入Node.js SDK。
程式碼範例
const RPCClient = require("@alicloud/pop-core"); async function main() { // To improve performance, we strongly recommend you reuse client instance to avoid establishing duplicate connections. var client = new RPCClient({ // The leakage of code may lead to the leakage of AccessKey and security breakage of your account. The following examples are for reference only. It is recommended to use STS tokens for authorization, please refer to related documentation. // Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set. accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'], accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], // Modify region and endpoint according to your requirement. endpoint: "https://green-cip.ap-southeast-1.aliyuncs.com", apiVersion: '2022-03-02' }); // Create RuntimeObject instance and set runtime parameters. var params = { // Setup service according to your requirement. "Service": "text moderation service", "ServiceParameters": JSON.stringify({ "content": "text to be detected", }) } 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 { // Method to obtain detection result. var response = await client.request('TextModeration', params, requestOption) // Print detection result. console.log(JSON.stringify(response)) } catch (err) { console.log(err); } } main().then(function (response) { });
C# SDK
執行如下命令引入相關依賴。
dotnet add package AlibabaCloud.SDK.Green20220302 --version 2.22.1接入C# SDK。
程式碼範例
// This file is auto-generated, don't edit it. Thanks. using Newtonsoft.Json; namespace AlibabaCloud.SDK.Green20220302 { public class TextModerationAutoRoute { public static void Main(string[] args) { // Construct text moderation request. AlibabaCloud.SDK.Green20220302.Models.TextModerationRequest textModerationRequest = new AlibabaCloud.SDK.Green20220302.Models.TextModerationRequest(); // Setup service according to your requirement. textModerationRequest.Service = "text moderation service"; Dictionary<string, object> task = new Dictionary<string, object>(); task.Add("content", "text to be detected"); if (!task.ContainsKey("content") || Convert.ToString(task["content"]).Trim() == string.Empty) { Console.WriteLine("text moderation content is empty"); return; } textModerationRequest.ServiceParameters = JsonConvert.SerializeObject(task); // The leakage of code may lead to the leakage of AccessKey and security breakage of your account. The following examples are for reference only. It is recommended to use STS tokens for authorization, please refer to related documentation. // Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set. 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"), // Modify region and endpoint according to your requirement. Endpoint = "green-cip.ap-southeast-1.aliyuncs.com", }; // To improve performance, we strongly recommend you reuse client instance to avoid establishing duplicate connections. AlibabaCloud.SDK.Green20220302.Client client = new AlibabaCloud.SDK.Green20220302.Client(config); // Create RuntimeObject instance and set runtime parameters. AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions(); runtime.ReadTimeout = 10000; runtime.ConnectTimeout = 10000; try { // Method to obtain detection result. AlibabaCloud.SDK.Green20220302.Models.TextModerationResponse response = client.TextModerationWithOptions(textModerationRequest, runtime); // Print detection result. Console.WriteLine(response.Body.RequestId); Console.WriteLine(JsonConvert.SerializeObject(response.Body)); } catch (Exception _err) { Console.WriteLine(_err); } } } }