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


    文档:
    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 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】,欢迎大家订阅,我会同步文章到公众号上。

  • 相关阅读:
    CSDN社区图书馆活动之开书大吉(书评一)
    Jaeger系统实现对Harbor的链路追踪
    Go语法之函数 defer使用
    ClickHouse学习笔记之备份和恢复
    java8新特性,Lambda 表达式
    星创易联加入低速无人驾驶产业联盟,为客户和社会创造更大价值!
    一文带你实现云上部署轻量化定制表单Docker
    java计算机毕业设计ssm党支部在线学习
    Rasa 3.x 学习系列-Benchmarking Language Models
    推荐系统在腾讯游戏运营中的实践
  • 原文地址:https://www.cnblogs.com/shuinanxun/p/18246774