腾讯云VOD AIGC视频生成工具 回调实现

腾讯云VOD AIGC视频生成工具

一个功能完整的腾讯云VOD AIGC视频生成工具库,支持轮询模式回调模式两种获取结果方式。

目录结构

test/vod/ ├── tencent_aigc_video.py # 核心库:API封装、任务管理 ├── config.py # 配置文件:从项目config.yaml读取凭证 ├── examples.py # 使用示例:各种生成场景 ├── callback_demo.py # 回调演示:带SessionContext的任务创建 ├── setup_callback.py # 回调配置:设置/查询回调URL └── README.md # 本文档

快速开始

1. 配置凭证

确保项目根目录的config.yaml包含腾讯云VOD凭证:

secret_id:tencent_vod:"AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxx"secret_key:tencent_vod:"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

或设置环境变量:

exportTENCENTCLOUD_SECRET_ID="AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxx"exportTENCENTCLOUD_SECRET_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"exportTENCENTCLOUD_SUB_APP_ID="1234567890"

2. 验证配置

cd/opt/xj_ai_suanfa/AIGC_INTERFACE_HSC/test/vod python config.py

输出示例:

腾讯云VOD配置状态: secret_id: AKIDxxxx...xxxx secret_key: ******************** sub_app_id: 1234567890 状态: ✓ 配置完整

方式一:轮询模式(同步等待)

适用场景:单任务测试、简单脚本、需要立即获取结果

基本用法

fromtencent_aigc_videoimportAIGCVideoGenerator,AIGCModel# 创建生成器generator=AIGCVideoGenerator()# 生成视频(同步等待,默认超时600秒)result=generator.generate_video(prompt="一只橘猫在阳光下打哈欠,毛发随风轻轻飘动",model=AIGCModel.GV,model_version="3.1-fast",aspect_ratio="16:9",timeout=600)# 获取结果print(f"任务ID:{result['task_id']}")print(f"状态:{result['status']}")print(f"视频URL:{result['video_urls']}")

高级用法(精细控制)

fromtencent_aigc_videoimportAIGCVideoManager,AIGCModel,TencentVODConfig# 创建配置和管理器config=TencentVODConfig.from_env()manager=AIGCVideoManager(config)# 创建任务task=manager.create_video_task(model=AIGCModel.GV,model_version="3.1-fast",prompt="海上日落,金色阳光洒在波光粼粼的海面上",output_config={"StorageMode":"Temporary",# 临时存储,7天有效"AspectRatio":"16:9"})print(f"任务已创建:{task.task_id}")# 自定义进度回调defprogress_callback(t):status_map={"WAIT":"等待中","RUN":"生成中","DONE":"完成","FAIL":"失败"}print(f" 状态:{status_map.get(t.status.value,t.status.value)}")# 等待完成completed=manager.wait_for_completion(task,timeout=600,poll_interval=10,# 每10秒查询一次progress_callback=progress_callback)# 获取结果ifcompleted.video_urls:print(f"视频URL:{completed.video_urls[0]}")

运行示例

python examples.py# 选择 1-7 测试不同功能

方式二:回调模式(异步通知)

适用场景:批量任务、生产环境、无需阻塞等待

原理

┌─────────────┐ 1.创建任务 ┌─────────────────┐ │ 你的代码 │ ───────────────→ │ 腾讯云VOD API │ └─────────────┘ (立即返回) └────────┬────────┘ │ 2.后台生成 ↓ ┌─────────────┐ 3.HTTP POST ┌─────────────────┐ │ 你的回调服务 │ ←──────────────── │ 腾讯云回调服务 │ └─────────────┘ (任务完成时) └─────────────────┘

步骤1:配置回调URL(一次性)

方法A:使用工具脚本
# 查询当前配置python setup_callback.py query# 设置回调URLpython setup_callback.pyset"https://your-server.com/vod/callback"
方法B:代码配置
fromtencent_aigc_videoimportTencentVODClient,TencentVODConfig config=TencentVODConfig.from_env()client=TencentVODClient(config)# 设置回调params={"SubAppId":config.sub_app_id,"Mode":"PUSH","NotificationUrl":"https://your-server.com/vod/callback","UploadMediaCompleteEventSwitch":"ON","DeleteMediaCompleteEventSwitch":"ON"}client._make_request("ModifyEventConfig",params)

