本文介绍文本审核增强版SDK接入的方式。
步骤一:开通服务
访问开通服务页面,开通文本审核增强版服务。
开通文本增强版服务后,默认付费方式是按量后付费,且按照实际用量结算当日费用,不调用服务不收费。接口接入使用后系统会按使用量自动出账。您也可以购买按量抵扣资源包,资源包相较于后付费存在一定阶梯折扣,适合使用量级可预期和较大的用户。
步骤二:为RAM用户授权
在接入SDK或者API之前,您需要为RAM用户授权。您可以为阿里云账号和RAM用户创建一个访问密钥(AccessKey)。在调用阿里云API时您需要使用AccessKey完成身份验证。获取方式,请参见获取AccessKey。
步骤三:安装并接入SDK
目前支持的接入地域如下:
地域 | 外网接入地址 | 内网接入地址 |
---|---|---|
华东2(上海) | green-cip.cn-shanghai.aliyuncs.com | green-cip-vpc.cn-shanghai.aliyuncs.com |
华北2(北京) | green-cip.cn-beijing.aliyuncs.com | green-cip-vpc.cn-beijing.aliyuncs.com |
华南1(深圳) | green-cip.cn-shenzhen.aliyuncs.com | 暂无 |
新加坡 | green-cip.ap-southeast-1.aliyuncs.com | green-cip-vpc.ap-southeast-1.aliyuncs.com |
说明 如果需要其他语言的SDK示例代码,您可以通过OpenAPI开发者门户在线调试工具调试API接口,该工具会自动生成相应API的SDK调用示例代码。
Java SDK
在pom.xml中加入相应依赖,就可以在Maven工程中使用SDK。
- 在dependencies中添加如下依赖:
<dependency> <groupId>com.aliyun</groupId> <artifactId>green20220302</artifactId> <version>1.0.3</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(); config.setAccessKeyId("< Your Access ID>"); config.setAccessKeySecret("< Your Access Secret>"); //接入区域和地址请根据实际情况修改 config.setRegionId("cn-shanghai"); config.setEndpoint("green-cip.cn-shanghai.aliyuncs.com"); //连接时超时时间,单位毫秒(ms)。 config.setReadTimeout(6000); //读取时超时时间,单位毫秒(ms)。 config.setConnectTimeout(3000); //设置http代理。 //config.setHttpProxy("http://10.10.xx.xx:xxxx"); //设置https代理。 //config.setHttpsProxy("https://10.10.xx.xx:xxxx"); // 注意,此处实例化的client请尽可能重复使用,避免重复建立连接,提升检测性能 Client client = new Client(config); // 创建RuntimeObject实例并设置运行参数。 RuntimeOptions runtime = new RuntimeOptions(); runtime.readTimeout = 10000; runtime.connectTimeout = 10000; //检测参数构造 JSONObject serviceParameters = new JSONObject(); serviceParameters.put("content", "< input text >"); if (serviceParameters.get("content") == null || serviceParameters.getString("content").trim().length() == 0) { System.out.println("text moderation content is empty"); return; } TextModerationRequest textModerationRequest = new TextModerationRequest(); /* 文本检测服务 service code */ textModerationRequest.setService("<service code>"); textModerationRequest.setServiceParameters(serviceParameters.toJSONString()); try { // 调用方法获取检测结果。 TextModerationResponse response = client.textModerationWithOptions(textModerationRequest, runtime); // 自动路由。 if (response != null) { // 服务端错误,区域切换到cn-beijing。 if (500 == response.getStatusCode() || (response.getBody() != null && 500 == (response.getBody().getCode()))) { // 接入区域和地址请根据实际情况修改。 config.setRegionId("cn-beijing"); config.setEndpoint("green-cip.cn-beijing.aliyuncs.com"); client = new Client(config); 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及以上版本。
- 执行如下命令引入相关依赖。
sudo pip3 install -v alibabacloud_green20220302==1.0.3
- 接入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': '<input text>', '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 code service = '<service code>', service_parameters = json.dumps(service_parameters) ) config = Config( access_key_id='< Your Access ID>', access_key_secret='< Your Access Secret>', # 连接时超时时间,单位毫秒(ms)。 connect_timeout=3000, # 读取时超时时间,单位毫秒(ms)。 read_timeout=6000, # 接入区域和地址请根据实际情况修改。 region_id='cn-shanghai', endpoint='green-cip.cn-shanghai.aliyuncs.com' ) # 注意,此处实例化的client请尽可能重复使用,避免重复建立连接,提升检测性能。 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 UtilClient.equal_number(500, response.status_code) or not response or not response.body or 200 != response.body.code: # 服务端错误,区域切换到cn-beijing config.region_id = 'cn-beijing' config.endpoint = 'green-cip.cn-beijing.aliyuncs.com' client = Client(config) 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()
Go SDK
- 执行如下命令引入相关依赖。
go get github.com/alibabacloud-go/green-20220302
- 接入Go SDK。代码示例
// This file is auto-generated, don't edit it. Thanks. package main import ( "encoding/json" "fmt" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" green20220302 "github.com/alibabacloud-go/green-20220302/client" util "github.com/alibabacloud-go/tea-utils/v2/service" "github.com/alibabacloud-go/tea/tea" "net/http" "strings" ) func _main() (_err error) { // 检测数据。 serviceParameters, _ := json.Marshal( map[string]interface{}{ "content": "<input text>", }, ) var contentMap map[string]interface{} _err = json.Unmarshal(serviceParameters, &contentMap) if contentMap["content"] == "" || len(strings.TrimSpace(fmt.Sprint(contentMap["content"]))) == 0 { fmt.Println("text moderation content is empty") return } textModerationRequest := &green20220302.TextModerationRequest{ /* 文本检服务 service code */ Service: tea.String("<service code>"), ServiceParameters: tea.String(string(serviceParameters)), } // 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的STS方式。 config := &openapi.Config{ // 您的AccessKey ID。 AccessKeyId: tea.String("<Your Access ID>"), // 您的AccessKey Secret。 AccessKeySecret: tea.String("<Your Access Secret>"), // 设置HTTP代理。 // HttpProxy: tea.String("http://xx.xx.xx.xx:xxxx"), // 设置HTTPS代理。 // HttpsProxy: tea.String("https://username:password@xxx.xxx.xxx.xxx:9999"), RegionId: tea.String("cn-shanghai"), Endpoint: tea.String("green-cip.cn-shanghai.aliyuncs.com"), /** * 请设置超时时间。服务端全链路处理超时时间为10秒,请做相应设置。 * 如果您设置的ReadTimeout小于服务端处理的时间,程序中会获得一个ReadTimeout异常。 */ ConnectTimeout: tea.Int(3000), ReadTimeout: tea.Int(6000), } // 注意,此处实例化的client请尽可能重复使用,避免重复建立连接,提升检测性能。 client, _err := green20220302.NewClient(config) if _err != nil { return _err } // 创建RuntimeObject实例并设置运行参数。 runtime := &util.RuntimeOptions{} runtime.ReadTimeout = tea.Int(10000) runtime.ConnectTimeout = tea.Int(10000) // 复制代码运行请自行打印API的返回值。 response, _err := client.TextModerationWithOptions(textModerationRequest,runtime) // 自动路由,服务端错误,区域切换至cn-beijing flag := false if _err != nil { var err = &tea.SDKError{} if _t, ok := _err.(*tea.SDKError); ok { err = _t // 系统异常,切换到下个地域调用。 if *err.StatusCode == 500 { flag = true } } } if response == nil || *response.StatusCode == 500 || *response.Body.Code == 500 { flag = true } if flag { config.SetRegionId("cn-beijing") config.SetEndpoint("green-cip.cn-beijing.aliyuncs.com") client, _err := green20220302.NewClient(config) if _err != nil { return _err } response, _err = client.TextModerationWithOptions(textModerationRequest, runtime) if _err !=nil{ return _err } } if response != nil{ statusCode := tea.IntValue(tea.ToInt(response.StatusCode)) body := response.Body textModerationResponseData := body.Data fmt.Println("requestId:" + tea.StringValue(body.RequestId)) if statusCode == http.StatusOK { fmt.Println("response success. response:" + body.String()) if tea.IntValue(tea.ToInt(body.Code)) == 200 { fmt.Println("response reason:" + tea.StringValue(textModerationResponseData.Reason)) fmt.Println("response labels:" + tea.StringValue(textModerationResponseData.Labels)) } else { fmt.Println("text moderation not success. status" + tea.ToString(body.Code)) } } else { fmt.Print("response not success. status:" + tea.ToString(statusCode)) } } return nil } func main() { err := _main() if err != nil { panic(err) } }
PHP SDK
- 执行如下命令引入相关依赖。
composer require alibabacloud/green-20220302
- 接入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(); /* 文本检服务 service code */ $request->service = "<service code>"; // 待检测数据。 $arr = array('content' => '<input text>'); $request->serviceParameters = json_encode($arr); if (empty($arr) || empty(trim($arr["content"]))) { echo "text moderation content is empty"; return; } $config = new Config([ // 您的AccessKey ID。 "accessKeyId" => "< Your Access ID>", // 您的AccessKey Secret。 "accessKeySecret" => "< Your Access Secret>", // 设置HTTP代理。 // "httpProxy" => "<http://10.10.xx.xx:xxxx>", // 设置HTTPS代理。 // "httpsProxy" => "<https://10.10.xx.xx:xxxx>", "endpoint" => "green-cip.cn-shanghai.aliyuncs.com", "regionId" => "cn-shanghai" ]); // 注意,此处实例化的client请尽可能重复使用,避免重复建立连接,提升检测性能。 $client = new Green($config); // 创建RuntimeObject实例并设置运行参数。 $runtime = new RuntimeOptions([]); $runtime->readTimeout = 10000; $runtime->connectTimeout = 10000; try { // 调用接口,获取检测结果。 $response = $client->textModerationWithOptions($request, $runtime); // 自动路由。 if (Utils::equalNumber(500, $response->statusCode) || Utils::equalNumber(500, $response->body->code)) { //服务端错误,区域切换到cn-beijing $config->endpoint = "green-cip.cn-beijing.aliyuncs.com"; $config->regionId = "cn-beijing"; $client = new Green($config); $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()); }
Node.js SDK
- 执行如下命令引入相关依赖。
npm install @alicloud/pop-core
- 接入Node.js SDK。代码示例
const RPCClient = require("@alicloud/pop-core"); async function main() { // 注意,此处实例化的client请尽可能重复使用,避免重复建立连接,提升检测性能。 var client = new RPCClient({ accessKeyId: '< Your Access ID>', accessKeySecret: '< Your Access Secret>', endpoint: "https://green-cip.cn-shanghai.aliyuncs.com", apiVersion: '2022-03-02' }); // 通过以下代码创建API请求并设置参数。 var params = { /* 文本检服务 service code */ "Service": "<service code>", // 待检测文本内容。 "ServiceParameters": JSON.stringify({ "content": "<inpout text>", }) } 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) // 自动路由。 if (response.Code === 500) { // 服务端错误,区域切换到cn-beijing。 client = new RPCClient({ accessKeyId: '<Your Access ID>', accessKeySecret: '<Your Access Secret>', endpoint: "https://green-cip.cn-beijing.aliyuncs.com", apiVersion: '2022-03-02' }); 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 1.0.2
- 接入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) { // 构建文本检测请求。 AlibabaCloud.SDK.Green20220302.Models.TextModerationRequest textModerationRequest = new AlibabaCloud.SDK.Green20220302.Models.TextModerationRequest(); /* 文本检测服务 service code */ textModerationRequest.Service = "<service code>"; Dictionary<string, object> task = new Dictionary<string, object>(); // 待检测文本内容。 task.Add("content", "<input text>"); 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方式。 AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config { // 您的AccessKey ID。 AccessKeyId = "<Your Access ID>", // 您的AccessKey Secret。 AccessKeySecret = "<Your Access Secret>", // 设置HTTP代理。 // HttpProxy = "http://xx.xx.xx.xx:xxxx", // 设置HTTPS代理。 // HttpsProxy = "https://username:password@xxx.xxx.xxx.xxx:9999", // 访问的域名。 Endpoint = "green-cip.cn-shanghai.aliyuncs.com", }; // 注意,此处实例化的client请尽可能重复使用,避免重复建立连接,提升检测性能。 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 { // 调用API获取检测结果。 AlibabaCloud.SDK.Green20220302.Models.TextModerationResponse response = client.TextModerationWithOptions(textModerationRequest, runtime); // 自动路由,服务端错误,区域切换至cn-beijing。 if (response is null || response.Body is null || AlibabaCloud.TeaUtil.Common.EqualNumber(500, AlibabaCloud.TeaUtil.Common.AssertAsNumber(response.StatusCode)) || AlibabaCloud.TeaUtil.Common.EqualString("500", Convert.ToString(response.Body.Code))) { config.Endpoint = "green-cip.cn-beijing.aliyuncs.com"; client = new AlibabaCloud.SDK.Green20220302.Client(config); response = client.TextModerationWithOptions(textModerationRequest, runtime); } Console.WriteLine(response.Body.RequestId); Console.WriteLine(JsonConvert.SerializeObject(response.Body)); } catch (Exception _err) { Console.WriteLine(_err); } } } }
如果您在使用过程中出现问题,可以请加入钉群(钉群号:35573806),联系产品技术专家进行咨询。