open-platform-logo文多多 Docmee
open-platform-logo开放平台

API 接入

DOCMEE 官方团队 发布
探索 PPT + AI 的极限,为您提供卓越技术支持!
18601790226
business@metasigncloud.com

API 开放接口开发文档,文多多 AiPPT 可以通过 API 与您的系统紧密结合,通过 API 接入,您可以将文多多 AiPPT 完美地融入到您的业务系统中。

API 接口调用流程

文多多 AiPPT 技术团队提供全套的 API 接口,您可以使用任一您擅长的语言来通过 API 接入文多多。

如何使用此文档

  • 在本文档中列出的所有接口,都会进行接口鉴权,请您熟知!
  • 使用前请您查看产品价格,了解文多多 AiPPT 产品定价规则。
  • 请您确保您的账户中剩余积分充足,点击查看

接入示例

接口鉴权

创建 API Token 接口用于生成调用鉴权 Token,支持限制生成次数与数据隔离,通过 Header 或 URL 拼接 Token 实现鉴权。

创建接口 token

post/api/user/createApiToken

请求 header

Api-Key 在开放平台获取 获取 API-KEY

请求 body

响应 body

请求示例

注意:该接口请在服务端调用,同一个 uid 创建 token 时,之前通过该 uid 创建的 token 会在 10 秒内过期

场景说明:在 UI 集成中,为防止 token 滥用,limit 参数可以让第三方集成商维护自己平台用户的使用次数,未注册用户访问时可以创建 limit 为 0 的 token ,用户能使用但生成不了 PPT,UI 中监听次数用完的事件指导用户登录,登录用户访问时可以根据系统 vip 级别限制和维护系统用户 limit 次数

API 接口鉴权

请求 Header

token 通过 createApiToken 接口创建的 token,如果是服务端调用也可直接使用 API-KEY 作为 token

接口请求示例

封面图片资源访问,需要在 url 上拼接 ?token=xxx

创建 PPT 生成任务

文多多 AiPPT 官方提供了非常多样的 PPT 生成方式,您可以按照自己业务系统的需求来挑选最适合您的生成方式。

PPT 生成方式说明

🔎 查看原图

官方最推荐您使用版本 2来创作 PPT,也是我们官方应用 文多多 AiPPT 中使用的方式。

版本 2 (官方推荐)

文多多 AiPPT 官方平台上使用的新版生成方式,整合了版本 1 中的若干种常用生成 PPT 方式,我们强烈推荐您使用此方案来生成您的 PPT。

  1. 调用 createTask 创建任务 创建一个新的 PPT 生成任务。
  2. 调用 generateContent 生成大纲内容 接口,流式生成 PPT 内容与大纲。
  3. 调用 generatePptx 生成 PPT接口创建 PPT 文件。

与 版本 2 相关的 API 接口,请您查看 AI PPT - V2 来获得更详细的内容。

直接生成 PPT

这是一种最简单的方案,直接调用接口来创作 PPT。

  • 调用 directGeneratePptx 直接生成 PPT 接口,支持流式和非流式,PPT 文件通过接口返回的 fileUrl 下载

在项目施行的初期,您可以使用这种方案来快速体验文多多 AiPPT 的功能。若您想快速体验,我们更推荐您可以使用UI 接入来接入文多多创作 PPT 的能力!

实时流式生成 PPT (版本 1)

若您需要使用版本 1来生成 PPT,我们推荐您使用此方案来生成,用户体验较佳。

  1. 调用 generateOutline 生成大纲 接口,流式生成 PPT 大纲目录 markdown.

  2. 调用 generateContent 生成大纲内容同时异步生成 PPT 接口,这个接口 asyncGenPptx 参数需要传 true,流式生成,根据第一步返回的大纲目录生成完整大纲内容 markdown,异步生成 PPT

  3. 在第二步 generateContent 接口中,接收实时流式 json 数据过程中判断 json 中是否有 pptId ,存在时调用 asyncPptInfo 查询异步生成 PPT 信息 接口,获取异步生成 PPT 的进度和数据(前端实时渲染)

若您使用 V1 的功能来生成 PPT,这时我们最推荐的调用方式。得益于所有接口都能流式返回,能够给用户提供最佳的体验。这也是我们官方 V1 版本中实际生产使用的方案。但我们依旧推荐您使用 V2(版本 2)的方式来生成 PPT。

