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

news2025/4/17 17:51:08

文档: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.coloradmin.cn/o/1819927.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【灵动之链】打造高效处理架构的双轨组合模式实战

文章目录 打造高效处理架构的双轨组合模式实战目标概述场景一: 注解驱动的Chain设计说明 场景二:工作流调度 - List与Set注入的Chain设计说明 总结 打造高效处理架构的双轨组合模式实战 目标概述 本教程旨在阐述两种不同的组合模式实现方式,…

【计算机毕业设计】258基于微信小程序的课堂点名系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

MathWorks的介绍,以及Simscape 的主要特点

MathWorks 是一家美国的软件公司,以其科学计算软件为广泛知名,特别是 MATLAB 和 Simulink。这两款产品广泛用于工程、科学研究、学术界和工业应用中,帮助用户进行数学计算、算法开发、数据可视化、数据分析,以及仿真和模型构建。 …

前缀和(一维前缀和+二维前缀和)

前缀和 定义: 前缀和是指某序列的前n项和,可以把它理解为数学上的数列的前n项和,而差分可以看成前缀和的逆运算。合理的使用前缀和与差分,可以将某些复杂的问题简单化。 用途: 前缀和一般用于统计一个区间的和&…

GoldWave 6.80最新版软件安装包下载+详细安装步骤

​GoldWave是一款易上手的专业级数字音频编辑软件,从最简单的录制和编辑到最复杂的音频处理,恢复,增强和转换,它可以完成所有工作,包括WAV、OGG、VOC、 IFF、AIFF、 AIFC、AU、SND、MP3、 MAT、 DWD、 SMP、 VOX、SDS、…

【Intel CVPR 2024】通过图像扩散模型生成高质量360度场景,只需要一个语言模型

在当前人工智能取得突破性进展的时代,从单一输入图像生成全景场景仍是一项关键挑战。大多数现有方法都使用基于扩散的迭代或同步多视角内绘。然而,由于缺乏全局场景布局先验,导致输出结果存在重复对象(如卧室中的多张床&#xff0…

【Go】用 Go 原生以及 Gorm 读取 SQLCipher 加密数据库

本文档主要描述通过 https://github.com/mutecomm/go-sqlcipher 生成和读取 SQLCipher 加密数据库以及其中踩的一些坑 用 go 去生成读取 SQLCipher 数据库用 gorm 去读取 SQLCipher 数据库在生成后分别用 DBeaver、db browser 和 sqlcipher 读取 SQLCipher 数据库,…

GIS开发到底能应用在哪些行业 ?

GIS应用的领域到底有多广?恐怕很多GIS从业者都想不到。 尤其是近些年,互联网GIS的普及与发展,GIS技术的应用领域越来越多,涉及的范围也越来越广。很多我们以为跟GIS不相关的行业,都在悄悄用GIS技术。 从大类上分析&a…

EFuse概念解析

EFuse概念解析 EFUSE Key Parameter iNOM 代表的是,Efuse运行时候的电流 tNOM 代表的是,Efuse电流与时间的曲线 INOM通过VOC_Thrs设置 VOC_THRS VOC_THRS/Rsense Vsense采样小于VOC_THRS时候不动作 Vsense采样大于VOC_THRS时候根据Efuse_I2T曲线来…

SpringBoot之请求映射原理

前言 我们发出的请求,SpringMVC是如何精准定位到那个Controller以及具体方法?其实这都是 HandlerMapping 发挥的作用,这篇博文我们以 RequestMappingHandlerMapping 为例并结合源码一步步进行分析。 定义HandlerMapping 默认 HandlerMappi…

数据结构的队列,链表,栈的基础操作

1&#xff1a;队列 #include <stdio.h>#include <stdlib.h>#include "./02队列.h"/** function: 创建一个空的队列* param [ in] * param [out] * return */Sequeue* xinduilie(){Sequeue* sq (Sequeue*)malloc(sizeof(Sequeue)); if(N…

Linux基础IO【II】真的很详细

目录 一.文件描述符 1.重新理解文件 1.推论 2.证明 2.理解文件描述符 1.文件描述符的分配规则 3.如何理解文件操作的本质&#xff1f; 4.输入重定向和输出重定向 1.原理 2.代码实现重定向 3.dup函数 ​编辑 4.命令行中实现重定向 二.关于缓冲区 1.现象 …

Ubuntu系统中网易云音乐编译安装

项目地址&#xff1a; netease-cloud-music-gtk: Linux 平台下基于 Rust GTK 开发的网易云音乐播放器 目录 1.README.md中按照步骤来 2.安装git 3.报错 sudo apt install cmake sudo apt-get install libdbus-1-dev sudo apt install dnf sudo dnf install gettext 继…

【Pytorch】一文向您详细介绍 torch.nn.DataParallel() 的作用和用法

【Pytorch】一文向您详细介绍 torch.nn.DataParallel() 的作用和用法 下滑查看解决方法 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高…

云原生Kubernetes系列项目实战-k8s集群+高可用负载均衡层+防火墙

一、Kubernetes 区域可采用 Kubeadm 方式进行安装&#xff1a; 名称主机部署服务master192.168.91.10docker、kubeadm、kubelet、kubectl、flannelnode01192.168.91.11docker、kubeadm、kubelet、kubectl、flannelnode02192.168.91.20docker、kubeadm、kubelet、kubectl、flan…

【Numpy】一文向您详细介绍 np.trunc()

【Numpy】一文向您详细介绍 np.trunc() 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通本硕&#xff0c;…

诊所管理系统免费软件哪个好一点?

不少诊所管理者&#xff0c;想要寻找一款适合自己诊所的免费诊所管理系统。市场上有多个选择&#xff0c;那么&#xff0c;哪个会好一点呢?在选择适合自己诊所的免费诊所管理系统时&#xff0c;考虑系统的易用性、功能全面性、技术支持以及未来可扩展性是非常重要的。下面&…

算法分析与设计期末考试复习GDPU

重点内容&#xff1a; 绪论&#xff1a; 简单的递推方程求解 1.19(1)(2) 、 教材例题 多个函数按照阶的大小排序 1.18 分治法&#xff1a; 分治法解决芯片测试问题 计算a^n的复杂度为logn的算法&#xff08;快速幂&#xff09; 分治法解决平面最近点对问…

值得关注的BTC二层 BitlayerLabs,以及好用的bitget钱包

值得关注的比特币二层 BitlayerLabs Bitlayer BitlayerLabs 是基于 BitVM 的与比特币安全等效的 Layer2。创新的BitRC-20资产框架为生态系统提供了丰富的资产类别。 为什么推荐bitlayer&#xff1f; Framework Ventures 和 ABCDE Capital 领投&#xff0c;OKX Ventures 等参…

微软开发基于深度学习的地球大气基础模型-Aurora

微软研究院的研究人员开发了大气基础模型“Aurora”&#xff0c;https://arxiv.org/abs/2405.13063v1 利用超过一百万小时的多样化天气和气候数据进行训练&#xff0c;能够预测各种大气条件&#xff0c;包括数据有限、变量异构和极端事件&#xff0c;并在全球空气污染和高分辨…