图文混合模态审核大模型服务帮助您检测图片加文本中的风险或违规内容。本文介绍了使用API接口进行多模态审核的方法。
一、使用场景
阿里云内容安全基于图片和文本混合场景特性,定制提供图文混合模态审核大模型服务,帮助您发现图片加文本以及前后文中的风险内容,从而更好的发现潜在风险。目前支持的场景如下:
帖子图文多模态检测(公测中):针对社区、论坛等帖子场景,支持结合主帖内容和评论内容进行综合风险判断。主帖包含标题、正文、帖图,评论包含评论文本、评论图片,并支持评论中的回复功能,综合进行风险检测和判断。
头像昵称图文多模态检测(邀测中):针对社交、IM、游戏等各种有用户资料的场景,结合头像和昵称进行综合风险分析,判断是否有整体的违规风险内容。
二、服务说明
图文混合模态审核能力支持的服务(Service)如下:
服务(Service) | 检测内容 | 适用场景 |
服务名称:帖子图文多模态检测(公测中) Service:post_text_image_detection | 结合主帖内容和评论内容进行综合风险判断,检测帖子及评论中是否涉及涉政、色情、性暗示、不良、广告、辱骂、暴恐、违禁等风险内容。 | 针对社区、论坛等有大量帖子场景,结合帖子图文以及上下文进行综合风险判断。 |
服务名称:头像昵称图文多模态检测(邀测中) Service:profile_text_image_detection | 结合头像和昵称进行综合风险分析,检测是否涉及涉政、色情、性暗示、不良、广告、辱骂、暴恐、违禁等风险内容。 | 针对社交、IM、游戏、电商、教育等各种有用户资料的场景。 |
三、计费说明
图文混合审核增强版AIGC检测服务支持按量后付费和资源包抵扣两种付费方式。
按量后付费
当您开通图文混合审核增强版服务后,默认付费方式是按量后付费,且按照实际用量结算当日费用,不调用服务不收费。
审核类型 | 支持的业务场景(服务) | 计费单价 |
图片审核大模型版通义(image_vl_standard) |
| 45元/万张 说明 根据图片的张数核算,如输入10张图片,计费0.045元。 |
文本审核大模型版通用(text_llm_standard) | 20元/万次 说明 根据文本每次接口调用输入的字符数核算,每次调用每1000字算1次,超过1000字按照实际的数量取整核算,比如单次接口调用输入3500字,则算4次,计费0.008元。 |
邀测期间的计费会小于上述费用,请以实际计费为准。
内容安全增强版的按量付费的计量出账频率为1小时/次。在出账详单中,moderationType
对应上述审核类型字段。您可以查看账单详情。
资源包抵扣
如果您的审核量较大,或有相对固定的审核需求,建议预先购买资源包的方式。购买资源包规格越大,享受的折扣越大,支持叠加购买和使用。更多内容,请参见购买内容审核增强版抵扣资源包。
该资源包用于内容审核增强版用量的抵扣,无法与内容安全1.0版流量包共享,具体的抵扣系数如下:
审核类型 | 抵扣系数 |
图片审核大模型版通义(image_vl_standard) | 6次/张:即每张图片,抵扣资源包的流量包容量规格6次。 说明 例如购买的资源包的流量包容量规格为10次,当您成功调用1张图片,抵扣流量包容量规格6次,剩余4次。 |
文本审核大模型版通用(text_llm_standard) | 2.67次/1000字,表示文本每1000字,抵扣资源包的流量包容量规格2.67次。 说明 例如购买的资源包的流量包容量规格为10次,当您成功调用900字文本,抵扣流量包容量规格2.67次,剩余7.33次。 |
购买后,使用图文混合审核增强版API所产生的用量会优先抵扣资源包的次数,当资源包次数不足以抵扣时,阿里云费用系统会自动按照按量付费进行出账,请及时关注您的资源包余量和按量付费账单。您可以通过阿里云费用中心的资源包系统设定余量预警通知。
四、接入指引
注册阿里云账号:立即注册,按照操作提示完成账号注册。
开通内容安全按量付费:请确保已开通服务,具体操作,请参见开通服务。开通不收费,接口接入使用后系统会按使用量自动出账,具体信息,请参见计费说明(待确定)。您也可以购买按量抵扣资源包,资源包相较于后付费存在一定阶梯抵扣,适合使用量级可预期和较大的用户,具体信息,请参见购买按量抵扣资源包。
创建AccessKey:请确保您已通过RAM创建AccessKey,具体操作,请参见创建AccessKey。如果您使用的是RAM用户(子账号)AccessKey,您需要通过阿里云账号(主账号)给RAM用户赋予AliyunYundunGreenWebFullAccess权限,具体操作,请参见RAM授权。
开发接入:推荐使用SDK方式调用。具体信息,请参见图文混合模态审核SDK及接入指南。
提交审核任务
接口说明
业务接口:MultimodalModeration。
支持的地域及接入地址:
地域 | 外网接入地址 | 内网接入地址 |
华东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 |
计费信息:该接口为收费接口。会根据您实际输入的图片数量和文本字符数进行计费。关于计费方式,请参见计费说明。
检测对象:支持检测文本+图片类型。
返回结果:异步检测任务不会实时返回检测结果,您需要通过callback或者轮询的方式获取检测结果。检测结果最长保留24小时。
callback获取检测结果:提交异步检测任务时,在请求参数中传入callback参数,用来自动接收检测结果。
轮询获取检测结果:提交异步检测任务时,无需传入callback参数;提交异步检测任务后,调用结果查询接口获取检测结果。
数据要求:
全文文本限制为5000字,全文图片数量限制为30张。
图片支持以下格式:PNG、JPG、JPEG、BMP、WEBP、TIFF、SVG、HEIC(该格式最长边需小于8192 px)、GIF(取第一帧)、ICO(取最后一图)。
图片大小限制在20 MB以内,高或者宽不能超过16,384 px,且总像素不能超过1.67亿 px。像素建议大于200*200(px),像素过低会影响内容安全检测算法的效果。
图片下载时间限制为3秒内,如果下载时间超过3秒,返回下载超时。
QPS限制
本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。
请求参数
名称 | 类型 | 是否必须 | 示例值 | 描述 |
Service | String | 是 | post_text_image_detection | 审核服务类型。取值:
|
ServiceParameters | JSONString | 是 | 审核服务需要的参数集。JSON字符串格式,关于每个字符串的描述,请参见ServiceParameters。 |
表 1. ServiceParameters
名称 | 类型 | 是否必选 | 示例值 | 描述 | ||
mainData | Array | 是 | 待检测的主帖内容或昵称头像信息。更多信息,请参见mainData。 | |||
commentDatas | Array | 否 | 待检测的评论内容,仅帖子场景需要传入。更多信息,请参见commentDatas。 | |||
dataId | String | 否 | Multimodal**** | 检测对象对应的数据ID。 由大小写英文字母、数字、下划线(_)、短划线(-)、英文句号(.)组成,不超过128个字符,可以用于唯一标识您的业务数据。 |
表 2. mainData
名称 | 类型 | 是否必选 | 示例值 | 描述 |
mainTitle | String | 否 | 这是标题 | 待检测的主标题内容或者个人介绍内容。全部文字需要少于5000字。 |
mainContent | String | 是 | 这是主文内容 | 待检测的主文本内容或者昵称内容。 |
mainImages | Array | 是 | 待检测的主图片内容或者头像图片内容。全部图片需要少于30张。更多信息,请参见mainImages。 | |
mainPostTime | Datatime | 否 | 2025-06-18 20:20:20 | 主帖内容发布时间。 |
表 3. mainImages
名称 | 类型 | 是否必选 | 示例值 | 描述 |
imageUrl | String | 是。支持两种方式传入图片,请您选择其中一种:
| http://www.aliyundoc.com/a.flv | 待检测对象的URL,请确保该URL能通过公网访问到,且URL地址长度不超过2048个字符。 |
ossBucketName | String | bucket_01 | 已授权OSS空间的Bucket名。 说明 使用OSS图片内网地址时必须先使用阿里云账号(即主账号)访问云资源访问授权页面进行授权。 | |
ossObjectName | String | 2022023/04/24/test.mp4 | 已授权OSS空间的文件名。 | |
ossRegionId | String | cn-beijing | OSS Bucket所在区域。 |
表 4. commentDatas
名称 | 类型 | 是否必选 | 示例值 | 描述 |
content | String | 是 | 这是评论文本内容 | 待检测的评论内容。需要少于1000字。 |
images | Array | 否 | 这是评论图片内容 | 待检测的主图片内容。需要少于10张图片。更多信息,请参见images。 |
postTime | Datatime | 否 | 2025-06-18 20:20:20 | 评论发布时间。 |
commentDatas | Array | 待检测的评论内容。更多信息,请参见commentDatas。 |
表 5. images
名称 | 类型 | 是否必选 | 示例值 | 描述 |
imageUrl | String | 否。支持两种方式传入图片,请您选择其中一种:
| http://www.aliyundoc.com/a.flv | 待检测对象的URL,请确保该URL能通过公网访问到,且URL地址长度不超过2048个字符。 |
ossBucketName | String | bucket_01 | 已授权OSS空间的Bucket名。 说明 使用OSS图片内网地址时必须先使用阿里云账号(即主账号)访问云资源访问授权页面进行授权。 | |
ossObjectName | String | 2022023/04/24/test.mp4 | 已授权OSS空间的文件名。 | |
ossRegionId | String | cn-beijing | OSS Bucket所在区域。 |
表 6. commentDatas
名称 | 类型 | 是否必选 | 示例值 | 描述 |
content | String | 是 | 这是评论文本内容 | 待检测的评论内容。需要少于1000字。 |
images | Array | 否 | 这是评论图片内容 | 待检测的主图片内容。需要少于100张图片。更多信息,请参见images。 |
postTime | Datatime | 否 | 2025-06-18 20:20:20 | 评论发布时间。 |
返回数据
名称 | 类型 | 示例值 | 描述 | |
Code | Integer | 200 | 状态码,和HTTP状态码一致。更多信息,请参见Code 说明。 | |
Data | JSONObject | {"ReqId": "AAAAA-BBBBB-AIXI-1314-CCCCC"} | 审核结果数据。 | |
DataId | String | Multimodal0424*** | 检测对象对应的数据ID。 说明 如果在检测请求参数中传入了dataId,则此处返回对应的dataId。 | |
Message | String | OK | 请求消息的响应消息。 | |
RequestId | String | ABCD1234-1234-1234-1234-123**** | 请求ID。 |
示例
请求示例
传入图文内容
{
"service": "post_text_image_detection",
"serviceParameters": {
"dataId": "Multimodal0424***",
"mainData": {
"mainTitle": "主标题或者个人资料",
"mainContent": "主文本内容或者个人昵称内容",
"mainImages": [
{
"imageUrl": "https://aliyun.com/240308/test001.jpg"
},
{
"imageUrl": "https://aliyun.com/240308/test002.jpg"
}
],
"mainPostTime": "2025-06-18 20:20:20"
},
"commentDatas": [
{
"images": [
{
"imageUrl": "https://aliyun.com/240308/test003.jpg"
},
{
"imageUrl": "https://aliyun.com/240308/test004.jpg"
}
],
"content": "评论内容1",
"postTime": "",
"commentDatas": [
{
"content": "评论内容1回复1",
"images": [
{
"imageUrl": "https://aliyun.com/240308/test005.jpg"
}
],
"postTime": ""
},
{
"content": "评论内容1回复2",
"images": [
{
"imageUrl": "https://aliyun.com/240308/test006.jpg"
}
],
"postTime": ""
}
]
},
{
"content": "评论内容2",
"images": [],
"postTime": "",
"commentDatas": []
},
{
"content": "评论内容3",
"images": [],
"postTime": "",
"commentDatas": []
},
{
"content": "评论内容4",
"images": [],
"postTime": "",
"commentDatas": []
},
{
"content": "评论内容5",
"images": [],
"postTime": "",
"commentDatas": []
},
{
"content": "评论内容6",
"images": [],
"postTime": "",
"commentDatas": []
},
{
"content": "评论内容7",
"images": [],
"postTime": "",
"commentDatas": []
}
]
}
}
正常返回示例
{
"Msg": "OK",
"Code": 200,
"Data":
{
"ReqId": "AAAAA-BBBBB-AIXI-1314-CCCCC"
},
"DataId": "Multimodal0424***"
"RequestId": "AAAAA-BBBBB-AIXI-1314-CCCCC"
}
获取多模态审核任务结果
接口说明
业务接口:DescribeMultimodalModerationResult,表示获取多模态审核任务结果。
计费信息:该接口不计费。
查询超时:建议您将查询间隔设置为30秒(即在提交异步检测任务30秒后查询结果),最长不能超出24小时,否则结果将会自动删除。
QPS限制
本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
ServiceParameters | JSONString | 是 | 审核服务需要的参数集。JSON字符串格式,关于每个字符串的描述,请参见ServiceParameters。 |
表 1. ServiceParameters
名称 | 类型 | 是否必选 | 示例值 | 描述 |
reqId | String | 是 | AAAAA-BBBBB-AIXI-1314-CCCCC | 要查询的检测任务的taskId,每次支持输入一个taskId。 说明 您在提交检测任务后,可以从返回数据中获取检测任务的taskId。 |
返回数据
名称 | 类型 | 示例值 | 描述 |
RequestId | String | ABCD1234-1234-1234-1234-123**** | 本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。 |
Data | Object | 多模态内容检测结果。更多信息,请参见Data。 | |
Code | String | 200 | 状态码,和HTTP状态码一致。更多信息,请参见Code说明。 |
Message | String | OK | 本次请求的响应消息。 |
表 2. Data
名称 | 类型 | 示例值 | 描述 |
DataId | String | Multimodal0424*** | 检测对象对应的数据ID。 重要 如果在检测请求参数中传入了DataId,则此处返回对应的DataId。 |
RiskLevel | String | 风险等级,整体帖子的风险等级。返回值包括:
| |
MainData | JSONArray | 主帖检测结果。更多信息,请参见MainData。 | |
CommentDatas | JSONArray | 评论检测结果,返回结果结构与输入结构体一一对应。更多信息,请参见CommentDatas。 | |
Usage | Object | toekns统计信息。更多信息,请参见Usage。 |
表 3. MainData
名称 | 类型 | 示例值 | 描述 |
Result | JSONArray | 检测结果。更多信息,请参见Result。 |
表 4. Result
名称 | 类型 | 示例值 | 描述 |
Label | String | violent_explosion | 风险标签。 |
Description | String | 疑似含有烟火类内容元素 | 对Labal字段的说明。 重要 该字段为Label字段的解释说明,可能会变更调整,建议根据Label字段进行处置,不要基于该字段进行结果处置。 |
表 5. CommentDatas
名称 | 类型 | 示例值 | 描述 |
Result | JSONArray | 评论检测结果。更多信息,请参见Result。 | |
CommentDatas | JSONArray | 检测结果。更多信息,请参见CommentDatas(内嵌)。 |
表 6. CommentDatas(内嵌)
名称 | 类型 | 示例值 | 描述 |
Result | JSONArray | 评论检测结果。更多信息,请参见Result。 |
表 7. Usage
名称 | 类型 | 示例值 | 描述 |
Total_tokens | Integer | 1039 | 总tokens数 |
Output_tokens | Integer | 56 | 输出tokens数 |
Input_tokens | Integer | 983 | 输入tokens数 |
示例
请求示例
{
"serviceParameters": {
"reqId": "AAAAA-BBBBB-AIXI-1314-CCCCC"
}
}
正常返回示例
有违规内容
{
"RequestId": "ABCD1234-1234-1234-1234-123****",
"Message": "OK",
"Code": 200,
"Data": {
"DataId": "dataId***",
"RiskLevel": "high",
"MainData": {
"Result": [
{
"Label": "violent_explosion",
"Description": "烟火类内容"
},
{
"Label": "sexual_partialNudity",
"Description": "性感内容"
}
]
},
"CommentDatas": [
{
"Result": [
{
"Label": "violent_explosion",
"Description": "烟火类内容"
},
{
"Label": "sexual_partialNudity",
"Description": "性感内容"
}
],
"CommentDatas": [
{
"Result": [
{
"Label": "violent_explosion",
"Description": "烟火类内容"
},
{
"Label": "violent_explosion",
"Description": "烟火类内容"
}
]
},
{
"Result": [
{
"Label": "nonLabel",
"Description": "未检测到违规"
}
]
}
]
},
{
"Result": [
{
"Label": "violent_explosion",
"Description": "烟火类内容"
}
]
},
{
"Result": [
{
"Label": "nonLabel",
"Description": "未检测到违规"
}
]
}
],
"Usage": {
"Total_tokens": 1039,
"Output_tokens": 56,
"Input_tokens": 983
}
}
}
无违规内容
{
"RequestId": "ABCD1234-1234-1234-1234-123****",
"Message": "OK",
"Code": 200,
"Data": {
"DataId": "dataId***",
"RiskLevel": "none",
"MainData": {
"Result": [
{
"Label": "nonLabel",
"Description": "未检测到违规"
}
]
},
"CommentDatas": [
{
"Result": [
{
"Label": "nonLabel",
"Description": "未检测到违规"
}
],
"CommentDatas": [
{
"Result": [
{
"Label": "nonLabel",
"Description": "未检测到违规"
}
]
},
{
"Result": [
{
"Label": "nonLabel",
"Description": "未检测到违规"
}
]
}
]
},
{
"Result": [
{
"Label": "nonLabel",
"Description": "未检测到违规"
}
]
},
{
"Result": [
{
"Label": "nonLabel",
"Description": "未检测到违规"
}
]
}
],
"Usage": {
"Total_tokens": 1039,
"Output_tokens": 56,
"Input_tokens": 983
}
}
}
Code说明
以下为图文混合模态审核接口返回Code的含义说明,系统仅对Code返回为200和280的请求计量计费,其他Code不会计费。
Code | 说明 |
200 | 请求正常。 |
280 | 任务检测中。 |
400 | 请求参数为空。 |
401 | 请求参数错误。 |
402 | 请求参数长度不符合接口规定,请检查并修改。 |
408 | 该账号无权限调用该接口,可能是账号未开通或者已欠费,或者调用账号未被授权访问。 |
500 | 系统异常。 |