同步流式生成 PPT (版本 1)

  1. 调用 generateOutline 生成大纲 接口,流式生成 PPT 大纲目录 markdown.
  2. 调用 generateContent 生成大纲内容 接口,这个接口 asyncGenPptx 参数需要传 false,流式生成,根据第一步返回的大纲目录生成完整大纲内容 markdown
  3. 调用 generatePptx 生成 PPT 接口,通过完整 markdown 内容合成 PPT,通过 fileUrl 下载

openai chat 方式生成 PPT

通过 markdown 生成 PPT

  • 集成方生成 markdown 内容,内容格式如下:

    Markdown 具体规范说明,完整示例下载:markdown.md (支持包含图片、表格)

  • 调用 generatePptx 生成 PPT 接口,通过完整 markdown 内容合成 PPT,通过 fileUrl 下载

MCP

兼容 Model Context Protocol (MCP) 生成 PPT。

SSE Server 端点: /api/mcp/sse?token=

鉴权:通过 URL 上的 token 参数鉴权,设置为你在平台的 Api-Key 或 通过接口创建的 token

tools/list

Typescript 接入示例:

生成 PPT 相关接口

AI PPT - V2

创建任务

接口说明: 调用此接口可获得一个 任务 ID,即开启了一个生成 PPT 的任务,后续不管是生成大纲内容还是修改大纲内容都需要此任务 ID。

post/api/ppt/v2/createTask

multipart/form-data

参数类型是否必传说明
type1|2|3|4|5|6|7类型:
1.智能生成(主题、要求)
2.上传文件生成
3.上传思维导图生成
4.通过 word 精准转 ppt
5.通过网页链接生成
6.粘贴文本内容生成
7.Markdown 大纲生成
contentString内容:
type=1 用户输入主题或要求(不超过 1000 字符)
type=2、4 不传
type=3 幕布等分享链接
type=5 网页链接地址(http/https)
type=6 粘贴文本内容(不超过 20000 字符)
type=7 大纲内容(markdown)
fileFile[]文件列表(文件数不超过 5 个,总大小不超过 50M):
type=1 上传参考文件(非必传,支持多个)
type=2 上传文件(支持多个)
type=3 上传思维导图(xmind/mm/md)(仅支持一个)
type=4 上传 word 文件(仅支持一个)
type=5、6、7 不传

支持格式:doc/docx/pdf/ppt/pptx/txt/md/xls/xlsx/csv/html/epub/mobi/xmind/mm

响应:

获取生成选项

接口说明: 调用此接口来获得调用生成大纲内容需要使用的相关选项。

get/api/ppt/v2/options

该接口支持国际化,URL 携带 lang 参数指定。

响应

生成大纲内容

接口说明: 生成当前任务的大纲及内容

post/api/ppt/v2/generateContent

参数

流式响应 event-stream

非流式响应(application/json):

修改大纲内容

接口说明: 根据用户指令(question)修改大纲内容。

post/api/ppt/v2/updateContent

参数

响应 event-stream 或 application/json,结构同生成大纲内容

生成 PPT

接口说明: 根据 markdown 格式的 PPT 大纲与内容生成 PPT 作品。

post/api/ppt/v2/generatePptx

参数

响应

通过 API 生成 PPT 后,如果需要在前端进行编辑和渲染,推荐使用以下 iframe 方式编辑器,开源地址:

AI PPT - V1

解析文件内容

接口说明: 调用此接口个将若干支持的参数选项转化成 dataUrl 以便后续接口使用。

post/api/ppt/parseFileData

请求参数 (multipart/form-data)

参数类型是否必传说明
fileFile文件(限制 50M 以内,最大解析 2 万字)
支持格式:doc/docx/pdf/ppt/pptx/txt/md/xls/xlsx/csv/html/epub/mobi/xmind/mm
contentstring用户粘贴文本内容
fileUrlstring文件公网链接
websitestring网址(http/https)
websearchstring网络搜索关键词

响应:

请求示例

生成大纲

接口说明: V1 版本的生成大纲接口。

post/api/ppt/generateOutline

参数

响应 event-stream 流式生成

请求示例

修改大纲

接口说明: 根据用户指令修改大纲

post/ppt/updateOutline

参数

响应 event-stream,结构同 generateOutline 生成大纲,该接口用来修改调整大纲结构生成大纲内容

接口说明: 通过 Markdown 格式的大纲生成 PPT 内容

post/api/ppt/generateContent

参数

响应 event-stream 流式生成

请求示例

生成 PPT

接口说明: 通过大纲与内容生成 PPT

post/api/ppt/generatePptx

参数

响应

请求示例

Word 转 PPT