步骤2:创建任务

fromtencent_aigc_videoimportAIGCVideoManager,AIGCModel,TencentVODConfigimportjsonimportuuidfromdatetimeimportdatetime config=TencentVODConfig.from_env()manager=AIGCVideoManager(config)# 生成业务IDbusiness_id=f"order_{uuid.uuid4().hex[:8]}"# SessionContext:透传业务信息,回调时原样返回session_context=json.dumps({"business_id":business_id,"user_id":"user_123","created_at":datetime.now().isoformat()},ensure_ascii=False)# 创建任务(立即返回,不阻塞)task=manager.create_video_task(model=AIGCModel.GV,model_version="3.1-fast",prompt="一只橘猫在阳光下打哈欠",output_config={"StorageMode":"Temporary","AspectRatio":"16:9"},session_id=business_id,# 去重IDsession_context=session_context# 透传信息)print(f"任务已提交:{task.task_id}")print(f"业务ID:{business_id}")# 不需要等待,回调会自动发送

步骤3:接收回调

回调数据示例
{"EventType":"AigcVideoTaskComplete","AigcVideoTaskCompleteEvent":{"TaskId":"1234567890-AigcVideoTask-xxxxxxxxxxxx","Status":"FINISH","Progress":100,"Input":{"Prompt":"一只橘猫在阳光下打哈欠","ModelName":"GV","ModelVersion":"3.1-fast"},"Output":{"FileInfos":[{"FileUrl":"http://xxx.vod2.myqcloud.com/.../aigcVideoGenFile.mp4","ExpireTime":"2026-01-13T01:50:26Z"}]},"SessionContext":"{\"business_id\": \"order_abc123\", \"user_id\": \"user_123\"}","SessionId":"order_abc123"}}
回调处理示例(FastAPI)
fromfastapiimportFastAPI,Requestimportjson app=FastAPI()@app.post("/vod/callback")asyncdefvod_callback(request:Request):data=awaitrequest.json()event_type=data.get("EventType")ifevent_type=="AigcVideoTaskComplete":event=data["AigcVideoTaskCompleteEvent"]# 解析透传的业务信息ctx=json.loads(event.get("SessionContext","{}"))business_id=ctx.get("business_id")user_id=ctx.get("user_id")# 获取结果status=event["Status"]ifstatus=="FINISH":video_url=event["Output"]["FileInfos"][0]["FileUrl"]# 更新数据库、通知用户等print(f"任务完成:{business_id}, 视频:{video_url}")else:error_msg=event.get("Message","未知错误")print(f"任务失败:{business_id}, 错误:{error_msg}")return{"code":0,"message":"success"}

两种方式对比

特性轮询模式回调模式
代码复杂度简单需要回调服务
获取结果同步阻塞异步通知
API调用次数N次(轮询)0次
适用场景单任务/测试批量/生产
资源占用阻塞线程无阻塞
额外配置NotificationUrl

支持的模型

模型文生视频(T2V)图生视频(I2V)首尾帧多图输入
GV (Google Veo)
KLING (可灵)✓ (2.1+)
HUNYUAN (混元)
HAILUO (海螺)
VIDU✓ (q2-pro)✓ (1-7张)
JIMENG (即梦)
OS (OpenAI Sora)
MINGMOU (明眸)
SEEDANCE部分

常见问题

Q: 回调配置后,原来的轮询代码还能用吗?

A: 可以!两种方式互不影响。配置回调后,任务完成时会同时:

  • 轮询代码正常返回结果
  • 腾讯云发送回调到配置的URL

Q: SessionContext 是必须的吗?

A: 不是。不传也会收到回调,只是回调里SessionContext字段为空。

Q: 视频URL有效期多久?

A:StorageMode: Temporary为7天,StorageMode: Persist为永久(需要开通存储)。

Q: 如何测试回调?

A: 使用 https://webhook.site 获取临时URL测试。


API文档

  • 创建AIGC视频任务
  • 查询任务详情
  • 修改事件通知配置
  • 事件通知综述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1119704.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于yolov11实现车辆速度估计+距离测量+轨迹跟踪+区域进出统计python源码实现

