

从课程大纲程序化生成课程幻灯片(2026)
要程序化生成课程幻灯片,请将课程大纲导出为每课一行(单元、标题、目标、词汇、年级、语言),然后用脚本针对每行调用 2Slides Fast PPT 的 POST /api/v1/slides/generate 接口,使用从 GET /api/v1/themes/search 获取的教育主题,并根据班级设置 responseLanguage。每套12页幻灯片是可编辑的 PPTX,费用为120积分,约0.30美元,生成时间约30秒。对于翻转课堂,结合 create-pdf-slides 和 generate-narration 可生成短视频讲座。适合教育技术开发者、教学设计师和学区课程团队。
关键要点
- 一套 Fast PPT 课程幻灯片每页收费10积分,因此12页幻灯片共120积分,按5美元买2000积分计算约0.30美元。
- 一个部门40节课,每节12页,共用4800积分,约12美元,按每分钟6次请求限制,提交约7分钟完成。
responseLanguage接受语言名称,如“Spanish”或“Vietnamese”,支持20多种输出语言,方便双语项目用同一课程行生成多语言幻灯片。- Fast PPT 输出为原生、可编辑的 PPTX,教师可在课前调整每页幻灯片。Fast PPT 幻灯片不支持配音。
- 翻转课堂中,8页带配音的视频讲座费用为2490积分(810积分用于2000分辨率幻灯片,1680积分用于配音),约5至6.25美元。
适用对象
教学设计师、教育技术工程师和课程创建者,他们以结构化形式(Google 表格、LMS CSV、课程数据库)管理课程大纲,需要为每节课生成初稿幻灯片,而非少量幻灯片。运行双语项目的学区团队,需为每节课生成英语和西班牙语或越南语版本,最适合使用每行语言字段。
如果你只有五节课且教师有空闲时间,请跳过此方案;可参考面向教师的工具汇总了解网页版路径。
工作流程概览
| 步骤 | 工具 | 发生内容 | 2Slides 接口 / 积分 |
|---|---|---|---|
| 1 | Sheets 或 LMS 导出 | 每节课每语言一行:单元、标题、年级、目标、词汇、幻灯片数 | 无 |
| 2 | curl 或浏览器 | 搜索教育和课堂主题,为每个年级段保存一个 themeId | GET /api/v1/themes/search,免费 |
| 3 | Python 或 Node | 从行字段构建结构化提示,按班级设置 responseLanguage | 无 |
| 4 | Python 或 Make | 每行调用一次 generate,设置 mode: "async",每分钟最多6次 | POST /api/v1/slides/generate,每页10积分 |
| 5 | 脚本 | 每5至10秒轮询直到 success,下载 PPTX 到 Drive 或 LMS | GET /api/v1/jobs/{id},免费 |
| 6 | 教师 | 审核、编辑并批准 PPTX 后发给学生 | 无 |
| 7(可选) | 脚本加工作区 | 翻转课堂:图像设计幻灯片,单人配音,导出 MP4 | create-pdf-slides 10 + 100积分/页(2K),generate-narration 210积分/页 |
步骤1:规范课程导出格式
将 LMS 导出或进度指南展平成每节课每语言一行。如果一节课有两种语言,复制该行,仅修改 language 列。多值字段(目标、词汇)用竖线分隔,方便提示构建器转换为项目符号。
unit,lesson_title,grade,objectives,vocabulary,language,slide_count
Ecosystems,Food Webs and Energy Flow,7,"Explain how energy moves between trophic levels|Identify producers, consumers and decomposers in a local ecosystem","producer|consumer|decomposer|trophic level",English,12
Ecosystems,Food Webs and Energy Flow,7,"Explain how energy moves between trophic levels|Identify producers, consumers and decomposers in a local ecosystem","producer|consumer|decomposer|trophic level",Spanish,12
Fractions,Comparing Fractions with Unlike Denominators,4,"Compare two fractions using common denominators|Justify comparisons with a visual model","numerator|denominator|equivalent fraction|benchmark fraction",Vietnamese,10添加三个由脚本后续填写的记账列:job_id、download_url 和 status。status 列用于驱动后续审核流程。
步骤2:选择适合教育的 themeId
themeId 决定 Fast PPT 幻灯片的外观。用课堂相关关键词搜索1500多个模板,然后为每个年级段保留一到两个 ID:小学用手绘或涂鸦风格,中学用更简洁风格。
curl "https://2slides.com/api/v1/themes/search?query=education&limit=10" \
-H "Authorization: Bearer $SLIDES_API_KEY"
# 也可尝试:query=classroom、query=doodle、query=science、query=study每个结果包含 themeId 和元数据。将 ID 作为环境变量保存(如 EDU_THEME_ELEMENTARY、EDU_THEME_SECONDARY),而非存入表格。搜索接口免费,但与其他接口共享每分钟6次请求限制,建议只在设置时运行一次,而非每节课调用。

