2Slides Logo
Автоматическая генерация слайдов уроков из учебной программы (2026)
2Slides Team
16 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 создают короткие видео-лекции. Решение предназначено для разработчиков 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Одна строка на урок и язык: модуль, название, класс, цели, словарь, количество слайдовнет
2curl или браузерПоиск тем по образованию и классам, сохранить один themeId на каждый классGET /api/v1/themes/search, бесплатно
3Python или NodeПостроить структурированный запрос из полей строки, установить responseLanguage для классанет
4Python или MakeОдин вызов generate на строку с mode: "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 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 запросов в минуту, запускайте её один раз при настройке, а не на каждый урок.

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.

Параметры конечной точки generate и более 20 поддерживаемых языков вывода
Рисунок 2: Параметры конечной точки 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" обратно в таблицу по мере появления каждого набора.

Интерфейс Fast PPT 2Slides с карточками шаблонов, такими как Blue Doodle study-abroad и Critical Thinking
Рисунок 3: Интерфейс Fast PPT в веб-приложении 2Slides. Конечная точка 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.

Страница 2Slides Agent Skills: запуск той же генерации из Claude Code, Codex, Cursor и других агентов
Рисунок 4: Страница 2Slides Agent Skills. Навык и MCP сервер открывают семь API-инструментов для кодирующих агентов, чтобы учитель мог запросить наборы на естественном языке.

Доступность и проверка: черновики от ИИ, утверждение учителями

Рассматривайте каждый сгенерированный набор как черновик. Колонка 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 generate480 страниц × 10 = 4,800≈ $12.00 при тарифе $5 за пакет
500 уроков × 12 слайдов (округ или маркетплейс курсов, в месяц)Fast PPT generate6,000 страниц × 10 = 60,000≈ $120 при тарифе $80 за пакет
40 перевёрнутых лекций × 8 слайдов, 2К плюс озвучкаcreate-pdf-slides 40 × 810, generate-narration 40 × 1,68032,400 + 67,200 = 99,600≈ $199–249
Опциональный экспорт MP4 для тех 40 лекций в рабочем пространстве320 страниц × 206,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 и политика проверки, необходимые для программной генерации слайдов урока для всего отдела, на всех языках, на которых ведётся программа.

About 2Slides

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

Try For Free