2Slides Logo
從課程大綱程式化生成教學投影片(2026)
2Slides Team
8 min read

從課程大綱程式化生成課堂投影片 (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 端點 / 點數
1Sheets 或 LMS 匯出每堂課及語言一列:單元、標題、年級、目標、詞彙、投影片數
2curl 或瀏覽器搜尋教育與教室主題,為每年級帶存一個 themeIdGET /api/v1/themes/search,免費
3Python 或 Node從列欄位建構結構化提示,依班級設定 responseLanguage
4Python 或 Make每列呼叫一次 generatemode: "async",每分鐘最多 6 次POST /api/v1/slides/generate,每頁 10 點數
5腳本每 5 至 10 秒輪詢直到 success,下載 PPTX 至 Drive 或 LMSGET /api/v1/jobs/{id},免費
6教師審閱、編輯並核准 PPTX 後發給學生
7 (選用)腳本加工作區翻轉教室:圖片設計投影片、單一語音旁白、匯出 MP4create-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_iddownload_urlstatusstatus 欄位用於後述的審核流程。

步驟 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_ELEMENTARYEDU_THEME_SECONDARY),而非放在試算表中。搜尋端點免費,但與其他請求共用每分鐘 6 次限制,建議只在設定階段執行一次,不要每堂課都查。

2Slides Templates Hub 展示適合教室的手繪與塗鴉風格主題
圖 1:2Slides 範本中心,這裡瀏覽並篩選適合低年級的手繪與塗鴉風格;同樣範本可透過 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.

2Slides generate 端點參數與支援的 20 多種輸出語言
圖 2:2Slides API 文件中 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_iddownload_urlstatus = "draft" 寫回試算表,隨每套簡報產出。

2Slides Fast PPT 介面顯示藍色塗鴉留學與批判性思考主題範本卡片
圖 3:2Slides 網頁應用中的 Fast PPT 介面。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.zip

MP4 有兩種選擇:在 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/generatemode: "async"Authorization: Bearer 標頭存為情境秘密,responseLanguage 從列映射。
  • 等待:延遲 30 至 45 秒。
  • HTTP 請求:GET https://2slides.com/api/v1/jobs/{jobId};若 statussuccessfailed,重複等待。
  • 傳送:將 PPTX 上傳至依年級分類的 Drive 資料夾,並將 download_urlstatus = "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_searchslides_generatejobs_get 工具,使用同一金鑰與點數;詳見代理人技能頁面

2Slides 代理人技能頁面:從 Claude Code、Codex、Cursor 等代理人執行同樣的生成
圖 4:2Slides 代理人技能頁面。技能與 MCP 伺服器向程式代理人暴露七個 API 工具,教師可用自然語言請求簡報。

無障礙與審核: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 generate480 頁 × 10 = 4,800約 12.00 美元(5 美元包計價)
500 堂課 × 12 張投影片(學區或課程市集,每月)Fast PPT generate6,000 頁 × 10 = 60,000約 120 美元(80 美元包計價)
40 堂翻轉講座 × 8 張投影片,2K 解析度加旁白create-pdf-slides 40 × 810,generate-narration 40 × 1,68032,400 + 67,200 = 99,600約 199 至 249 美元
工作區中 40 堂講座的 MP4 匯出(選用)320 頁 × 206,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-slidescreate-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 迴圈與審核政策,可為整個學科程式化生成課堂投影片,並支援所有教學語言。

About 2Slides

Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.

Try For Free