多模态API接入指南

本文档介绍了调用AI安全护栏多模态审核接口的方法。

步骤一:开通服务

前往AI安全护栏产品开通服务页面,开通AI安全护栏产品服务。

步骤二:为RAM用户授权

在接入SDK或者API之前,您需要为RAM用户授权。您可以为阿里云账号和RAM用户创建一个访问密钥(AccessKey)。在调用阿里云API时您需要使用AccessKey完成身份验证。获取方式,请参见获取AccessKey

  1. 使用RAM管理员登录RAM控制台

  2. 创建RAM用户。

    具体操作,请参见创建RAM用户

  3. 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

  • AI输入内容安全检测(query_security_check)

  • AI生成内容安全检测(response_security_check)

  • AI输入内容安全检测_出海版(query_security_check_cb)

  • AI生成内容安全检测_出海版(response_security_check_cb)

  • AIGC输入图片安全检测

    (img_query_security_check)

  • AIGC输出图片安全检测

    (img_response_security_check)

  • 多模态(文本图片)内容安全检测

    (text_img_security_check)

  • 文件实时检测

    (file_security_sync_check)

  • 多模态(文本文件)实时检测

    (text_file_sec_sync_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

审核建议

  • block 建议阻断

  • pass 建议通过

表 3. Detail

名称

类型

示例值

描述

Suggestion

String

pass

审核建议

  • block 建议阻断

  • pass 建议通过

Type

String

contentSecurity

防护维度

  • contentModeration 内容合规检测

  • promptAttack 提示词攻击检测

  • sensitiveData 敏感内容检测

  • maliciousFile 恶意文件检测

  • waterMark 数字水印标识

  • customLabel 自定义检测Agent

Level

String

high

  • 风险等级,根据设置的高低风险分返回,返回值包括:

    • high:高风险(若命中自定义词库,风险等级默认为高风险)

    • medium:中风险

    • low:低风险

    • none:未检测到风险

说明

高风险内容建议直接处置;中风险内容建议人工复查;低风险内容建议在高召回需求时再做处理,日常建议和未检测到风险做相同处理。风险分值可以在登录AI安全护栏产品控制台配置。

  • 敏感等级(for SensitiveData),返回值包括:

    S0、S1、S2、S3

    • S0代表未检出敏感内容

    • 数字越高敏感程度越高

Result

JSONArray

检测的内容合规风险标签、置信分等结果,具体请参见Result

表 4. Result

名称

类型

示例值

描述

Description

String

疑似政治实体

Labal字段的说明。

重要

该字段为Label字段的解释说明,可能会变更调整,实际处理结果时建议处理Label字段,不要基于该字段进行结果处置。

Confidence

Float

81.22

置信分值,0100分,保留到小数点后2位。部分标签无置信分。

Label

String

political_xxx

文字内容检测运算后返回的标签,可能会检出多个标签和分值。

Level

String

high

  • 风险等级,根据设置的高低风险分返回,返回值包括:

    • high:高风险(若命中自定义词库,风险等级默认为高风险)

    • medium:中风险

    • low:低风险

    • none:未检测到风险

说明

高风险内容建议直接处置;中风险内容建议人工复查;低风险内容建议在高召回需求时再做处理,日常建议和未检测到风险做相同处理。风险分值可以在登录AI安全护栏产品控制台配置。

  • 敏感等级(for SensitiveData),返回值包括:

    S0、S1、S2、S3

    • S0代表未检出敏感内容

    • 数字越高敏感程度越高

Ext

JSONObject

部分防护维度会返回相应的扩展信息,具体请参见Ext

表 5. Ext

名称

类型

示例值

描述

Riskwords

String

AA,BB,CC

适用防护维度:

contentModeration 内容合规检测

  • 检测到的敏感词,多个词用逗号分隔,部分标签不会返回敏感词。

CustomizedHit

JSONArray

[{"LibName":"...","Keywords":"..."}]

适用防护维度:

contentModeration 内容合规检测

  • 当命中自定义库时,Labelcustomized,返回自定义库名称和自定义词。

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

请求频率超出配额。、