讯飞有一个可以根据描述文本自动生成PPT的AI接口,有趣
文档:
https://www.xfyun.cn/doc/spark/PPTGeneration.html
价格方面提供了免费1000点的额度,生成一次是10点,正好100次,如果要购买的话最低要购买1344元的,没有按量付费的模式,个人小开发者可买不起。
让我们跑起来玩玩,官方提供了python的sdk,下载到本地:
不想下载sdk的,我这边直接提供了下载好的源码:
# -*- coding:utf-8 -*- import hashlib import hmac import base64 import json import time import requests class AIPPT(): def __init__(self, APPId, APISecret, Text): self.APPid = APPId self.APISecret = APISecret self.text = Text self.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 None def 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 = headers response = requests.request("POST", url=url, data=json.dumps(body), headers=headers).text resp = 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).text print(response) return response else: 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'] break time.sleep(2) return PPTurl if __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
怕它失效,保险点存了一份放网盘了:
链接:
https://pan.baidu.com/s/1oFzH6ySQeKAAiFhtq7b9tA?pwd=yfyz 提取码: yfyz 复制这段内容后打开百度网盘手机App,操作更方便哦
我们打开ppt see see:
颜色挺喜庆,目录:
内容:
发现,它生成的ppt格式比较固定,内容还过得去。
这篇分享文章就到这里啦!如果你对文章内容有疑问或想要深入讨论,欢迎在评论区留言,我会尽力回答。同时,如果你觉得这篇文章对你有帮助,不妨点个赞并分享给其他同学,让更多人受益。
想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。
感谢你的阅读与支持,期待在未来的文章中与你再次相遇!
我的微信公众号:【xdub】,欢迎大家订阅,我会同步文章到公众号上。