讯飞有一个可以根据描述文本自动生成PPT的AI接口,有趣

2024-06-14 04:04

本文主要是介绍讯飞有一个可以根据描述文本自动生成PPT的AI接口,有趣,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文档:https://www.xfyun.cn/doc/spark/PPTGeneration.html

价格方面提供了免费1000点的额度,生成一次是10点,正好100次,如果要购买的话最低要购买1344元的,没有按量付费的模式,个人小开发者可买不起。

让我们跑起来玩玩,官方提供了python的sdk,下载到本地:
 

不想下载sdk的,我这边直接提供了下载好的源码:

​
# -*- coding:utf-8 -*-import hashlibimport hmacimport base64import jsonimport timeimport requestsclass AIPPT():def __init__(self, APPId, APISecret, Text):self.APPid = APPIdself.APISecret = APISecretself.text = Textself.header = {}# 获取签名def get_signature(self, ts):try:# 对app_id和时间戳进行MD5加密auth = self.md5(self.APPid + str(ts))# 使用HMAC-SHA1算法对加密后的字符串进行加密return self.hmac_sha1_encrypt(auth, self.APISecret)except Exception as e:print(e)return Nonedef hmac_sha1_encrypt(self, encrypt_text, encrypt_key):# 使用HMAC-SHA1算法对文本进行加密,并将结果转换为Base64编码return base64.b64encode(hmac.new(encrypt_key.encode('utf-8'), encrypt_text.encode('utf-8'), hashlib.sha1).digest()).decode('utf-8')def md5(self, text):# 对文本进行MD5加密,并返回加密后的十六进制字符串return hashlib.md5(text.encode('utf-8')).hexdigest()# 创建PPT生成任务def create_task(self):url = 'https://zwapi.xfyun.cn/api/aippt/create'timestamp = int(time.time())signature = self.get_signature(timestamp)body = self.getbody(self.text)headers = {"appId": self.APPid,"timestamp": str(timestamp),"signature": signature,"Content-Type": "application/json; charset=utf-8"}self.header = headersresponse = requests.request("POST", url=url, data=json.dumps(body), headers=headers).textresp = json.loads(response)if (0 == resp['code']):return resp['data']['sid']else:print('创建PPT任务成功')return None# 构建请求body体def getbody(self, text):body = {"query": text}return body# 轮询任务进度,返回完整响应信息def get_process(self, sid):print("sid:" + sid)if (None != sid):response = requests.request("GET", url=f"https://zwapi.xfyun.cn/api/aippt/progress?sid={sid}",headers=self.header).textprint(response)return responseelse:return None# 获取PPT,以下载连接形式返回def get_result(self):# 创建PPT生成任务task_id = self.create_task()# PPTurl = ''# 轮询任务进度while (True):response = self.get_process(task_id)resp = json.loads(response)process = resp['data']['process']if (process == 100):PPTurl = resp['data']['pptUrl']breaktime.sleep(2)return PPTurlif __name__ == '__main__':# 控制台获取APPId = "自己的appid"APISecret = "自己的secret"# 生成PPT要求query = ("介绍一下《一方云知》这个小程序的功能和使用。一方云知是一个可以保存笔记、""有ChatGPT、文生图功能、人像动漫化功能的微信小程序。且没有广告、免费使用")demo = AIPPT(APPId, APISecret, query)result = demo.get_result()print("生成的PPT请从此地址获取:\n" + result)​

直接超级简单,输入文案直接运行即可:
 

等待

进度70%了:

好了:

不知道这个地址有没有时效性,讯飞发挥的生成好的pptx源地址如下:

https://bjcdn.openstorage.cn/xinghuo-privatedata/%2Ftmp/apiTempFilea018b1acbdc74eeabfe20cee49224a0b1274908177877909050/%E4%B8%80%E6%96%B9%E4%BA%91%E7%9F%A5%E5%B0%8F%E7%A8%8B%E5%BA%8F%E5%8A%9F%E8%83%BD%E5%85%A8%E8%A7%A3%E6%9E%90.pptx

怕它失效,保险点存了一份放网盘了:

链接: 百度网盘 请输入提取码 提取码: yfyz 复制这段内容后打开百度网盘手机App,操作更方便哦

我们打开ppt see see:

颜色挺喜庆,目录:

内容:

发现,它生成的ppt格式比较固定,内容还过得去。

这篇分享文章就到这里啦!如果你对文章内容有疑问或想要深入讨论,欢迎在评论区留言,我会尽力回答。同时,如果你觉得这篇文章对你有帮助,不妨点个赞并分享给其他同学,让更多人受益。

想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。

感谢你的阅读与支持,期待在未来的文章中与你再次相遇!

我的微信公众号:【xdub】,欢迎大家订阅,我会同步文章到公众号上。

这篇关于讯飞有一个可以根据描述文本自动生成PPT的AI接口,有趣的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1059316

相关文章

MySQL中C接口的实现

《MySQL中C接口的实现》本节内容介绍使用C/C++访问数据库,包括对数据库的增删查改操作,主要是学习一些接口的调用,具有一定的参考价值,感兴趣的可以了解一下... 目录准备mysql库使用mysql库编译文件官方API文档对象的创建和关闭链接数据库下达sql指令select语句前言:本节内容介绍使用C/

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

JAVA实现Token自动续期机制的示例代码

《JAVA实现Token自动续期机制的示例代码》本文主要介绍了JAVA实现Token自动续期机制的示例代码,通过动态调整会话生命周期平衡安全性与用户体验,解决固定有效期Token带来的风险与不便,感兴... 目录1. 固定有效期Token的内在局限性2. 自动续期机制:兼顾安全与体验的解决方案3. 总结PS

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

Vue3 如何通过json配置生成查询表单

《Vue3如何通过json配置生成查询表单》本文给大家介绍Vue3如何通过json配置生成查询表单,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录功能实现背景项目代码案例功能实现背景通过vue3实现后台管理项目一定含有表格功能,通常离不开表单

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2