

從課程大綱程式化生成課堂投影片 (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 美元購買 2,000 點數計算約 0.30 美元。
- 一個學科 40 堂課,每堂 12 張投影片,共需 4,800 點數,約 12 美元,依 6 次請求/分鐘限制約 7 分鐘完成提交。
responseLanguage接受語言名稱,如「Spanish」或「Vietnamese」,同一課程列可產生 20 多種雙語輸出語言。- Fast PPT 輸出為原生可編輯 PPTX,教師可在上課前調整每張投影片。Fast PPT 簡報無法加入旁白。
- 翻轉教室的 8 張投影片旁白影片講座費用為 2,490 點數(2K 投影片 810 點數加旁白 1,680 點數),約 5 至 6.25 美元。
適用對象
教學設計師、教育科技工程師及課程創作者,持有結構化課程資料(Google Sheets、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 2K 每頁 10 + 100 點數,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 簡報外觀。用教室相關關鍵字搜尋 1,500 多個範本,為不同年級帶挑選一至兩個 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 = 1,680 點數)
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 Sheet 新增或更新列,或 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 工具,使用同一金鑰與點數;詳見代理人技能頁面。

無障礙與審核:AI 草稿,教師核准
將每套產生的簡報視為草稿。status 欄位從 draft 變更為 reviewed 再到 approved,並記錄審核者姓名縮寫,未標示 approved 前不發給學生。這是政策而非功能,強調可編輯 PPTX 比漂亮 PDF 更適合教室使用。
每套簡報審核清單:
- 內容:列中每個目標皆出現且符合標準;無虛構事實或日期;快速檢核問題可從投影片回答。
- 閱讀程度:句長與詞彙符合年級。常見修正是四年級簡報出現九年級句子。
- 翻譯簡報:雙語教師獨立審核西班牙文或越南文版本,因詞彙範例需文化適切且翻譯正確。
- 無障礙:為圖片加上替代文字,檢查文字與背景對比,保持內文從教室後方可讀,勿僅用顏色傳達意義。大多數學區參考WCAG 指南。
- 影片講座:
download-slides-pages-voices產生的 ZIP 包含每頁 WAV,搭配任何語音轉文字工具產生字幕,MP4 加上字幕只需幾分鐘。
預估教師審核每套簡報約 10 分鐘:40 堂課約 7 小時,遠低於從空白範本製作的時間。
學區預算成本
點數採用隨用隨付:5 美元購買 2,000 點數(每點 0.0025 美元),80 美元購買 40,000 點數(每點 0.002 美元)。新帳號有 500 點免費點數,足夠測試四套 12 張投影片簡報。
| 數量 | 流程 | 點數 | 美元 |
|---|---|---|---|
| 40 堂課 × 12 張投影片(單學科單學期) | Fast PPT generate | 480 頁 × 10 = 4,800 | 約 12.00 美元(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 解析度 1,010 點數,旁白每頁 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 Request 步驟呼叫 POST /api/v1/slides/generate 並設定 mode: "async",接著等待步驟,再第二個 HTTP Request 呼叫 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