金山文档SKILL功能更新,引入AI PPT功能

快乐小子新
快乐小子新 Lv.2 潜力创作者

Lv.2潜力创作者

金山文档 SKILL 更新至 v1.3.3 版本,AI PPT 生成能力作为独立模块被正式引入,共提供了 9 个专用工具,分为两条独立链路:

主题生成 PPT(从零开始,基于一个主题或一句话)

文档生成 PPT(基于已有文档,提取内容生成演示文稿)

两条链路虽然入口不同,但最终都汇聚到同一个渲染引擎——基于 {topic, outlines[]} 结构调用后端生成逐页 HTML PPTX,并返回合并后的完整演示文件。

一、主题生成 PPT:从一句话到完整演示文稿

用户只需要提供一个大致的想法,系统会自动完成需求澄清、资料研究、大纲生成和视觉渲染的全流程。

Step 1:需求澄清 — aippt.theme_questions

当用户的输入比较模糊时(比如"帮我做个长颈鹿科普PPT"),系统不会急于生成,而是先通过这个工具生成一组结构化问卷,追问关键信息。

输入参数

参数

类型

说明

input

string

用户的主题或需求描述

返回内容:一份包含多个问题的问卷(questionnaire),每个问题有 keytitletyperadio / checkbox / input)、选项列表和默认答案。例如:

  • PPT 的目标场景是什么?(课堂讲解 / 活动展示 / 产品提案)

  • 受众群体是谁?(低龄儿童 / 职场人士 / 技术团队)

  • 希望包含哪些内容模块?(外形特征 / 生活习性 / 趣味冷知识)

  • 是否需要互动环节?

这一步确保了后续生成的内容有明确的方向约束,避免了"生成一堆内容但不符合预期"的常见问题。

如果用户已经给出了充分详细的需求描述,这一步可以跳过,直接手动组织 question_and_answers 进入下一步。

Step 2:深度研究 — aippt.theme_deep_research

有了明确的需求后,系统会围绕主题和用户的回答进行联网研究,搜集事实资料、案例和背景知识。

输入参数

参数

类型

说明

input

string

主题描述

question_and_answers

array

上一步收集的问答对

返回内容:研究完成的摘要统计(目标数、完成数、提取的资料条数)。

这里有一个重要的工程细节:完整的研究内容通过流式通知(notifications/progress)逐步推送,最终的工具返回值只保留摘要。这意味着调用方需要通过流式通道消费完整的研究资料文本,并在下一步将其作为 references 传入。

Step 3:大纲生成 — aippt.theme_outline

综合主题、用户问答和研究资料,生成结构化的 PPT 大纲。

输入参数

参数

类型

说明

input

string

主题描述

question_and_answers

array

