Интеллектуальная система автоматической генерации образовательных курсов на базе исходных PDF-документов (книг, инструкций, дипломов). Проект разделяет контент на модули, уроки и интерактивные слайды с тестами (квизами), а также упаковывает результат в SCORM-пакеты для интеграции в любые современные LMS-системы (Moodle, iSpring Learn, WebTutor).
Система построена на базе рекурсивно-языковой модели (RLM) с четырьмя уровнями интеграции:
- Level 1 (DocumentAnalyzer): Иерархический анализ структуры документа. Текст делится на чанки (родительские и дочерние), для которых строятся краткие суммаризации. Они кэшируются в базе данных и используются для составления верхнеуровневого учебного плана (Syllabus).
- Level 2 (AgenticRAG): Агентный поиск контекста. При генерации каждого конкретного урока ИИ совершает до 3 итераций поиска в векторной базе данных (PostgreSQL +
pgvector), проверяя полноту собранного материала (>80% покрытия темы). - Level 3 (QualityReviewer): Автоматический контроль качества. Перед сохранением урока ИИ-ревьюер сверяет сгенерированные слайды по 3 критериям (покрытие целей обучения, валидность тестов, фактологическое заземление на исходные чанки). В случае ошибок запускается точечная доработка (до 2 попыток).
- Level 4 (Parallel Generation): Поддержка параллельной генерации модулей и уроков для высокопроизводительных облачных API (отключаемая опция).
- Core: Python 3.9+, FastAPI, SQLAlchemy
- Database: PostgreSQL + расширение
pgvector(для хранения векторных представлений текстов) - ИИ-Провайдеры (выбор при запуске):
- Gemini: Модели семейства
gemini-2.5-flashиgemini-embedding-2для эмбеддингов. - DeepSeek: Прямая интеграция с официальным API (
deepseek-chat). - OpenRouter: Доступ к лучшим open-source моделям (например,
deepseek/deepseek-chat). - Ollama (Локально): Полностью приватная генерация на локальном железе (например,
qwen3.5:35b-a3bи локальные эмбеддинги).
- Gemini: Модели семейства
- Export: Генерация архивов SCORM 1.2, HTML5-сайтов и PDF-документов.
- Установленный PostgreSQL с поддержкой
pgvector. - Установленная СУБД Redis (для очереди задач).
# Установка виртуального окружения
python3 -m venv .venv
source .venv/bin/activate
# Установка зависимостей
pip install -r requirements.txtСоздайте файл .env в корневой директории на основе шаблона .env.example:
# База данных PostgreSQL
DATABASE_URL=postgresql+psycopg://postgres:postgrespassword@localhost:5432/course_generator
# Redis
REDIS_URL=redis://localhost:6379/0
# API-ключи провайдеров
GEMINI_API_KEY=ваш_ключ_gemini
DEEPSEEK_API_KEY=ваш_ключ_deepseek
OPENROUTER_API_KEY=ваш_ключ_openrouter
# Настройки генерации по умолчанию
GENERATION_PROVIDER=gemini
EMBEDDING_PROVIDER=gemini
EMBEDDING_DIMENSION=3072
GEMINI_GENERATION_MODEL=gemini-2.5-flash.venv/bin/python3 -m uvicorn app.main:app --reloadAPI будет доступно по адресу http://localhost:8000. Интерактивная документация Swagger: http://localhost:8000/docs.
Скрипт запускает интерактивный выбор модели и отправляет запрос на бэкенд для генерации:
.venv/bin/python3 trigger_generation.pyЧтобы посмотреть сгенерированные слайды и тесты, не дожидаясь сборки SCORM-пакета:
.venv/bin/python3 preview_lessons.pyРезультат запишется в файл lessons_preview.md в корневой папке.
POST /api/v1/courses/generate— запуск асинхронной генерации курса. Принимаетdocument_idиprovider.GET /api/v1/courses/{course_id}— получить текущий статус генерации и учебный план.GET /api/v1/courses/{course_id}/lessons— получить все готовые уроки, слайды и тесты.GET /api/v1/courses/{course_id}/export?format={scorm12|pdf|html5}— экспорт курса в выбранный формат.PUT /api/v1/courses/slides/{slide_id}— ручное редактирование контента слайда.POST /api/v1/courses/{course_id}/stop— экстренная остановка генерации.