feat(p1): scaffolding + Device Manager / VRAM probe + CLI detect
- pyproject (uv, src layout) + extras: engine/gpu/api/diarize/llm - config.py (pydantic-settings, SCRIBE_ env) - devices/: vram_probe (NVML/psutil/disk) + DeviceManager → capability tier T0–T3, precision by cc/VRAM, worker estimate (계획 §3.6, AC-2/3) - cli.py (typer): detect (구현) + transcribe/bench/serve (스텁) - run.sh, .env.example, README Verified on GTX 1050/2GB: detect → T0_CPU (turbo doesn't fit → explicit downgrade, fail-explicit). Overrides (--device/--workers) work. 7 unit tests cover T0–T3 + overrides via synthetic VRAM. ruff clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
[project]
|
||||
name = "luke-scribe"
|
||||
version = "0.1.0"
|
||||
description = "내부용 로컬 STT 전사 API (faster-whisper, hardware-adaptive)"
|
||||
requires-python = ">=3.11"
|
||||
dependencies = [
|
||||
"pydantic>=2.7",
|
||||
"pydantic-settings>=2.3",
|
||||
"typer>=0.12",
|
||||
"rich>=13.7",
|
||||
"psutil>=5.9",
|
||||
"nvidia-ml-py>=12.535",
|
||||
"huggingface-hub>=0.24",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
# 엔진 — transcribe/bench 증분에서 설치 (uv sync --extra engine)
|
||||
engine = ["faster-whisper>=1.0.3", "av>=11"]
|
||||
# GPU CUDA 런타임 (faster-whisper GPU 추론 시)
|
||||
gpu = ["nvidia-cublas-cu12", "nvidia-cudnn-cu12"]
|
||||
# P2 API + Queue
|
||||
api = ["fastapi>=0.110", "uvicorn[standard]>=0.29", "redis>=5.0", "rq>=1.16"]
|
||||
# P5 옵션
|
||||
diarize = ["pyannote.audio>=3.1"]
|
||||
llm = ["openai>=1.30"]
|
||||
|
||||
[project.scripts]
|
||||
luke-scribe = "luke_scribe.cli:main"
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["src/luke_scribe"]
|
||||
|
||||
[dependency-groups]
|
||||
dev = ["pytest>=8.2", "ruff>=0.5"]
|
||||
Reference in New Issue
Block a user