不同于通过解析文件生成 PPT,Word 转 PPT 会尽可能保留 word 文件中的层级结构和内容表述去生成 PPT。

post/api/ppt/v1/word2pptx

请求参数 (multipart/form-data)

字段类型说明
file文件docx 文件(小于 30M)
templateIdstring模板 ID(可空,为空时随机)
streamboolean是否流式

非流式-响应(application/json)

请求示例

流式-响应(event-stream)

请求示例

直接生成 PPT

接口说明: 直接让模型生成 PPT

post/api/ppt/directGeneratePptx

参数

非流式-响应(application/json)

请求示例

流式-响应(event-stream)

请求示例

AI PPT (异步)

Ai 异步流式生成 PPT,只需在调用生成大纲接口后调用下面的 generateContent 接口即可生成 PPT,无需再次调用生成 PPT 接口

生成大纲内容同时异步生成 PPT

post/api/ppt/generateContent

参数

响应 event-stream 流式生成

请求示例

查询异步生成 PPT 信息

get/api/ppt/asyncPptInfo?pptId=

参数

pptId 为 generateContent 接口流式返回的 pptId

响应

说明:该接口不需要轮询,在 generateContent 接口流式返回 pptId 数据时调用,每出现一次 pptId 就调用一次获取最新的 PPT 信息

注意:这个接口只有在流式生成过程中能查询到数据(临时缓存数据),在 PPT 生成完成的 30 秒内过期(查不到数据),此时需要调用 loadPptx 加载 PPT 数据 接口查询。

请求示例

对话生成 PPT

接口说明: 兼容 openai chat 接口 生成 PPT,鉴权支持请求头 Api-Key 和 Authorization Bearer 两种方式。

post/api/ppt-openai/v1/chat/completions

参数

非流式-响应(application/json)

流式-响应(event-stream)

请求示例(python):

获取模版

获取模板过滤选项

接口说明: 获取查询模版的过滤选项

get/api/ppt/template/options

响应

分页查询 PPT 模板

接口说明: 分页查询 PPT 模版

post/api/ppt/templates

参数

响应

请求示例

封面图片资源访问,需要在 url 上拼接 ?token=xxx

模板接口支持国际化,在请求 URL 上传 lang 参数,示例:/api/ppt/templates?lang=zh-CN

国际化语种支持:zh,zh-Hant,en,ja,ko,ar,de,fr,it,pt,es,ru

随机 PPT 模板

接口说明: 随机获取若干数量的 PPT 模版

post/api/ppt/randomTemplates

参数

响应

请求示例

封面图片资源访问,需要在 url 上拼接 ?token=xxx

模板接口支持国际化,在请求 URL 上传 lang 参数,示例:/api/ppt/randomTemplates?lang=zh-CN

国际化语种支持:zh,zh-Hant,en,ja,ko,ar,de,fr,it,pt,es,ru

获取 PPT

获取 PPT 列表

接口说明: 分页查询您的 PPT 作品列表

post/api/ppt/listPptx

参数

响应

请求示例

加载 PPT 数据

接口说明: 加载一个 PPT 的完整数据内容

get/api/ppt/loadPptx?id=

响应

请求示例

加载 PPT 大纲内容

接口说明: 获取生成 PPT 所使用的大纲内容

post/api/ppt/loadPptxMarkdown

请求

响应

请求示例

下载 PPT

接口说明: 下载 PPT 到本地

post/api/ppt/downloadPptx

请求

响应

请求示例

下载-智能动画 PPT

接口说明: 给 PPT 自动加上动画再下载到本地

get/api/ppt/downloadWithAnimation?type=1&id=xxx

URL 请求

参数类型描述
typenumber动画类型,1 依次展示(默认);2 单击展示
idstringPPT ID

响应(application/octet-stream)

文件数据流

请求示例

该接口会在原有的 PPT 元素对象上智能添加动画效果(元素入场动画 & 页面切场动画)

动画类型介绍:

1 依次展示,表示上一个元素动画结束后立马展示下一个元素动画

2 单击展示,表示在内容页,上一项内容展示完成后需要单击才会展示下一项内容,其他页面效果同依次展示。

操作 PPT

更换 PPT 模板

post/api/ppt/updatePptTemplate

参数

响应

更新 PPT 属性

接口说明: 修改 PPT 的名称或主题

post/api/ppt/updatePptxAttr

参数

响应

请求示例

接口说明: 设置 PPT 的 LOGO

post/api/ppt/setPptLogo

请求参数 (multipart/form-data)