themes/search 搜索。
步骤3:构建提示并设置多语言幻灯片的语言
提示决定课程质量。向模型提供年级、项目符号形式的学习目标、需定义的词汇及固定幻灯片结构。保持 userInput 不超过几百字,目标和词汇是输入内容,而非整个单元计划。
然后从行中设置 responseLanguage。它接受语言名称,如“Spanish”或“Vietnamese”,不支持代码如“es”或“vi”。用英文写提示,幻灯片可输出为西班牙语;一个模板即可覆盖整个项目。
Create a 12-slide lesson deck for grade 7.
Unit: Ecosystems
Lesson: Food Webs and Energy Flow
Learning objectives:
- Explain how energy moves between trophic levels
- Identify producers, consumers and decomposers in a local ecosystem
Key vocabulary to define with one example each: producer, consumer, decomposer, trophic level
Structure: title slide, objectives, warm-up question, 5 content slides with one idea each,
vocabulary slide, quick check with 3 questions, summary.
Use short sentences suitable for the grade level.
generate 接口参数,包含 responseLanguage 支持的20多种语言名称。
步骤4:用 Fast PPT 程序化生成课程幻灯片
此步骤允许小团队批量创建课堂演示文稿。Fast PPT generate 默认同步返回 downloadUrl,适合单个幻灯片组。批量时设置 mode: "async",收集 jobId 并轮询。每套幻灯片约30秒生成,API 限制每分钟6次请求,提交间隔建议10秒。
curl -X POST https://2slides.com/api/v1/slides/generate \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userInput": "Create a 12-slide lesson deck for grade 7. Unit: Ecosystems. Lesson: Food Webs and Energy Flow. Learning objectives: explain how energy moves between trophic levels; identify producers, consumers and decomposers in a local ecosystem. Key vocabulary to define with one example each: producer, consumer, decomposer, trophic level. Structure: title, objectives, warm-up question, 5 content slides, vocabulary, 3-question quick check, summary.",
"themeId": "'"$EDU_THEME_SECONDARY"'",
"responseLanguage": "Spanish",
"mode": "async"
}'
# -> {"jobId":"..."} 然后轮询 GET https://2slides.com/api/v1/jobs/{jobId}Python 完整循环示例:读取 CSV,间隔10秒提交每行,间隔8秒轮询每个任务,保存 PPTX 文件名包含单元、年级和语言,避免同名覆盖。
import csv, os, time, requests
API = "https://2slides.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['SLIDES_API_KEY']}"}
THEMES = {
"elementary": os.environ["EDU_THEME_ELEMENTARY"],
"secondary": os.environ["EDU_THEME_SECONDARY"],
}
def theme_for(grade: str) -> str:
return THEMES["elementary"] if int(grade) <= 5 else THEMES["secondary"]
def build_prompt(row: dict) -> str:
objectives = "\n".join(f"- {o.strip()}" for o in row["objectives"].split("|"))
vocab = ", ".join(v.strip() for v in row["vocabulary"].split("|"))
return (
f"Create a {row['slide_count']}-slide lesson deck for grade {row['grade']}.\n"
f"Unit: {row['unit']}\nLesson: {row['lesson_title']}\n"
f"Learning objectives:\n{objectives}\n"
f"Key vocabulary to define with one example each: {vocab}\n"
"Structure: title slide, objectives, warm-up question, content slides with one "
"idea each, vocabulary slide, quick check with 3 questions, summary. "
"Use short sentences suitable for the grade level."
)
def submit(row: dict) -> str:
r = requests.post(f"{API}/slides/generate", headers=HEADERS, timeout=60, json={
"userInput": build_prompt(row),
"themeId": theme_for(row["grade"]),
"responseLanguage": row["language"] or "English",
"mode": "async",
})
r.raise_for_status()
return r.json()["jobId"]
def wait(job_id: str) -> dict:
while True:
job = requests.get(f"{API}/jobs/{job_id}", headers=HEADERS, timeout=30).json()
if job["status"] in ("success", "failed"):
return job
time.sleep(8) # 每5-10秒轮询一次;jobs接口允许每分钟10次请求
with open("curriculum.csv", newline="", encoding="utf-8") as f:
rows = list(csv.DictReader(f))
queued = []
for row in rows:
queued.append((row, submit(row)))
time.sleep(10) # 每分钟6次提交,保持间隔
os.makedirs("decks", exist_ok=True)
for row, job_id in queued:
job = wait(job_id)
if job["status"] != "success":
print("FAILED", row["lesson_title"], row["language"], job_id)
continue
pptx = requests.get(job["downloadUrl"], timeout=120).content
name = f"{row['unit']}_G{row['grade']}_{row['lesson_title']}_{row['language']}.pptx"
with open(os.path.join("decks", name.replace(" ", "_")), "wb") as out:
out.write(pptx)
print("saved", name)每套幻灯片生成后,将 job_id、download_url 和 status = "draft" 写回表格。

