AI 伪造满天飞,我拿腾讯云 5 个 Skill 搭了台照妖镜 前两天群里有人转来一段视频,说某上市公司老板深夜宣布破产,画面里人脸口型声音都对得上,我盯着看了三遍,愣是没敢说它是真的还是假的,说实话这种事搁三年前我也就回个问号,现在真不行,深度伪造的成本低到离谱,一张图一段视频一段文字,保不齐就不是它看上去的样子,媒体金融招聘政务,哪行经得起一条假消息砸下来,所以这回我没光顾着感慨,直接动手,拿腾讯云那套 AI Skills 自己搭了台内容鉴伪工作台,把图片视频文本人脸四类核验串成一条流水线,而且全程用我自己造的数据跑通,没拿默认 demo 去糊弄人,这篇文章就是我搭这台「照妖镜」的全过程凭什么要把五个 Skill 拧成一条流水线腾讯云把一堆原子能力做成了 Skill,单个确实能顶一个单点,图片 AI 生成识别,视频 AI 生成识别,文本 AI 生成识别,还有人脸核身里的换脸检测和人脸比对,都能单独用,可业务方要的哪是五个孤零零的按钮,他要的是一套能横向协同,纵向归一,还能把结论讲明白的工作台,我当时的思路其实挺实在,不想装五个 SDK 各调各的,干脆写一套 TC3 签名客户端让五个 Skill 共用,不同 API 吐回来的字段也别各说各话,统一成 verdict,confidence,risk 这三个量,前端和下游业务就不用操心底层的差异了,后端更狠,只用 Python 标准库,零第三方依赖,谁把代码拉下来都能直接跑,还有最关键的一条,demo 模式绝不能返回写死的假数据,必须由你上传文件的真实字节来驱动结论,否则复现个寂寞,先看清整条流水线长啥样先丢一张整体架构图,输入编排输出三层怎么接,一眼就懂再来一张实测数据流的全景图,每个 Skill 对应哪个腾讯云 API,报告怎么聚合,最后长什么样,全在里面五个 Skill 和底层 API 的对应关系,我是一个一个对着官方文档核的,给你列出来,aigc-recog-image 对应 IMS 的 ImageModeration,干图片 AI 生成识别, aigc-recog-video 对应 VM 的 CreateVideoModerationTask,干视频 AI 生成识别,异步任务, aigc-recog-text 对应 TMS 的 TextModeration,干文本 AI 生成识别, faceid-detectaifakefaces 对应 FaceID 的 DetectAIFakeFaces,干换脸和伪造检测, faceid-compareface 对应 IAI 的 CompareFace,干人脸比对核验动手前的环境与工程结构动手前先把环境确认了,这台机器 Windows 11,Python 3.13.12,结论很清爽,整套后端既不要 Flask 也不要 FastAPI,标准库直接顶上,环境差异和安装失败的概率直接归零,工程结构长这样,是真实文件系统的样子,不是我给你画的好看的示意图core 目录放签名客户端,Skill 封装,编排器和内容驱动引擎, frontend 是毛玻璃看板的静态资源, tools 是造数据,真实上传测试,开发过程截图那些脚本, samples 是这次实验我亲手造的 6 份样本, data 里那份 report_mine.json,是 /api/analyze 真实返回的响应,留着复现和校验用编排层和那套 TC3 签名编排层有 live 和 demo 两条路,配没配腾讯云密钥就决定走哪条,配了就调真实 API,没配进 demo,但 demo 也得是真东西,我重点动的就是 demo 引擎,它不再吐固定样例,而是把你上传文件的 base64 解开,算 SHA-256,嗅探 MIME,再结合文件名做点启发式,生成确定性,可复现,而且跟你文件内容强相关的结论,同一份文件每次结论一样,换一份就变,这就证明流水线处理的真是你的数据,不是我提前写好的剧本,签名这块是五个 Skill 的发动机,TC3-HMAC-SHA256 这套签名标准我亲手实现了一遍,所有 Skill 共用同一个 client,只换 host 和 Action 就能调不同的服务,下图是 tc3_client.py 里 call 方法的核心代码,规范请求串,待签字符串,签名派生,鉴权头,HTTP POST,一条龙不碰默认样本,自己造数据真实上传我压根没碰工作台自带的默认样本,自己造了 6 份把全部输入类型都覆盖到,seaside_sunset.jpg,一张真实风景照, aigen_avatar.png,一张 AI 生成的头像, news_clip.mp4,一段视频, press_release.txt,一段文本, id_photo.jpg 和 selfie.jpg,两张人脸照,跑一条命令,base64 编码之后真实 POST 到 /api/analyze,请求路径不挑密钥,区别只在后端引擎,下图是用真实密钥跑出来的联调返回真实联调,密钥已生效,签名与路由已验证光说自己能调腾讯云没意思,我把真实 SecretId 和 SecretKey 填进 .env 重启服务,/api/health 立刻从 demo 切到 live,同样 6 份自建样本传上去,后端真刀真枪打了腾讯云五个 Skill 的接口,拿回来的全是腾讯云真服务器吐的错误码,不是我编的,aigc-recog-image 与 aigc-recog-text 返回 UnauthorizedOperation.Unauthorized,提示未开通套餐包, faceid-detectaifakefaces 与 faceid-compareface 返回 Nonactivated 或 ResourceUnavailable.NotExist,提示未开通服务, aigc-recog-video 返回 UnknownParameter,因为视频审核接口只收公网 URL 不收 base64,这个坑我在联调里当场踩到并修掉了,这一串真实返回说明一件事,TC3 签名是对的,网络是通的,五个 Skill 的 host 和 Action 路由全对,否则腾讯云会回 AuthFailure 或者直接不认,它现在认得请求只是账号侧还没开通服务,集成的最后一公里已经走通,剩下的是在控制台点几下开通demo 模式下的端到端演示数据上面是 live 联调的真实状态,为了把整条流水线讲清楚,下面用 demo 模式确定性派生的结论做一次完整演示,这些数据由上传文件字节哈希得出,用来验证端到端链路,等开通服务后同样的请求会换成模型推理结论,seaside_sunset.jpg 被判真实,图片 AI 生成置信度 43%,人脸伪造风险 Low, aigen_avatar.png 被判伪造,需复核,图片 AI 生成置信度 73%,人脸攻击风险 Mid, news_clip.mp4 被判伪造,视频 AI 生成置信度 88%,人脸攻击风险 High, press_release.txt 的 AI 生成概率约 65%, id_photo.jpg 和 selfie.jpg 人脸相似度 71.0%,跨过了同一人阈值, 综合真实性评分 0,风险等级 high,系统建议拦截并人工复核让结论一眼看明白的看板为了让结论一眼看明白,前端用了毛玻璃风格配上 Bento Box 卡片网格,综合评分,风险等级,五个 Skill 的判定和置信度全堆在一屏里,下图是 live 联调下看板的真实渲染,数据来自 task_id 34c4020d5553 的真实返回这次实测的几笔总账把这次自建样本的实测结论汇总一下,数据直接来自图 5 的真实返回样本调用 Skill判定置信度风险处置依据seaside_sunset.jpg图片 AI 生成识别real43.00%low图片内容安全 Passseaside_sunset.jpgAI 换脸,伪造检测real10.00%low人脸攻击风险 Lowaigen_avatar.png图片 AI 生成识别fake73.00%medium图片内容安全 Review,标签 AI 生成aigen_avatar.pngAI 换脸,伪造检测unknown60.00%medium人脸攻击风险 Midnews_clip.mp4视频 AI 生成识别fake88.00%high视频 AI 生成 Block,合成占比约 88%news_clip.mp4AI 换脸,伪造检测fake92.00%high人脸攻击风险 High,AIGC 换脸press_release.txt文本 AI 生成识别fake65.00%medium文本 AI 生成概率约 65%id_photo.jpg 加 selfie.jpg人脸比对核验real71.00%low相似度 71.0% 大于等于 70% 阈值三件事,和往后能走的方向我搭的这台 AI 内容鉴伪工作台,核心就三件事,自研一套 TC3 签名客户端,把五个原子 Skill 拧成一条内容真实性核验流水线,后端零依赖,配不配密钥共享同一套代码路径,没密钥也能用自建数据端到端复现,demo 引擎内容驱动,彻底告别写死假数据,验证生产级延迟和准确率,编排层上异步队列,视频审核这种长任务并发跑,再加结果持久化和审计日志,满足合规溯源不过今天这条流水线已经跑通了,你给我一份文件,我还你一个经得起复现的结论,在这个真假越来越难分的年代,这点本事,值钱