

Программная генерация слайдов урока из учебной программы (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 создают короткие видео-лекции. Решение предназначено для разработчиков edtech, методистов и команд учебных округов.
Основные выводы
- Один урок Fast PPT стоит 10 кредитов за слайд, значит набор из 12 слайдов — 120 кредитов, примерно $0.30 при тарифе $5 за 2000 кредитов.
- Отдел с 40 уроками по 12 слайдов использует 4800 кредитов, примерно $12, и отправляет запросы примерно за 7 минут при лимите 6 запросов в минуту.
responseLanguageпринимает название языка, например "Spanish" или "Vietnamese", покрывая более 20 языков вывода для билингвальных программ из одних и тех же строк учебной программы.- Вывод Fast PPT — это нативный, редактируемый PPTX, так что учителя могут адаптировать каждый слайд перед занятием. Наборы Fast PPT нельзя озвучивать.
- Для перевёрнутых классов видео-лекция с 8 слайдами и озвучкой стоит 2490 кредитов (810 за 2К слайдов плюс 1680 за озвучку), примерно $5–6.25.
Для кого это
Методисты, инженеры edtech и создатели курсов, которые хранят учебную программу в структурированном виде (Google Sheets, CSV из LMS, база курсов) и нуждаются в черновом наборе слайдов для каждого урока, а не для нескольких. Команды округов, ведущие билингвальные программы, где один урок должен быть на английском и испанском или вьетнамском, получают максимум пользы от поля языка в каждой строке.
Пропустите этот рецепт, если у вас пять уроков и учитель с парой часов свободного времени; обзор инструментов для учителей охватывает путь через веб-приложения.
Обзор рабочего процесса
| Шаг | Инструмент | Что происходит | Конечная точка 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 за слайд при 2К, 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 в документации API 2Slides, включая более 20 значений responseLanguage, принимаемых по имени.
Шаг 4: Программная генерация слайдов урока с Fast PPT
Это шаг, который позволяет небольшой команде массово создавать презентации для классов. Fast PPT generate по умолчанию синхронен и возвращает downloadUrl в одном вызове, что удобно для одного набора. Для пакета установите mode: "async", собирайте значения jobId и опрашивайте. Каждый набор занимает примерно 30 секунд, а ключ разрешает 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 секунд; endpoint 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 при 2К, затем generate-narration с одним голосом, затем экспортируйте видео. Держите лекции короткими: 6–8 слайдов по примерно 45 секунд озвучки на слайд — это видео 5–6 минут.
# 1) слайды с дизайном (по умолчанию async)
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} до статуса 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.zipДва варианта MP4: откройте задачу в рабочем пространстве 2Slides и используйте Экспорт, затем Generate Video, который рендерит H.264 MP4 1920×1080 в браузере за 20 кредитов за слайд; или склейте пары PNG и WAV из ZIP с помощью FFmpeg для полностью скриптованной загрузки в LMS. В посте про образовательные ролики без лица показана версия 9:16 для клипов с правками.
Шаг 6: Безкодовое и агентное решение
Автоматизация учебной программы в PowerPoint через Make
Если никто из команды не хочет запускать Python-скрипт, тот же цикл помещается в сценарий Make (n8n и Zapier работают аналогично):
- Триггер: отслеживание новых или обновлённых строк в Google Sheet с учебной программой или Webhook, срабатывающий из LMS.
- Трансформация: шаг текста или переменной собирает
userInputиз полей строки по шаблону Шага 3. - HTTP-запрос:
POST https://2slides.com/api/v1/slides/generateсmode: "async", заголовокAuthorization: Bearerхранится как секрет сценария,responseLanguageмаппится из строки. - Ожидание: шаг Delay или Sleep на 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 с тем же ключом и кредитами; см. страницу Agent Skills.