这个是网上目前可能唯一一个使用不足一百行代码实现了复杂车辆速度估计距离测量轨迹跟踪区域进出统计系统。之所以这么简单是因为ultralytics模块现在已经成熟而且强大,不需要从头开始写车辆速度估计、距离测量、轨迹跟踪、区域进出统计系统代码,因为里面…

PCB阻焊层与助焊层的本质区别

清晰理解PCB的“化妆术”:阻焊层与助焊层的本质区别在Altium Designer(AD)中设计PCB时,我们经常在层叠管理器里看到 Solder Mask 和 Paste Mask 这两层。它们到底是什么?为什么总是成对出现?简单来说&#…

架构师视角:网络安全体系深度解析——核心模型、数据标准与落地实践

网络安全体系概述 4.1.1 网络安全体系概述 一般面言,网络安全体系是网络安全保障系统的最高层概念抽象,是由各种网络安全单元按照一定的规则组成的,共同实现网络安全的目标。网络安全体系包括法律法规政策文件、安全策略、组织管理、技术措…

本章节我们将讨论如何在 React 中使用表单。

React 表单与事件 本章节我们将讨论如何在 React 中使用表单。HTML 表单元素与 React 中的其他 DOM 元素有所不同,因为表单元素生来就保留一些内部状态。在 HTML 当中&#xff0c;像 <input>, <textarea>, 和 <select> 这类表单元素会维持自身状态&#xff0…

专利解析:涂液器凸轮槽与导向突起的滑动配合机制

在追求健康头皮与浓密秀发的道路上&#xff0c;一款得心应手的头皮护理液涂抹工具至关重要。今天我们要探讨的这款液体化学药剂涂抹器&#xff0c;专为涂抹头皮护理液而设计&#xff0c;旨在促进头皮健康、预防脱发。有了它&#xff0c;用户只需轻轻倾斜&#xff0c;就能将护理…

Escrcpy(安卓手机投屏软件)

Escrcpy 是一款强大的工具&#xff0c;它允许用户通过图形化的 Scrcpy 界面来显示和控制他们的 Android 设备。这款应用程序由 Electron 作为其底层框架驱动。Escrcpy 无需任何账户就可以使用&#xff0c;无需担心隐私或安全问题。Escrcpy没有广告&#xff0c;完全免费开源。 软…

显微观察:Bamtone K系列盲孔显微镜性能优势深度评测

随着电子产品向着高密度、小型化的方向持续演进&#xff0c;印刷电路板&#xff08;PCB&#xff09;的制造工艺复杂度也随之攀升。高密度互连&#xff08;HDI&#xff09;技术中&#xff0c;盲孔&#xff08;Blind Via&#xff09;作为连接不同层电路的关键结构&#xff0c;其质…

Photo Editor安卓版(照片编辑器安卓版)

Photo Editor是一款功能强大的图像编辑工具&#xff0c;适用于安卓设备。它提供了丰富的编辑功能&#xff0c;可以帮助您对照片进行各种调整、修饰和美化。不论您是想增强照片的颜色、裁剪图像的尺寸、添加滤镜效果&#xff0c;还是修复照片中的缺陷&#xff0c;这款软件都能满…

利用多智能体AI实现动态竞争格局评估

利用多智能体AI实现动态竞争格局评估关键词&#xff1a;多智能体AI、动态竞争格局评估、智能体交互、机器学习、博弈论摘要&#xff1a;本文聚焦于利用多智能体AI实现动态竞争格局评估这一重要课题。首先介绍了该研究的背景、目的、预期读者等内容。接着详细阐述了多智能体AI和…

【高斯泼溅】当3DGS遇上传统模型:从“画在一起”到“画得对”的全攻略​

在真实场景重建、数字孪生与新一代三维表达体系中&#xff0c;3DGS正迅速成为不可忽视的技术方向。凭借在细节保真度、重建效率和真实感上的优势&#xff0c;它让传统基于三维精模、倾斜摄影和网格建模的表达方式&#xff0c;首次在“真实还原”层面显得力不从心。 城市场景-3D…

leetcode 856. Score of Parentheses 括号的分数-耗时100

