本文介绍文本审核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>3.0.1</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==3.0.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 3.0.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/v3接入Go SDK。
代码示例
package main import ( "encoding/json" "fmt" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" green "github.com/alibabacloud-go/green-20220302/v3/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@3.0.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 3.0.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); } } } }