参数类型是否必传说明
imageFileLogo 图片文件(png / jpg)
pptIdstringPPT ID
widthintegerlogo 宽度 px,默认 48
heightintegerlogo 高度 px, 默认 48

响应:

请求示例

保存 PPT

post/api/ppt/savePptx

参数

响应

请求示例

删除 PPT

post/api/ppt/delete

参数

响应

请求示例

自定义模板

上传用户自定义模板

post/api/ppt/uploadTemplate

请求参数 (multipart/form-data)

参数类型是否必传说明
typeint类型,用户自定义模板传 4(写死)
fileFile文件(仅支持 pptx,幻灯片大小 960x540)
templateIdstring模板 ID(更新时传,会覆盖该模板)

响应:

请求示例

模板标准幻灯片大小(16:9)960x540 (33.867x19.05 厘米) ,如果尺寸非标准大小,可在 microsoft office 中修改步骤:设计 > 幻灯片大小 > 自定义幻灯片大小 => 33.867x19.05 厘米

上传用户自定义模板后,AI 会自动标注学习,如果您觉得生成效果有问题,对不上,可以访问下面链接手动纠正 AI 标注结果: https://docmee.cn/marker/\{templateId\}?token=\{apiKey\} 请把 {templateId} 替换成真实的模板 ID,{apiKey} 替换成你的 api-key,示例:https://docmee.cn/marker/10000?token=xxx

注意:如果是覆盖公共模板,请把 token 换成 Api-Key 调用,不然无权限访问。

下载自定义模板

post/api/ppt/downloadTemplate

请求

响应

请求示例

删除自定义模板

post/api/ppt/delTemplateId

请求

响应

请求示例

设置为公共模板

接口说明: 将自定义模版设置为 Api-Key 账号级别的公共模板,但并非平台公共模板。

post/api/ppt/updateUserTemplate

请求 header

Api-Key 在开放平台获取 获取 API-KEY

参数

响应

请求示例

积分和使用记录

查询 API 信息

接口说明: 获取当前用户的积分使用情况

get/api/user/apiInfo

请求 header

Api-Key 在开放平台获取 获取 API-KEY

响应 body

请求示例

查询积分使用记录

接口说明: 获取一段时间内的积分使用记录

post/api/record/listPage

请求 header

Api-Key 在开放平台获取 获取 API-KEY

参数

响应

请求示例

查询记录详情

接口说明: 获取一条积分使用记录的详细信息

get/api/record/getById?id=

id 参数: 记录 ID

响应:

请求示例

按小时统计积分使用

post/api/record/statisticHours

请求 header

Api-Key 在开放平台获取 获取 API-KEY

参数

响应

请求示例

按天统计积分使用

post/api/record/statisticDays

请求 header

Api-Key 在开放平台获取 获取 API-KEY

参数

响应

请求示例

查询所有 PPT 列表

接口说明: 获取当前 Api-Key 下一段时间内所有生成的 PPT 文件

post/api/ppt/listAllPptx

请求 header

Api-Key 在开放平台获取 获取 API-KEY

参数

响应

请求示例

常见错误码

接口 application/json 错误

错误码说明
0操作成功(正常)
-1操作失败(未知错误)
88功能受限(积分已用完 或 非 VIP)
98认证失败(检查 token 是否过期)
99登录过期
1001数据不存在
1002数据访问异常
1003无权限访问
1006内容涉及敏感信息
1009AI 服务异常
1010参数错误
1012请求太频繁,限流

SEE 流式请求错误分两种

初始化流式调用时发生错误会返回 application/json 错误信息

流式过程中遇到错误,会在流中返回 text/event-stream 流式错误信息:

PPT 前端渲染

关于 ppt 数据结构在前端渲染问题,我们已经把前端代码开源到 github:

https://github.com/docmee/aippt-js

https://github.com/docmee/aippt-vue-all

https://github.com/docmee/aippt-react

Markdown

适用于调用方需要通过自己内容和模型生成 PPT 内容,调用方根据我们的规范生成 markdown 内容,然后调用接口合成 PPT。

markdown 规范:

markdown 规范说明:

markdown 规范没有定这么死,除了主题(一级标题)和章节(二级标题)必须包含外,其他标题可以没有。

完整 markdown 示例下载:markdown.md

生成 markdown 后,调用 generatePptx 生成 PPT 接口,对应 outlineContentMarkdown 参数。

通过 API 生成 PPT 后,如果需要在前端进行编辑和渲染,推荐使用以下 iframe 方式编辑器,开源地址:

2024 © 上海元符号智能科技有限公司 版权所有