Problem: 856. Score of Parentheses 括号的分数 解题过程 耗时100%&#xff0c;两种方案的&#xff0c;1、递归调用即可&#xff0c;2、或者使用栈的&#xff0c; 1、使用栈&#xff0c;耗时100% int scoreOfParentheses(string s) {if(s"()") return 1;int n s.si…

aigc免费降重神器测评:这才是降低ai率的正确打开方式,降ai率必看。

最近太多人私信我&#xff1a;“论文AI率太高怎么办&#xff1f;连人工改的都不过检测&#xff01;” 这事儿我太懂了——前段时间我自己也被AI检测折磨得快崩溃。 市面上一堆打着“降低AI率”旗号的网站&#xff0c;不是乱扣格式&#xff0c;就是改完反而更像AI写的。 所以我…

如何优化慢SQL?索引失效的常见场景有哪些?

以下是一些优化慢SQL的方法以及索引失效的常见场景&#xff1a; 优化慢SQL的方法 索引优化 分析查询语句&#xff1a;通过数据库的查询分析工具&#xff0c;如MySQL的EXPLAIN命令&#xff0c;查看查询执行计划&#xff0c;了解数据库如何使用索引来执行查询&#xff0c;确定是否…

springboot+vue开发实现新能源汽车4s店销售管理系统应用和研究

文章目录摘要项目简介大数据系统开发流程主要运用技术介绍爬虫核心代码展示结论源码文档获取定制开发/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;摘要 随着新能源汽车市场的快速发展&#xff0c;传统4S店销售管理模式面临信息化、智能化转型需求…

技术视角拆解:一家AI搜索优化服务商的完整方法论——以北京链创网络为例

摘要&#xff1a; 本文从技术实现与方案设计的角度&#xff0c;深入剖析一家AI搜索优化&#xff08;GEO&#xff09;服务商——北京链创网络科技有限公司公开的解决方案。通过解构其“GEO驱动的AI种草营销”全链路图&#xff0c;分析其中各环节的技术内涵与逻辑关联&#xff0c…

Hadoop数据可视化解决方案

Hadoop数据可视化实战&#xff1a;从海量数据到直观 Insights 的完整解决方案 副标题&#xff1a;整合工具链、优化性能、避坑指南 摘要/引言 问题陈述 Hadoop作为大数据生态的核心存储与计算平台&#xff0c;承载了企业80%以上的海量数据&#xff08;如用户行为日志、交易…

降ai率工具红黑榜:拒绝智商税,这几款免费降ai率工具才真好用

最近太多人私信我&#xff1a;“论文AI率太高怎么办&#xff1f;连人工改的都不过检测&#xff01;” 这事儿我太懂了——前段时间我自己也被AI检测折磨得快崩溃。 市面上一堆打着“降低AI率”旗号的网站&#xff0c;不是乱扣格式&#xff0c;就是改完反而更像AI写的。 所以我…

电脑c盘红了怎么清理c盘空间,教你几招解决,马上满血复活!

很多不是很懂电脑的用户&#xff0c;在用电脑的时候不会去选择文件存放路径&#xff0c;所以几乎所有的文件全部的默认存放在C盘中了。时间久了&#xff0c;C Drive 就会变红并且提示空间不足&#xff0c;电脑不仅会越来越卡了&#xff0c;甚至有的程序还会无法运行。那么今天&…

免费降低ai率看这篇就够了!5款降ai率工具实测,降ai效果炸裂。

最近太多人私信我&#xff1a;“论文AI率太高怎么办&#xff1f;连人工改的都不过检测&#xff01;” 这事儿我太懂了——前段时间我自己也被AI检测折磨得快崩溃。 市面上一堆打着“降低AI率”旗号的网站&#xff0c;不是乱扣格式&#xff0c;就是改完反而更像AI写的。 所以我…

GitHub精选----从监控到黑苹果:盘点5个让你相见恨晚的硬核开源项目

摘要&#xff1a;作为技术折腾党&#xff0c;我们的收藏夹里永远缺一个“更顺手”的工具。今天为大家挖掘了 GitHub 上 5 个各具特色的开源项目&#xff1a;有的能让你一眼看穿 VPS 的真实状态&#xff0c;有的能利用 AI 自动解密&#xff0c;还有的能让你的 Proxmox 服务器秒变…