讯飞有一个可以根据描述文本自动生成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

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

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

我们打开ppt see see:

颜色挺喜庆,目录:

内容:

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/706745.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

无线网络与物联网技术[1]之近距离无线通信技术

无线网络与物联网技术 近距离无线通信技术WIFIWi-Fi的协议标准Wi-Fi的信道Wi-Fi技术的术语Wi-Fi的组网技术Ad-hoc模式无线接入点-APAP:FAT AP vs FIT AP Wi-Fi的特点与应用Wi-Fi的安全技术 Bluetooth蓝牙技术概论蓝牙的技术协议蓝牙的组网技术微微网piconet(了解)散…

安装操作系统1-Win10版本介绍及硬件要求

注意:安装系统,首先弄清有哪些版本及所需硬件环境。 1.Win10有哪些版本 微软将 Win10为以下7个版本: Windows 10 家庭版(Home) 面向所有普通用户,提供Win 10的基本功能。此版本适合个人家庭用户使用&am…

ATFX汇市:美国5月通胀率回落,降息预期刺激黄金走高

ATFX汇市:据美国劳工部发布的最新数据,美国5月核心CPI年率最新值3.4%,低于前值3.6%;名义CPI年率最新值3.3%,低于前值3.4%。核心CPI年率和名义CPI年率双双下降,超出此前市场预期(预期为整体保持不…

App自动化之dom结构和元素定位方式(包含滑动列表定位)

DOM结构 先来看几个名词和解释: dom: Document Object Model 文档对象模型 dom应用: 最早应用于html和js的交互。界面的结构化描述, 常见的格式为html、xml。核心元素为节点和属性 xpath: xml路径语言,用于xml 中的节点定位,X…

postman教程-20-Newman安装入门

上一小节我们学习了Postman mock测试的方法,本小节我们讲解一下Postman Newman的安装方法。 Newman是Postman团队开发的一个命令行工具,它允许用户通过命令行接口(CLI)运行Postman集合(Collections)和环境…

STM32程序启动过程

(1)首先对栈和堆的大小进行定义,并在代码区的起始处建立中断向量表,其第一个表项是栈顶地址(32位),第二个表项是复位中断服务入口地址; (2)然后执行复位中断&…

关于FPGA对 DDR4 (MT40A256M16)的读写控制 I

关于FPGA对 DDR4 (MT40A256M16)的读写控制 I 语言 :Verilg HDL EDA工具:ISE、Vivado 关于FPGA对 DDR4 (MT40A256M16)的读写控制 I一、引言二、DDR4的特性(MT40A256M16)(1…

QML学习十九:ttf字体库使用

一、前言 在使用QML时,常常自定义按钮,按钮上有显示个图标,其实,那不是图标,是文本,如何显示? 本篇记录,如何导入阿里巴巴字体库,并调用显示。 二、阿里巴巴字体库下载…

少样本学习元学习

基本概念 首先是机器学习: 然后,什么是元学习(what is meta learning?) 之前,Component都是让人自己设置的。在Meta Learning中,我们期望它能够自己学出来。 不同的meta learning方法就是想办法去学learning algori…

Vue3【二十一】Vue 路由模式(createWebHashHistory /createWebHistory )和RouterLink写法

Vue3【二十一】Vue 路由模式(createWebHashHistory /createWebHistory )和RouterLink写法 Vue3【二十一】Vue 路由模式和普通组件目录结构 createWebHistory history模式:url不带#号,需要后端做url适配 适合销售项目 利于seo crea…

Spring Boot整合hibernate-validator实现数据校验

文章目录 概念基本概念常用校验注解 前置内容整合Hibernate Validator快速入门优雅处理参数校验异常其余注解校验自定义校验注解 参考来源 概念 基本概念 Hibernate Validator 是一个参数校验框架,可以非常方便地帮助我们校验应用程序的入参,实现了参数…

零一科技Yi-VL 6B视觉大模型环境搭建推理

引子 最近看新闻博客说零一科技的Yi-VL-Plus视觉大模型效果很不错,那就想着尝尝鲜。这是第四篇关于视觉大模型的博客。之前有写过一篇零一科技的chat大模型零一科技Yi-34B Chat大模型环境搭建&推理_python部署大模型yi-34b-chat-CSDN博客,感兴趣的童…

一线大厂都在高薪抢AI产品经理?

哈喽,大家下午好呀~ 当AI的风吹到产品届,唯叹相见恨晚! 作为一名产品经理,日常写调研、需求分析、产品设计、项目管理、数据分析……每一项工作都需要投入大量的时间和精力。 但用上AI后,你会发现写个需…

Vue配置项之directives

Directives 首先说明一下,本人是前端小学生级别的菜鸡,吐槽的话请口下留情,在评论区指出错误或者补充不足,我会很喜欢,互喷不会进步,相互指点才会。。。。谢谢大家啦 目录 Directives 目录自己定义官网简…

Python学习从0开始——Kaggle计算机视觉001

Python学习从0开始——Kaggle计算机视觉001 一、卷积分类器1.分类器2.训练分类器3.使用 二、卷积和RELU1.特征提取2.带卷积的过滤器定义3.激活:4.用ReLU检测5.使用 三、最大池化1.最大池压缩2.使用3.平移不变性 四、滑动窗口1.介绍2.步长3.边界4.使用 五、自定义Con…

58.WEB渗透测试-信息收集- 端口、目录扫描、源码泄露(6)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:57.WEB渗透测试-信息收集- 端口、目录扫描、源码泄露(5)-CSDN博客…

数组(C语言)(详细过程!!!)

目录 数组的概念 一维数组 sizeof计算数组元素个数 二维数组 C99中的变⻓数组 数组的概念 数组是⼀组相同类型元素的集合。 数组分为⼀维数组和多维数组,多维数组⼀般比较多见的是二维数组。 从这个概念中我们就可以发现2个有价值的信息:(1)数…

鸿蒙轻内核A核源码分析系列七 进程管理 (1)

本文开始继续分析OpenHarmony LiteOS-A内核的源代码,接下来会分析进程和任务管理模块。本文中所涉及的源码,以OpenHarmony LiteOS-A内核为例,均可以在开源站点 https://gitee.com/openharmony/kernel_liteos_a 获取。如果涉及开发板&#xff…

如何翻译和本地化游戏?翻译访谈

如何翻译和本地化游戏?这个过程的技术细节有哪些?游戏翻译不同于电影翻译。Logrus IT游戏本地化部门负责人阿列克谢费奥多罗夫(Alexey Fedorov)在接受RUDN语言学系外语系教授和研究人员的采访时谈到了这一点,他是由尤利…

堆的应用——TOP-K问题

堆的应用——TOP-K问题 TOP-K 问题解决方法一、排序后选择二、简单数组维护三、使用堆优化简单数组方案 TOP-K 问题实例的堆代码参考(环境为VS2022的C语言)生成 1 千万个整数生成后检查文件建小堆处理问题验证正确性完整代码: TOP-K 问题 即求相同数据中前K个最大的…