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

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

  1. JSON C# Class Generator是一个从JSON文本中生成C#内的应用程序

    JSON C# Class Generator是一个从JSON文本中生成C#内的应用程序 .NET平台开源项目速览(18)C#平台JSON实体类生成器JSON C# Class Generator   ...

  2. 结合ChatGPT和MINDSHOW自动生成PPT

    结合chatGPT和MINDSHOW自动生成PPT应用场景 总结/朱季谦 一.首先,通过chatGPT说明你的需求,学会提问是Ai时代最关键的一步.你需要提供一些关键信息,如果没有关键信息,就按照大纲 ...

  3. 使用MFC做一个简单的‘能自动生成小学生四则运算的软件’

    这是软件工程的第一次作业!但由于我们python还没入门,所以这次的要求是‘语言不限’. 小学期做过一个关于MFC的‘资金管理系统’,也正好可以有界面,所以就选择了自己很熟悉的MFC来做这个作业! 1 ...

  4. 一个简单的加减乘除自动生成小程序升级版(JAVA)

    import java.util.Scanner; public class Suan { public static void main(String[] args) { int []b;//设置数 ...

  5. mybatis逆向工程自动生成实体类、接口以及映射Mapper.xml配置文件

    Mybatis的逆向工程非常简单,只要一个配置文件和一个Main方法就可以实现,下面以maven工程为例: (1)在pom.xml中引入依赖包 <dependency> <group ...

  6. 在MyEclipse的Maven环境下,使用mybatis-generator插件自动生成映射文件(接口)及实体类

    在数据表比较多的情况下,手动编写sql映射文件和实体类,实在太多过繁琐,而mybatis-generator能自动生成这此东西,减少了重复性的工作量.mybatis-generator的配置容易出现问 ...

  7. 关于 wsdl2Java 自动生成客户端调取webservice接口

    webservice地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl wsdl2Java 自动生成类名: 客户端调 ...

  8. 用Eclipse新建一个web项目没有自动生成web.xml

    我们首先打开Eclipse,如下:   我们可以看到在"WEB-INF"文件夹下没有web.xml文件.   这是是什么原因呢,我们来看看,我们首先来新建一个web工程,如下:   ...

  9. 如果公司里有上百个表要做触发器,如果手动写代码的话。很累,所以今天写了一个小程序,自动生成mysql的触发代码。

    <?php $dbname = 'test';//数据库 $tab1 = 'user'; //执行的表 $tab2 = 'user_bak'; //被触发的表 $conn = mysql_con ...

  10. 一个简单的加减乘除自动生成小程序(JAVA)

    在学习软件工程的时候,遇到一个这样的问题,一个程序员的儿子上小学二年级,老师让家长每天出30道加减题目给学生做,由于家长是个程序员,所以呢,他就自己写了个程序实现,我们可爱的老师于是也叫我们写了一个类 ...

随机推荐

  1. Elasticsearch生态&技术峰会 | 阿里云Elasticsearch云原生内核

    简介: 开源最大的特征就是开放性,云生态则让开源技术更具开放性与创造性,Elastic 与阿里云的合作正是开源与云生态共生共荣的典范.值此合作三周年之际,我们邀请业界资深人士相聚云端,共话云上Elas ...

  2. DataWorks搬站方案:Airflow作业迁移至DataWorks

    简介: DataWorks提供任务搬站功能,支持将开源调度引擎Oozie.Azkaban.Airflow的任务快速迁移至DataWorks.本文主要介绍如何将开源Airflow工作流调度引擎中的作业迁 ...

  3. [GPT] Unable to negotiate with xx.xx.xx.xx port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss

      这个错误通常发生在 SSH 客户端无法找到与 SSH服务器 匹配的主机密钥类型时. 这可能是因为SSH服务器配置为使用SSH客户端不支持的主机密钥类型. 要解决此问题,您需要将缺少的主机密钥类型添 ...

  4. WPF 自己封装 Skia 差量绘制控件

    使用 Skia 能做到在多个不同的平台使用相同的一套 API 绘制出相同界面效果的图片,可以将图片绘制到应用程序的渲染显示里面.在 WPF 中最稳的方法就是通过 WriteableBitmap 作为承 ...

  5. 超级好用的 IEC104 主站/客户端模拟器

    目录 超级好用的 IEC104 主站/客户端模拟器 主要功能 软件截图 超级好用的 IEC104 主站/客户端模拟器 官网下载地址:http://www.redisant.cn/iec104clien ...

  6. C# 采集知网

    采集知网 WebClient /// <summary> /// 支持 Session 和 Cookie 的 WebClient. /// </summary> public ...

  7. STM32【HAL库】使用外部SRAM程序

    #include <board.h> #ifdef BSP_USING_SRAM #include <drv_common.h> #include <rtthread.h ...

  8. vim 使用black 格式化python代码

    vim 使用black 格式化代码 github black 的github https://github.com/psf/black 安装 pip3 install black 使用 black f ...

  9. ruby和glang的md5和sha1加密对比

    ruby和glang的md5和sha1加密对比 package main import ( "crypto/md5" "crypto/sha1" "f ...

  10. RVM Ruby 版本管理器的删除 Gatling

    参考: https://www.jianshu.com/p/aef65d0c03a4