You need to enable JavaScript to run this app.
文档中心
复制全文
下载 pdf
实践教程
通过 SDK 接入并识别深度伪造内容
复制全文
下载 pdf
通过 SDK 接入并识别深度伪造内容

您可以通过大模型应用防火墙 SDK 调用伪造内容检测能力,对图片和视频中的 AI 生成、深度伪造、拼接篡改等异常痕迹进行识别。本文以检测本地图片文件为例,介绍如何通过 SDK 完成深度伪造内容检测。

适用场景

  • 业务自动审核:在用户上传图片或视频后自动发起检测,减少人工初筛压力。
  • 风险前置拦截:在理赔、风控、内容治理等环节,对高风险素材进行前置识别。
  • 复核系统集成:将检测结果回传至业务系统,辅助审核人员二次判断。

前提条件

已参考SDK 安装和初始化完成 SDK 依赖安装和客户端初始化配置。

素材要求

调用 SDK 前,请先确认素材格式和大小满足要求。

  • 图片
    • 格式:支持 jpg、jpeg、png、webp。
    • 大小:单张不超过 10 MB。
    • Base64 前缀:图片通常可直接传 Base64 字符串,无需额外添加 MIME 前缀;如果您的业务侧统一使用 Data URI,也可分别使用以下前缀:
      • jpg、jpeg:data:image/jpeg;base64,
      • png:data:image/png;base64,
      • webp:data:image/webp;base64,
  • 视频
    • 格式:支持 mp4、avi。
    • 大小:单条不超过 50 MB。
  • Base64 前缀:
    • mp4:data:video/mp4;base64,
    • avi:data:video/x-msvideo;base64,

步骤一 创建资产应用

  1. 登录大模型应用防火墙控制台。
  2. 在左侧导航栏,选择资产管理,然后单击添加资产。
  3. 配置以下参数并单击提交。
    • 接入方式:SDK 接入。
    • 应用名称:以 deepfake_demo 为例。
    • 防护场景:伪造内容检测。
      Image
  4. 返回控制台,获取资产 AppID,作为 scene 参数值。
    Image

步骤二 准备配置参数

参考以下表格了解 SDK 中的关键参数说明及获取方法。

参数

示例值

说明

myUrl

https://cn-beijing.sdk.access.llm-shield.omini-shield.com

大模型应用防火墙对外提供的接口服务地址,形如https://{region}.sdk.access.llm-shield.omini-shield.com,其中 region 为您购买的实例所属地域。

  • 华北2(北京):cn-beijing
  • 华东2(上海):cn-shanghai

ak、sk

  • AK:AKLTYWRhNDMw****
  • SK:TWprNE5XVXlZbc****

火山引擎账号的 Access Key ID 和 Secret Access Key。 获取说明请参见 Access Key(密钥)管理。

appid

app-d35p9du8pa51****

资产的唯一标识,完成控制台接入配置后,系统将自动生成 AppID。对应检测输入或输出内容是否合规中的scene。可前往大模型应用防火墙控制台资产管理模块,查看已通过 SDK 方式接入的资产 AppID。

注意

SDK 调用时支持传入通过 SDK 方式接入的资产 AppID,其他接入方式的资产不生效。

region

cn-beijing

资产所属地域,与 myUrl 中的 region 保持一致。

  • 华北2(北京):cn-beijing
  • 华东2(上海):cn-shanghai

image_file

/Users/DeepFakeTest/image_001.png

待检测对象的本地路径。

message.role

user

内容来源。可选值包括 user、assistant。对于用户上传的图片或视频,建议传入 user。

message.contenttype

IMAGE

内容类型。在 SDK 中通常对应枚举值 ContentTypeV2.IMAGE 和 ContentTypeV2.VIDEO。

步骤三 调用 SDK

请求示例

from volcenginesdkllmshield import *
import base64

# 加载图片内容并转换为Base64编码的函数
def load_image_content(image_file):
    with open(image_file, 'rb') as f:
        img_bytes = f.read()
   
   # 将二进制图片数据编码为Base64格式,并转换为UTF-8字符串
    base64_bytes = base64.b64encode(img_bytes).decode('utf-8')

    return base64_bytes, len(base64_bytes)

