讯飞有一个可以根据描述文本自动生成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】,欢迎大家订阅,我会同步文章到公众号上。

posted @ 2024-06-13 21:09  一方_self  阅读(462)  评论(0编辑  收藏  举报