云服务器内容精选

  • 文本内容审核(v2) 本章节对文本内容审核AK/SK方式使用SDK进行示例说明。 示例代码中修改TextDetectionItemsReq的text值配置待检测的文本信息,配置完成后运行即可。 服务所在的应用区域和终端节点,详情请查看 地区和终端节点 。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 # coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkmoderation.v2.region.moderation_region import ModerationRegion from huaweicloudsdkmoderation.v2 import ModerationClient,RunTextModerationRequest,TextDetectionItemsReq,TextDetectionReq import os if __name__ == "__main__": # 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak = os.getenv("HUAWEICLOUD_SDK_AK") sk = os.getenv("HUAWEICLOUD_SDK_SK") credentials = BasicCredentials(ak, sk) client = ModerationClient.new_builder() \ .with_credentials(credentials) \ .with_region(ModerationRegion.value_of("xxx")) \ //把xxx替换成服务所在的区域,例如北京四:cn-north-4。 .build() try: request = RunTextModerationRequest() listTextDetectionItemsReqItemsbody = [ TextDetectionItemsReq( text="text", //此处输入待检测文本 type="content" ) ] listTextDetectionReqCategoriesbody = [ "porn", "ad", "abuse", "contraband", "flood" ] request.body = TextDetectionReq( items=listTextDetectionItemsReqItemsbody, categories=listTextDetectionReqCategoriesbody ) response = client.run_text_moderation(request) print(response.status_code) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) 控制台输出200即表示程序执行成功,文本内容审核结果输出到控制台。 200 {"result": {"suggestion": "block", "detail": {"contraband": ["亚砷酸钾"], "porn": ["luo聊"]}}}} 父主题: 文本审核
  • 响应示例 状态码: 200 成功响应示例 { "request_id" : "58e7d9c7-3456-4ba1-80df-6f25506bc4df", "result" : { "suggestion" : "block", "label" : "customized", "details" : [ { "suggestion" : "block", "label" : "customized", "confidence" : 1, "segments" : [ { "segment" : "xxx", "glossary_name" : "zzz" } ] } ] } } 状态码: 400 失败响应示例 { "error_code" : "AIS.0011", "error_msg" : "Lack the request parameter, or the request parameter is empty." }
  • 请求示例 “endpoint”即调用API的请求地址,不同服务不同区域的endpoint不同,具体请参见终端节点。 例如,服务部署在“华北-北京四”区域的“endpoint”为“moderation.cn-north-4.myhuaweicloud.com”,请求URL为“https://moderation.cn-north-4.myhuaweicloud.com/v3/{project_id}/moderation/text”,“project_id”为项目ID,获取方法请参见获取项目ID。 识别文本内容是否有敏感内容,事件类型为评论,命中的自定义词库名称为custom_xxx,检测时使用的自定义白名单词库列表为custom_xxx,检测文本为asdfasdfasdf。 POST https://{endpoint}/v3/{project_id}/moderation/text { "event_type" : "comment", "glossary_names" : [ "custom_xxx" ], "white_glossary_names" : [ "custom_xxx" ], "data" : { "text" : "asdfasdfasdf" } } 使用biz_type调用 POST https://{endpoint}/v3/{project_id}/moderation/text { "biz_type" : "my_custom_type", "data" : { "text" : "asdfasdfasdf" } }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 用于获取操作API的权限。获取方法请参见获取Token接口,响应消息头中X-Subject-Token的值即为Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 event_type 否 String 事件类型。可选值如下: nickname: 昵称 title: 标题 article: 帖⼦ comment: 评论 barrage: 弹幕 search: 搜索栏 profile: 个⼈简介 glossary_names 否 Array of strings 检测时使用的自定义黑名单词库列表。 说明: 自定义黑名单词库的创建和使用请参见配置自定义黑名单词库。 white_glossary_names 否 Array of strings 检测时使用的自定义白名单词库列表。 说明: 自定义白名单词库的创建和使用请参见配置自定义白名单词库。 categories 否 Array of strings 文本审核场景,可选值如下: terrorism:暴恐 porn:色情 ban:违禁 abuse: 辱骂 ad:广告 当categories为空时,默认为所有审核场景。 data 是 TextDetectionDataReq object 检测数据。 biz_type 否 String 用户在控制台界面创建的自定义审核策略名称。 如果请求参数中传了biz_type则优先使用biz_type。 如果用户没传biz_type则event_type必须传。 表4 TextDetectionDataReq 参数 是否必选 参数类型 描述 text 是 String 待检测文本,编码格式为“utf-8”,限定1500个字符以内,文本长度超过1500个字符时,只检测前1500个字符。 最小长度:1 最大长度:1500 language 否 String 支持检测的文本语言。可选值为zh:中文。 不传该参数表示默认为zh。
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 request_id String 本次请求的唯⼀标识,⽤于问题排查,建议保存 最小长度:2 最大长度:64 result TextDetectionResult object 调用成功时表示调用结果。 调用失败时无此字段。 表6 TextDetectionResult 参数 参数类型 描述 suggestion String 审核结果是否通过。 block:包含敏感信息,不通过 pass:不包含敏感信息,通过 review:需要人工复检 label String 检测结果的标签。支持label列表如下: terrorism: 暴恐 porn: 色情 ban: 违禁 abuse: 辱骂 ad: 广告 customized:自定义(命中自定义词库中的关键词) details Array of TextDetectionResultDetail objects 检测详情。 表7 TextDetectionResultDetail 参数 参数类型 描述 suggestion String 审核结果是否通过。 block:包含敏感信息,不通过 pass:不包含敏感信息,通过 review:需要人工复检 label String 检测结果的标签。 支持label列表如下: terrorism: 暴恐 porn: 色情 ban: 违禁 abuse: 辱骂 ad: 广告 customized:自定义(命中自定义词库中的关键词) confidence Float 置信度,取值范围 0-1,值越⼤,可信度越⾼。 segments Array of Segment objects 命中的风险片段信息,如果命中了语义算法模型,则会返回一个空的列表。 表8 Segment 参数 参数类型 描述 segment String 命中的风险片段。 glossary_name String 命中的自定义词库名称。 命中自定义词库时,才会返回当前字段。 position Array of integers 命中的风险片段在文本中的位置,起始位置从0开始。 状态码: 400 表9 响应Body参数 参数 参数类型 描述 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。
  • 请求示例 识别文本内容是否有敏感内容,检测场景为广告,辱骂,涉黄,违禁品,灌水,检测文本为asdfasdfasdf。 “endpoint”即调用API的请求地址,不同服务不同区域的endpoint不同,具体请参见终端节点。 例如,服务部署在“华北-北京四”区域的“endpoint”为“moderation.cn-north-4.myhuaweicloud.com”,请求URL为“https://moderation.cn-north-4.myhuaweicloud.com/v2/{project_id}/moderation/text”,“project_id”为项目ID,获取方法请参见获取项目ID。 POST https://{endpoint}/v2/{project_id}/moderation/text{ "categories" : [ "ad", "abuse", "porn", "contraband", "flood" ], "items" : [ { "text" : "asdfasdfasdf", "type" : "content" } ]}
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 result result object 调用成功时表示调用结果。 调用失败时无此字段。 表6 result 参数 参数类型 描述 suggestion String 检测结果是否通过。 block:包含敏感信息,不通过。 pass:不包含敏感信息,通过。 review:需要人工复查。 detail Object 返回的相关检测结果详细信息。 porn:涉黄敏感词列表。 ad:广告敏感词列表。 abuse:辱骂敏感词列表。 contraband:违禁品敏感词列表。 flood:灌水文本(指无意义的文本词语常见于贴吧等灌水帖子)。 说明: 灌水文本最多显示200个字符。 每个场景的返回结果的详细信息是指命中词,不是返回全部文本。 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。 fail_category String 当包含多个场景时,调用失败的场景。
  • 响应示例 状态码: 200 成功响应示例 { "result" : { "detail" : { "abuse" : [ "fuck" ] }, "suggestion" : "block" }} 状态码: 400 失败响应示例 { "error_code" : "AIS.0005", "error_msg" : "The service does not exist."}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 用于获取操作API的权限。获取方法请参见获取Token接口,响应消息头中X-Subject-Token的值即为Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 categories 否 Array of strings 检测场景。 当前支持的场景有默认场景和用户自定义场景: 默认场景为: porn:涉黄 ad:广告 abuse:辱骂 contraband:违禁品 flood:灌水 (单个或多个数字/字符/标点符号大量重复出现在文本中,将被识别为灌水) 用户自定义场景为:自定义黑名单词库。 说明: 默认场景采用人工智能文本检测技术识别您所上传的文本内容,自定义场景可通过您自行配置黑名单词库来过滤和检测指定文本内容。 自定义黑名单词库的名称指定给categories就是设置自定义的场景,自定义词库的创建和使用请参见配置自定义词库。 flood场景不支持使用自定义白名单词库。 white_glossaries 否 Array of strings 启用的白名单列表。不配置该参数,默认使用2022-09-02 16:00:00之前创建的白名单词库。 配置该参数,有如下规则: 当参数为空列表(即为[ ])时,表示不使用白名单词库。 当参数设置为您创建的白名单词库名称时,表示启用该词库。 说明: 如果您有多个白名单词库想要同时使用,例如有三个白名单词库分别为A,B,C。该参数应设置为["A", "B", "C"] 。 白名单词库的创建和使用请参见创建自定义白名单词库。 items 是 Array of TextDetectionItemsReq objects 待检测的文本列表,目前暂时每次只支持传一个item。 表4 TextDetectionItemsReq 参数 是否必选 参数类型 描述 text 是 String 待检测文本。编码格式为“utf-8”,限定1-5000个字符,文本长度超过5000个字符时,只检测前5000个字符。 type 否 String 文本类型。默认为“content”,即正文内容,当前只支持“content”类型,未来会扩大支持类型范围。