- таблица 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>
27 lines
647 B
TOML
27 lines
647 B
TOML
[project]
|
|
name = "llm-infa"
|
|
version = "0.4.0"
|
|
description = "YouTube -> транскрипция -> LLM-выжимка -> Postgres"
|
|
readme = "README.md"
|
|
requires-python = ">=3.14"
|
|
dependencies = [
|
|
"asyncpg>=0.31.0",
|
|
"fastapi>=0.129.0",
|
|
"flet>=0.28.3",
|
|
"pydantic>=2.12.5",
|
|
"pydantic-settings>=2.13.0",
|
|
"sqlalchemy>=2.0.46",
|
|
"toml>=0.10.2",
|
|
"uvicorn>=0.41.0",
|
|
"vosk>=0.3.45",
|
|
"yt-dlp>=2026.2.4",
|
|
]
|
|
|
|
[dependency-groups]
|
|
# Flet UI (запускается в контейнере web на python 3.12; классический API flet)
|
|
web = [
|
|
"flet==0.28.3",
|
|
"flet-web==0.28.3",
|
|
"httpx>=0.28.1",
|
|
]
|