generate 接口基于相同模板生成相同可编辑 PPTX,每节课调用一次。
步骤5:翻转课堂变体:短视频讲座配音
翻转课堂中,学生在家观看视频,因此切换流程。Fast PPT 任务不支持配音。先用 create-pdf-slides 生成16:9、2K分辨率的图像设计幻灯片,再用 generate-narration 单人配音,最后导出视频。讲座保持简短:6至8页幻灯片,每页配音约45秒,视频时长5至6分钟。
# 1) 生成图像设计幻灯片(默认异步)
curl -X POST https://2slides.com/api/v1/slides/create-pdf-slides \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userInput": "8-slide mini-lecture for grade 7 on food webs and energy flow. One idea per slide, written to be read aloud in about 45 seconds per slide. Cover: what a food web is, producers, consumers, decomposers, trophic levels, the 10 percent energy rule, one local example, a 2-question check.",
"aspectRatio": "16:9",
"resolution": "2K",
"page": 8,
"contentDetail": "standard",
"responseLanguage": "English",
"mode": "async"
}'
# 轮询 GET /api/v1/jobs/{jobId} 直到 status = success(10 + 8 x 100 = 810 积分)
# 2) 对该任务生成单人配音(8 x 210 = 1680 积分)
curl -X POST https://2slides.com/api/v1/slides/generate-narration \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jobId": "JOB_ID_FROM_STEP_1",
"mode": "single",
"speakerName": "Teacher",
"voice": "Leda",
"contentMode": "standard",
"includeIntro": true
}'
# 再次轮询直到成功
# 3) 下载每页 PNG + WAV,免费
curl -X POST https://2slides.com/api/v1/slides/download-slides-pages-voices \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jobId": "JOB_ID_FROM_STEP_1"}' -o lecture-assets.zipMP4 有两种生成方式:一是打开任务在 2Slides 工作区,使用导出功能生成视频,浏览器渲染1920×1080 H.264 MP4,每页收费20积分;二是用 FFmpeg 将 ZIP 中的 PNG 和 WAV 组合,生成可上传 LMS 的视频。可参考无脸教育短视频文章中的9:16版本示例。
步骤6:无代码和智能代理替代方案
在 Make 中实现课程到 PowerPoint 自动化
如果课程团队没人愿意写 Python 脚本,同样流程可用 Make(n8n 和 Zapier 类似)实现:
- 触发器:监控课程 Google 表格新增或更新行,或 LMS 触发的 Webhook。
- 转换:文本或变量步骤根据步骤3模板拼接
userInput。 - HTTP 请求:
POST https://2slides.com/api/v1/slides/generate,设置mode: "async",Authorization: Bearer头存为场景密钥,responseLanguage映射自行。 - 等待:延迟30至45秒。
- HTTP 请求:
GET https://2slides.com/api/v1/jobs/{jobId},若status非success或failed,循环等待。 - 交付:将 PPTX 上传到按年级分的 Drive 文件夹,写回
download_url和status = "draft"。 - 限流:每次处理一行,提交间隔至少10秒,保证40行提交不超过每分钟6次请求。
让智能代理帮忙
使用 Claude Code、Codex 或 Cursor 的教师可跳过脚本和自动化工具。安装 2Slides Agent Skill 或添加托管的 MCP 服务器(claude mcp add --transport http 2slides "https://2slides.com/api/mcp?apikey=YOUR_KEY"),粘贴课程表,按行请求生成幻灯片。代理调用相同的 themes_search、slides_generate 和 jobs_get 工具,使用同一 API 密钥和积分;详见Agent Skills 页面。

