Фоновые задачи: плейлисты, длинные лекции, вкладка настроек
- таблица jobs + очередь с воркером: POST /jobs сразу отвечает, элементы
плейлиста обрабатываются последовательно, есть отмена и живой прогресс
(скачивание %, минуты распознанного Vosk-аудио)
- expand_url: плейлист раскрывается в список видео
- keep_video=false теперь качает только аудио (для 4-5ч лекций)
- настройки (LLM-ключ, модель, длина выжимки, хранение видео, путь Vosk)
хранятся в Postgres: переживают перезапуск и перезагрузку страницы
- длина выжимки прокидывается в LLM-промпт ({n} предложений)
- UI: вкладки «Главная»/«Настройки», карточка задач с автообновлением
каждые 3 сек, прогресс-бар, отмена, библиотека обновляется по мере
готовности элементов
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -8,7 +8,9 @@ from sqlalchemy.orm import sessionmaker
|
||||
|
||||
from api.config import settings
|
||||
from api.models.base import Base
|
||||
import api.models.job # noqa: F401 - register model with Base.metadata
|
||||
import api.models.section # noqa: F401 - register model with Base.metadata
|
||||
import api.models.setting # noqa: F401 - register model with Base.metadata
|
||||
import api.models.video # noqa: F401 - register model with Base.metadata
|
||||
|
||||
|
||||
@@ -69,3 +71,6 @@ async def init_db() -> None:
|
||||
"REFERENCES sections(id) ON DELETE SET NULL"
|
||||
)
|
||||
)
|
||||
await conn.execute(
|
||||
text("ALTER TABLE videos ADD COLUMN IF NOT EXISTS job_id VARCHAR")
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user