Доступность и проверка: черновики от ИИ, утверждение учителями
Рассматривайте каждый сгенерированный набор как черновик. Колонка status меняется с draft на reviewed и approved с инициалами проверяющего, и ничего не доходит до студентов, пока не станет approved. Это политика, а не функция, и поэтому редактируемый PPTX важнее красивого PDF для использования в классе.
Контрольный список при проверке набора:
- Содержание: каждая цель из строки присутствует и соответствует стандарту; нет выдуманных фактов или дат; вопросы для быстрой проверки можно ответить по слайдам.
- Уровень чтения: длина предложений и словарный запас соответствуют классу. Самая частая правка — слайды 4 класса с предложениями 9 класса.
- Переведённые наборы: билингвальный учитель проверяет испанский или вьетнамский набор отдельно, так как примеры должны подходить культурно и быть корректно переведены.
- Доступность: добавьте альтернативный текст к изображениям, проверьте контраст текста с фоном шаблона, держите текст читаемым с задних рядов, и никогда не передавайте смысл только цветом. Руководство WCAG — это ссылка, на которую ссылаются большинство округов.
- Видео-лекции: ZIP из
download-slides-pages-voicesдаёт один WAV на слайд, так что расшифровка с любого инструмента распознавания речи и субтитры на MP4 занимают минуты.
Заложите около 10 минут проверки учителем на набор: примерно 7 часов на 40 уроков, вместо нуля часов на создание наборов с нуля.
Стоимость для отдела
Кредиты — это оплата по мере использования: $5 покупают 2000 кредитов ($0.0025 за кредит), $80 — 40,000 кредитов ($0.002 за кредит). Новые аккаунты получают 500 бесплатных кредитов, достаточно для 4 тестовых наборов по 12 слайдов.
| Объём | Конвейер | Кредиты | USD |
|---|---|---|---|
| 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 слайдов, 2К плюс озвучка | create-pdf-slides 40 × 810, generate-narration 40 × 1,680 | 32,400 + 67,200 = 99,600 | ≈ $199–249 |
| Опциональный экспорт MP4 для тех 40 лекций в рабочем пространстве | 320 страниц × 20 | 6,400 | ≈ $13–16 |
Время — другой бюджет. При 6 отправках в минуту 40 уроков отправляются примерно за 7 минут, 500 — за 84 минуты, каждый набор заканчивается примерно через 30 секунд после отправки.
Fast PPT или слайды с дизайном для этого случая?
- Fast PPT (
generate), когда учителя должны редактировать в PowerPoint или Google Slides и объём большой: 120 кредитов за 12 слайдов, доставка примерно за 30 секунд. create-pdf-slides, когда набор — это конечный артефакт для студентов (видео-лекция, встраивание в LMS) или нужен определённый визуальный стиль: 1010 кредитов за 10 страниц при 2К, плюс 210 за страницу за озвучку.create-like-this, когда у округа есть фирменный слайд, которому должен соответствовать каждый набор; передайте его публичный URL какreferenceImageUrl, стоимость такая же, как уcreate-pdf-slides.- Никогда не смешивайте их случайно: озвучка и экспорт MP4 доступны только для заданий
create-pdf-slidesиcreate-like-this, не для Fast PPT.
Частые ошибки
- HTTP 429 при массовой вставке: ключ разрешает 6 запросов в минуту, поэтому держите одного отправителя с паузой 10 секунд. Не распыляйте отправки по потокам или веткам сценария с одним ключом.
- API-ключ в таблице или общем Apps Script: храните его на сервере или в секретном хранилище инструмента автоматизации. Учителя получают наборы, но не ключи.
- Озвучивание задания 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}. Учителя также могут пропустить инструменты автоматизации и попросить AI-агента с навыком 2Slides или MCP сервером создать наборы из вставленной таблицы учебной программы. Все пути используют один и тот же API-ключ и кредиты.
Как сделать многоязычные слайды урока из одной учебной программы?
Дублируйте каждую строку урока по одному разу на каждый язык и установите колонку языка в название, например "Spanish" или "Vietnamese". Скрипт передаёт это значение как responseLanguage, так что одинаковые цели и словарь создают набор на английском и набор на испанском из одного шаблона запроса. 2Slides поддерживает более 20 языков вывода. Пусть билингвальный учитель проверит каждый переведённый набор, так как примеры словаря должны подходить культурно и быть корректно переведены.
Есть ли альтернатива API 2Slides для генерации слайдов урока с ИИ?
Да, несколько инструментов презентаций имеют API. API Gamma предлагает похожую автоматизацию, но требует 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 и политика проверки, необходимые для программной генерации слайдов урока для всего отдела, на всех языках, на которых ведётся программа.
- Получите API-ключ на 2slides.com/api. Регистрация включает 500 бесплатных кредитов, достаточно для четырёх тестовых наборов по 12 слайдов перед покупкой.
- Прочитайте пост в хабе, AI presentation API use cases by team, чтобы увидеть, как отделы продаж, HR и маркетинга запускают тот же цикл со своими таблицами.
- Продолжайте с рецептом пакетной генерации наборов словаря для варианта с меньшим запросом и руководством по видео-лекциям перед записью первой лекции для перевёрнутого класса.
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free