文档:
https://www.xfyun.cn/doc/spark/PPTGeneration.html
价格方面提供了免费1000点的额度,生成一次是10点,正好100次,如果要购买的话最低要购买1344元的,没有按量付费的模式,个人小开发者可买不起。
让我们跑起来玩玩,官方提供了python的sdk,下载到本地:
不想下载sdk的,我这边直接提供了下载好的源码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 | # -*- coding:utf-8 -*-import hashlibimport hmacimport base64import jsonimport timeimport requestsclass 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 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
怕它失效,保险点存了一份放网盘了:
链接:
https://pan.baidu.com/s/1oFzH6ySQeKAAiFhtq7b9tA?pwd=yfyz 提取码: yfyz 复制这段内容后打开百度网盘手机App,操作更方便哦
我们打开ppt see see:
颜色挺喜庆,目录:
内容:
发现,它生成的ppt格式比较固定,内容还过得去。
这篇分享文章就到这里啦!如果你对文章内容有疑问或想要深入讨论,欢迎在评论区留言,我会尽力回答。同时,如果你觉得这篇文章对你有帮助,不妨点个赞并分享给其他同学,让更多人受益。
想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。
感谢你的阅读与支持,期待在未来的文章中与你再次相遇!
我的微信公众号:【xdub】,欢迎大家订阅,我会同步文章到公众号上。