可访问性与审核:AI 草稿,教师审批
将每套生成的幻灯片视为草稿。status 列从 draft 变为 reviewed 再到 approved,并记录审核者姓名缩写,只有标记为 approved 的幻灯片才发给学生。这是政策要求,不是功能设计,体现了可编辑 PPTX 相较于更漂亮但不可编辑的 PDF 在课堂使用中的重要性。
每套幻灯片审核清单:
- 内容:确保每个目标都出现且符合标准;无虚构事实或日期;快速检测题目可从幻灯片内容回答。
- 阅读水平:句子长度和词汇符合年级要求。最常见的修正是四年级幻灯片出现九年级句子。
- 翻译幻灯片:双语教师单独审核西班牙语或越南语版本,因词汇示例需符合文化背景且翻译准确。
- 可访问性:为图片添加替代文本,检查文本与背景对比度,正文文字在教室后排可读,避免仅用颜色传达信息。大多数学区参考WCAG 指南。
- 视频讲座:
download-slides-pages-voicesZIP 包含每页 WAV,配合任何语音转文本工具生成字幕,几分钟即可完成。
教师审核每套幻灯片约需10分钟:40节课约7小时,远低于从空白模板制作幻灯片的时间。
学区费用预算
积分按用量付费:5美元买2000积分(0.0025美元/积分),80美元买40000积分(0.002美元/积分)。新账户赠送500积分,足够测试4套12页幻灯片。
| 数量 | 流程 | 积分 | 美元 |
|---|---|---|---|
| 40节课 × 12页(一个部门,一个学期) | Fast PPT generate | 480页 × 10 = 4,800 | 约12美元(5美元套餐价格) |
| 500节课 × 12页(学区或课程市场,每月) | Fast PPT generate | 6,000页 × 10 = 60,000 | 约120美元(80美元套餐价格) |
| 40个翻转讲座 × 8页,2K分辨率加配音 | create-pdf-slides 40 × 810,generate-narration 40 × 1,680 | 32,400 + 67,200 = 99,600 | 约199至249美元 |
| 这40个讲座的可选 MP4 导出 | 320页 × 20 | 6,400 | 约13至16美元 |
时间也是预算因素。按每分钟6次提交,40节课约7分钟提交完毕,500节课约84分钟,每套幻灯片生成约30秒后完成。
Fast PPT 还是图像设计幻灯片?
- Fast PPT (
generate) 适合教师需在 PowerPoint 或 Google Slides 中编辑且批量大时:12页幻灯片120积分,约30秒交付。 create-pdf-slides适合幻灯片为最终学生材料(视频讲座、LMS嵌入)或需特定视觉风格:10页2K分辨率1010积分,配音每页210积分。create-like-this适合学区有品牌幻灯片模板需统一风格,传入公共 URL 作为referenceImageUrl,费用与create-pdf-slides相同。- 切勿混用:配音和 MP4 导出仅支持
create-pdf-slides和create-like-this,不支持 Fast PPT。
常见问题
- 批量粘贴时 HTTP 429:API 限制每分钟6次请求,保持单一提交者且间隔10秒,避免多线程或场景分支并发使用同一密钥。
- API 密钥存表格或共享 Apps Script:请保存在服务器端或自动化工具的密钥库,教师只接收幻灯片,不暴露密钥。
- Fast PPT 任务配音失败:配音接口拒绝 Fast PPT 任务,需先用
create-pdf-slides重新生成课程。 - 传递语言代码错误:
responseLanguage: "es"不等于"Spanish",请用支持的语言名称验证语言列。 create-pdf-slides默认page: 1:请显式设置页数(如8页迷你讲座)或用page: 0让模型决定。单页讲座是常见的初次运行意外。- 直接粘贴整个单元计划为
userInput:长标准文档导致幻灯片内容分散,建议先提炼为目标、词汇和幻灯片结构。
常见问题解答
我可以不写代码程序化生成课程幻灯片吗?
可以。在 Make、n8n 或 Zapier 中,使用 Sheets 触发器驱动 HTTP 请求步骤调用 POST /api/v1/slides/generate,设置 mode: "async",再用等待步骤和第二个 HTTP 请求轮询 GET /api/v1/jobs/{id}。教师也可跳过自动化工具,使用带有 2Slides 技能或 MCP 服务器的 AI 代理,从粘贴的课程表生成幻灯片。所有路径均使用相同 API 密钥和积分。
如何用一个课程大纲生成多语言课程幻灯片?
将每节课行复制多份,每份设置不同语言列,如“Spanish”或“Vietnamese”。脚本将该值传给 responseLanguage,相同目标和词汇用同一模板生成英语和西班牙语幻灯片。2Slides 支持20多种输出语言。请双语教师审核翻译幻灯片,确保词汇示例符合文化背景且翻译准确。
有替代 2Slides 的 AI 课程计划转幻灯片 API 吗?
有,多个演示工具提供 API。Gamma 的 API 也支持自动化,但需 Pro 计划获取 API 密钥;而 2Slides 密钥适用于任何账户,包括免费账户(赠送500积分)。SlideSpeak 和 Canva Connect 也有 API。2Slides 是我们的产品,教育场景关键点是:可编辑 PPTX 输出、按请求语言生成、按幻灯片计费。
生成的课程幻灯片应有多少页?
45至50分钟课时,10至14页幻灯片是合理默认:标题、目标、热身、4至6页内容幻灯片(每页一个观点)、词汇页、快速检测和总结。每页10积分,12页幻灯片120积分。请在 userInput 中声明页数,保证批量生成的幻灯片大小、审核时间和费用可控。
教师能在 PowerPoint 或 Google Slides 中编辑生成的幻灯片吗?
能。Fast PPT generate 接口返回基于设计模板的原生 PPTX,文本框、形状和图片均可在 PowerPoint、Keynote 或 Google Slides 中编辑。这也是为何本方案将 API 输出视为草稿:教师打开文件,调整示例以适应学生,保存批准版本。create-pdf-slides 输出为 PDF 及页面图片,不支持文本编辑。
后续步骤
你现在拥有了表格布局、提示模板、Python 循环和审核政策,能为整个部门程序化生成课程幻灯片,支持项目所有教学语言。
- 在 2slides.com/api 获取 API 密钥。注册赠送500积分,足够运行四套12页测试课程。
- 阅读中心文章 按团队划分的 AI 演示 API 用例,了解销售、人力资源和市场团队如何用同样流程处理各自表格。
- 继续学习词汇幻灯片批量生成方案(小提示版本)和视频讲座指南,为首次录制翻转课堂讲座做准备。
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free