本文档介绍了调用AI安全护栏多模态审核接口的方法。
步骤一:开通服务
前往AI安全护栏产品开通服务页面,开通AI安全护栏产品服务。
步骤二:为RAM用户授权
在接入SDK或者API之前,您需要为RAM用户授权。您可以为阿里云账号和RAM用户创建一个访问密钥(AccessKey)。在调用阿里云API时您需要使用AccessKey完成身份验证。获取方式,请参见获取AccessKey。
使用RAM管理员登录RAM控制台。
- 创建RAM用户。
具体操作,请参见创建RAM用户。
- 向RAM用户授权系统策略权限:
AliyunYundunGreenWebFullAccess
。具体操作,请参见为RAM用户授权。
完成以上配置后,您可以使用RAM用户调用内容安全API。
步骤三:安装并接入SDK
AI安全护栏产品服务SDK请参考多模态SDK参考
API说明
使用说明
您可以调用该接口创建文本内容检测任务。
业务接口:MultiModalGuard
支持的地域及接入地址:
地域 | 外网接入地址 | 内网接入地址 |
华东2(上海) | https://green-cip.cn-shanghai.aliyuncs.com | https://green-cip-vpc.cn-shanghai.aliyuncs.com |
华北2(北京) | https://green-cip.cn-beijing.aliyuncs.com | https://green-cip-vpc.cn-beijing.aliyuncs.com |
华东1(杭州) | https://green-cip.cn-hangzhou.aliyuncs.com | https://green-cip-vpc.cn-hangzhou.aliyuncs.com |
华南1(深圳) | https://green-cip.cn-shenzhen.aliyuncs.com | https://green-cip-vpc.cn-shenzhen.aliyuncs.com |
西南1(成都) | https://green-cip.cn-chengdu.aliyuncs.com | 暂无 |
新加坡 | green-cip.ap-southeast-1.aliyuncs.com | green-cip-vpc.ap-southeast-1.aliyuncs.com |
计费信息:该接口为收费接口。仅对HTTP状态码为200的请求进行计量计费,产生其他错误码时不会计费。关于计费方式,请参见开通与计费概述部分。
QPS限制
本接口的单用户QPS限制为20次/秒(含有文件模态时,默认限制为10次/秒)。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。
请求参数
名称 | 类型 | 是否必须 | 示例值 | 描述 |
Service | String | 是 | query_security_check |
|
ServiceParameters | JSONString | 是 | 审核服务需要的参数集。JSON字符串格式,关于每个字符串的描述,请参见ServiceParameters。 |
表 1. ServiceParameters
名称 | 类型 | 是否必须 | 示例值 | 描述 |
content | String | 至少传入一项内容 | 文本检测内容 | 审核的文本内容 |
imageUrls | JSONArray | http://xxxx123 | 当前只支持一张图片 | |
fileUrls | JSONArray | http://xxxx456 | 当前只支持一个文件 | |
chatId | String | 否 | ABC123 | 用于唯一标识一轮“用户输入 + 大模型输出”的交互记录 |
dataId | String | 否 | img123****** | 用于唯一标识检测内容 |
accountId | String | 否 | 13**** | 账户ID,标识一个账户的唯一ID。传入账号ID时会结合相同账号ID的前后文进行审核。 |
sessionId | String | 否 | 14**** | 会话ID,标记本次请求内容属于同一段流式内容,文本审核引擎会自动拼接后进行审核,审核拼接文字片段后不超过服务字数限制的部分。 |
referer | String | 否 | www.aliyun.com | referer请求头,用于防盗链等场景。长度不超过256个字符。 |
返回参数
名称 | 类型 | 示例值 | 描述 |
Code | Integer | 200 | 状态码。更多信息,请参见Code说明。 |
Data | JSONObject | {"Result":[...]} | 审核结果数据,具体请参见Data。 |
Message | String | OK | 请求消息的响应消息。 |
RequestId | String | AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE**** | 请求ID。 |
表 2. Data
名称 | 类型 | 示例值 | 描述 |
Detail | JSONArray | 检测的内容合规风险标签、置信分等结果,具体请参见Detail。 | |
Suggestion | String | Pass | 审核建议
|
表 3. Detail
名称 | 类型 | 示例值 | 描述 |
Suggestion | String | pass | 审核建议
|
Type | String | contentSecurity | 防护维度
|
Level | String | high |
说明 高风险内容建议直接处置;中风险内容建议人工复查;低风险内容建议在高召回需求时再做处理,日常建议和未检测到风险做相同处理。风险分值可以在登录AI安全护栏产品控制台配置。
|
Result | JSONArray | 检测的内容合规风险标签、置信分等结果,具体请参见Result。 |
表 4. Result
名称 | 类型 | 示例值 | 描述 |
Description | String | 疑似政治实体 | 对Labal字段的说明。 重要 该字段为Label字段的解释说明,可能会变更调整,实际处理结果时建议处理Label字段,不要基于该字段进行结果处置。 |
Confidence | Float | 81.22 | 置信分值,0到100分,保留到小数点后2位。部分标签无置信分。 |
Label | String | political_xxx | 文字内容检测运算后返回的标签,可能会检出多个标签和分值。 |
Level | String | high |
说明 高风险内容建议直接处置;中风险内容建议人工复查;低风险内容建议在高召回需求时再做处理,日常建议和未检测到风险做相同处理。风险分值可以在登录AI安全护栏产品控制台配置。
|
Ext | JSONObject | 部分防护维度会返回相应的扩展信息,具体请参见Ext。 |
表 5. Ext
名称 | 类型 | 示例值 | 描述 |
Riskwords | String | AA,BB,CC | 适用防护维度: contentModeration 内容合规检测
|
CustomizedHit | JSONArray | [{"LibName":"...","Keywords":"..."}] | 适用防护维度: contentModeration 内容合规检测
|
SensitiveData | JSONArray | ["6201112223455"] | 适用防护维度: sensitiveData 敏感内容检测 检出敏感样本(0-5个) |
FileUrl | String | https://sase-public-server-files.oss-cn-hangzhou.aliyuncs.com/saas-XXX | 适用防护维度: waterMark 数字水印标识 含水印文件下载链接 |
OutFileSize | String | 152357 | 适用防护维度: waterMark 数字水印标识 文件大小 |
FileUrlExp | String | 1754135551 | 适用防护维度: waterMark 数字水印标识 含水印文件下载链接失效时间 |
Filename | String | B7VKehJ4gZR.png | 适用防护维度: waterMark 数字水印标识 文件名称 |
OutFileHashMd5 | String | 8b96ff73e8d8060016bb41b16d337871 | 适用防护维度: waterMark 数字水印标识 文件MD5标识 |
表 6. CustomizedHit
名称 | 类型 | 示例值 | 描述 |
LibName | String | 自定义库1 | 自定义库名称 |
Keywords | String | 自定义词1,自定义词2 | 自定义词,多个词用逗号分隔。 |
示例
请求示例
{
"Service": "XXX",
"ServiceParameters": {
"content": "testing content",
"chatId": "ABC123",
"dataId": "img123******",
"accountId":"abc",
"sessionId":"abc",
"imageUrls": ["http://xxxx"], # 当前只支持一张图片
"fileUrls": ["http://xxxx"], # 当前只支持一个文件
"referer": "http://www.aliyun.com"
}
}
返回示例:
检测query_security_check,命中系统策略:
{
"Code": 200,
"Data": {
"Detail": [
{
"Result": [
{
"Label": "political_entity",
"Description": "疑似政治实体",
"Confidence": 80,
"Level": "low",
"Ext": {
"RiskWords": "词A,词B,词C"
}
},
{
"Label": "political_figure",
"Description": "疑似政治人物",
"Confidence": 100,
"Level": "high",
"Ext": {
"RiskWords": "词A,词B,词C",
"CustomizedHit": [
{
"LibName": "自定义词库名称1",
"KeyWords": "自定义关键词"
}
]
}
}
],
"Type": "contentModeration",
"Suggestion": "block"
},
{
"Result": [
{
"Label": "Indirect Prompt Injection",
"AttackLevel": "high",
"Description": "间接提示词注入",
"Confidence": 100
}
],
"Type": "promptAttack",
"Suggestion": "block"
},
{
"Result": [
{
"Label": "1780",
"Description": "信用卡号",
"Level": "S4",
"Ext": {
"SensitiveData": [
"6201112223455"
]
}
},
{
"Label": "3234",
"Description": "地区",
"Level": "S1",
"Ext": {
"SensitiveData": [
"上海"
]
}
}
],
"Type": "sensitiveData",
"Suggestion": "block"
},
{
"Result": [
{
"Description": "命中自定义标签",
"Label": "站外引流",
"Level": "high"
}
],
"Type": "customLabel",
"Suggestion": "block",
"Level": "high"
},
{
"Result": [
{
"Label": "Filexxx",
"AttackLevel": "high",
"Description": "恶意文件信息",
"Confidence": 100
}
],
"Type": "fileSecurity",
"Suggestion": "block"
}
],
"Suggestion": "block",
"DataId": "img123****"
},
"Message": "OK",
"RequestId": "AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****"
}
检测img_query_security_check,命中系统策略:
{
"Code": 200,
"Data": {
"Detail": [
{
"Level": "none",
"Result": [
{
"Confidence": 0.0,
"Description": "未检测出风险",
"Ext": {
"FileUrl": "https://sase-public-server-files.oss-cn-hangzhou.aliyuncs.com/saas-XXX",
"OutFileSize": 527918,
"FileUrlExp": "1754200240",
"Filename": "wJGz6kmZ1Ce.jpg",
"OutFileHashMd5": "02f5129f606027c7a87b84377ec98f8e"
},
"Label": "nonLabel",
"Level": "none"
}
],
"Suggestion": "pass",
"Type": "waterMark"
},
{
"Level": "high",
"Result": [
{
"Confidence": 90,
"Description": "违反广告法-极限词",
"Label": "ad_Compliance_WordLimit_Tii",
"Level": "high"
}
],
"Suggestion": "block",
"Type": "contentModeration"
}
],
"Suggestion": "block"
},
"Msg": "OK"
}
检测text_img_security_check,命中系统策略:
{
"Code": 200,
"Data": {
"Detail": [
{
"Ext": {},
"Level": "high",
"Result": [
{
"Confidence": 98.34,
"Description": "女性乳沟",
"Label": "sexual_Cleavage",
"Level": "high"
}
],
"Suggestion": "block",
"Type": "contentModeration"
}
],
"Suggestion": "block"
},
"Msg": "OK"
}
检测file_security_sync_check,命中系统策略:
{
"Code": 200,
"Data": {
"Detail": [
{
"Ext": {},
"Level": "high",
"Result": [
{
"Confidence": 100,
"Description": "网站后门",
"Label": "WebShell",
"Level": "high"
}
],
"Suggestion": "block",
"Type": "maliciousFile"
},
{
"Ext": {
"PageSum": 1
},
"Level": "none",
"Result": [
{
"Description": "未检测出风险",
"Label": "nonLabel",
"Level": "none"
}
],
"Suggestion": "pass",
"Type": "contentModeration"
}
],
"Suggestion": "block"
},
"Msg": "OK"
}
检测text_file_sec_sync_check,命中系统策略:
{
"Code": 200,
"Data": {
"Detail": [
{
"Ext": {
"PageSum": 4
},
"Level": "none",
"Result": [
{
"Description": "未检测出风险",
"Label": "nonLabel",
"Level": "none"
}
],
"Suggestion": "pass",
"Type": "contentModeration"
}
],
"Suggestion": "pass"
},
"Msg": "OK"
}
Code说明
Code | 状态代码 | 说明 |
200 | OK | 请求成功。 |
400 | BAD_REQUEST | 请求有误。可能是请求参数不正确导致,请仔细检查请求参数。 |
408 | PERMISSION_DENY | 可能是您的账号未授权、账号欠费、账号未开通、账号被禁等。 |
500 | GENERAL_ERROR | 错误。可能是服务端临时出错。建议重试,若持续返回该错误码,请通过在线服务联系我们。 |
581 | TIMEOUT | 超时。建议重试,若持续返回该错误码,请通过在线服务联系我们。 |
588 | EXCEED_QUOTA | 请求频率超出配额。、 |