def main():
    # 配置信息(请替换为实际值)
    myUrl = "https://cn-shanghai.sdk.access.llm-shield.omini-shield.com"  #实例所在地域的服务接口地址
    ak = "AKLT****"  # Access Key,用于身份认证
    sk = "TWpZ****"  # Secret Key,用于身份认证
    appid = "app-****"  # 应用ID,标识要使用的审核应用
    region = "cn-shanghai"  # 实例所属地域
    TIMEOUT = 50  # 超时时间(秒)

    image_file = "/Users/DeepFakeTest/image_001.png"  # 待检测的图片文件路径
    image_content, size = load_image_content(image_file)
    if size > 10*1024*1024:
        print(f"请求失败: {size/1024}KB")
        return
    try:
        # 发送请求并获取响应
        client = ClientV2(myUrl, ak, sk, region, TIMEOUT)
        # 构建请求(使用 pydantic 模型)
        request = ModerateV2Request(
            scene=appid,  
            message=MessageV2(
                role="user",  # 检测的内容来源,user-用户提示词;assistant-模型响应内容
                content=image_content,  
                content_type=ContentTypeV2.IMAGE
            ),
        )

        response = client.Moderate(request)

        # 使用 pydantic 的内置序列化方法
        print("审核结果(JSON格式):")
        print(response.model_dump_json(by_alias=True, indent=2))  # pydantic 模型直接转 JSON

    except Exception as e:
        print(f"请求失败: {e}")


if __name__ == "__main__":
    main()

响应示例

以下响应结果以图片识别为例。

{
  "ResponseMetadata": {
    "RequestId": "02177937369911100000000000000000000ffff0a1614e5e1****",
    "Service": "llmshield",
    "Action": "Moderate",
    "Version": "2025-08-31",
    "Region": "cn-shanghai"
  },
  "Result": {
    "MsgID": "b298424d3aea4e3db10169b6ebac****",
    "RiskInfo": {
      "Risks": [
        {
          "Category": "109",
          "Label": "10900000",
          "Prob": 1.0,
          "Matches": []
        }
      ]
    },
    "Decision": {
      "DecisionType": 2,
      "DecisionDetail": {
        "BlockDetail": {},
        "ReplaceDetail": {
          "Replacement": null
        }
      },
      "DecisionStrategyID": null,
      "HitStrategyIDs": [
        "rule-d87gnhdtmscn1mp2****",
        "rule-d87gnhdtmscn1mp2****"
      ]
    },
    "PermitInfo": {
      "Permits": []
    },
    "ContentInfo": "png",
    "Degraded": false,
    "DegradeReason": ""
  }
}

步骤四 结果分析

调用完成后,通过响应结果判断送检内容是否为伪造内容。关注响应结果中的以下字段即可:
Image

参数

示例值

说明

RiskInfo.Risks.Category

109

风险一级分类,109 表示命中了深度伪造风险。

RiskInfo.Risks.Label

10900000

命中的二级检测分类标签信息,10900000 表示命中了深度伪造风险对应的标签。

RiskInfo.Risks.Prob

1.0

风险概率,表示检测内容属于该风险的可能性,取值范围为 0 到 1 之间。

Decision.DecisionType

2

命中的策略动作,表示对该命中内容的处理动作:

  • 1:通过,表示检测内容未命中深度伪造检测策略,直接放行
  • 2:拦截,表示检测内容命中了深度伪造检测策略且被拦截

Decision.HitStrategyIDs

rule-d87gnhdtmscn1mp2****

命中策略 ID 列表,表示内容命中的所有策略。深度伪造检测场景内置检测策略(为固定 ID),其他自定义策略不会生效。

ContentInfo

png

风险内容的格式。

  • 图片:支持 jpg、jpeg、png、webp
  • 视频:支持 mp4、avi

步骤五 查看深度伪造日志

检测完成后,您还可以在控制台查看对应的深度伪造日志,便于后续审计和排查。

  1. 登录大模型应用防火墙控制台。
  2. 在左侧菜单栏选择攻击日志。
  3. 在深度伪造日志页签下,查看判别结果为伪造的日志。
    Image
最近更新时间:2026.05.22 16:27:53
这个页面对您有帮助吗?
有用
有用
无用
无用