问答对(不能为空

references

string

研究资料文本(来自 deep_research 的流式产出)

返回内容:包含 outline 对象的结果,其中包含封面页、内容页、结尾页等结构化幻灯片定义。

大纲的结构可能因上游模板而变化。文档中特别提醒:传给下一步生成工具时,应优先使用正式的 outlines 数组而非原始的 outline 对象。

Step 4:渲染生成 — aippt.theme_generate_html_pptx

将确认后的大纲交给后端渲染引擎,生成逐页 HTML PPTX 并合并为完整文件。

输入参数

参数

类型

说明

topic

string

演示文稿标题

outlines

array

大纲数组(每项至少包含 titletype

返回内容

字段

说明

merged_url

合并后的完整 PPTX 下载地址(有时效性

total_pages

总页数

pages

逐页生成结果(含 slide_indexfile_urltitletype

生成速度约每页 20-30 秒,11 页以上的 PPT 可能耗时 4-8 分钟,因此文档建议将超时时间设置为 3000 秒(50 分钟)。

Step 5:上传云端 — upload_file

生成完成后,PPTX 文件可以通过 upload_file 工具上传到用户的金山文档云空间。由于文件需要先 Base64 编码,这一步只能通过 mcporter 的编程 API(callOnce())完成,无法通过命令行调用——这是工程上的一个重要约束。

二、文档生成 PPT:从已有文档到专业演示文稿

当用户已经有一份文档(Word 报告、研究论文、项目方案等),希望快速转换为演示文稿时,文档生成链路更为合适。

Step 1:创建会话 — aippt.doc_create_session

为整个文档转 PPT 流程创建一个服务端 AI 会话,获取唯一的 session_id。后续所有步骤都需要携带这个 ID 来维持会话状态。

Step 2:解析文档 — aippt.doc_outline_options

将文档引用(通过 file_id 或金山文档分享链接的 link_id)提交给服务端,服务端会解析文档内容,并返回一组需要用户确认的选项问题:

输入参数

参数

类型

说明

session_id

string

AI 会话 ID

input

array

输入数组:一条文本指令 + 一条文档引用

返回内容

字段

说明

checkpoint_id

恢复会话所需的检查点 ID

interrupt_id

follow_up 中断 ID(后续 resume 需要用到)

questions

选项问题列表(如"制作目标"选择培训宣讲还是产品发布)

快捷方式:当用户提供金山文档链接时,从 URL 提取的 link_id 可以直接以 type: "v7_file_id" 传入,无需先调用 get_share_info 获取 file_id

Step 3:生成大纲 — aippt.doc_outline

用户确认选项后,系统结合文档内容和用户意图生成完整的 Markdown 大纲。

输入参数

参数

类型

说明

session_id

string

AI 会话 ID

checkpoint_id

string

来自上一步的检查点

input

array

与上一步保持一致的输入数组

resume_info

array

恢复信息数组(必须为数组

返回内容

字段

说明

markdown_outline

完整的 Markdown 大纲

user_intention

规范化后的用户意图对象(直接传给美化步骤)

markdown_outline 可能包含重复内容(大纲出现两次),文档建议从 assistant_messages 中提取最长的、包含 {.topic}{.end} 标记的消息作为清洁版。

Step 4:风格美化 — aippt.doc_beautify

这一步是文档链路独有的环节。它根据大纲和用户意图,为每一页生成全局风格和逐页排版设计描述。

输入参数

参数

类型

说明

topic

string

演示文稿主题

outline

string

Markdown 大纲

user_intention

object

用户意图对象

model

string

风格模型,默认 IMAGE_V2

返回内容global_style(全局设计风格描述)+ slides[](每页的 design_style)。

Step 5:格式转换

markdown_outlinebeautify 结果合并为 {topic, outlines[]} 标准结构。文档链路的最终生成接口 aippt.doc_generate_ppt 与主题链路的 aippt.theme_generate_html_pptx 底层接口一致,都接受这种统一的格式。

Step 6:渲染生成 — aippt.doc_generate_ppt

参数格式与 theme_generate_html_pptx 完全一致,接收 {topic, outlines[]},返回合并后的 PPTX 下载地址和逐页结果。


三、工程实践中的关键设计

三种调用方式的选择

文档根据参数长度严格区分了三种调用方式:

方式

适用场景

示例工具

mcporter call 命令行

参数短(< 2000 字符)

theme_questionsdoc_create_session

_call_mcp.js 脚本

参数长(references、outlines 等)

theme_outlinedoc_beautifydoc_generate_ppt

callOnce() 编程 API

Base64 编码的文件上传

upload_file

这种分层设计解决了 Windows 命令行长度限制(约 8191 字符)的问题。_call_mcp.js 脚本通过 spawnSync 调用 mcporter CLI,参数从文件读取而非命令行传入;upload_file 则进一步绕过命令行,直接在 Node.js 进程中调用 mcporter 模块的 callOnce() 函数。

临时文件管理

所有中间产物(研究结果、大纲、美化配置、生成结果)都写入基于对话 ID 的独立临时目录:

%TEMP%/kdocs_aippt_<conversation_id>/
  ├── 01_selections.json    # 用户选择
  ├── 02_research.json      # 研究结果
  ├── 03_outline.json       # 大纲结果
  ├── 04_config.json        # 转换后的配置
  ├── 05_ppt_result.json    # PPT 生成结果
  ├── 06_cloud_result.json  # 上传结果
  └── _call_mcp.js          # 可复用的调用脚本

文件使用 UTF-8 无 BOM 编码,JSON 必须通过标准序列化函数生成(禁止手动拼接)。流程结束后递归删除整个目录,通过 try...finally 确保无论成功失败都执行清理。

超时与可靠性

约束

原因

单步超时

3000 秒

11 页以上 PPT 生成可能需要 4-8 分钟

maxBuffer

50 MB

防止大输出被截断

下载链接有效期

有限(具体时长未公开)

生成后应尽快消费

stdout 截断

8000 字符

避免终端刷屏,完整内容写入文件

北京
浏览 1843
收藏
7
分享
7 +1
+1
全部评论