Files
luke_scribe/.env.example
lukehemmin 7327145d7a feat: implement full-platform STT API (v2.3 consensus plan)
Batch+realtime transcription API: faster-whisper engine w/ EngineOwner
(single GPU owner, OOM downgrade chain, persisted attempted_profiles),
hardware-adaptive device manager (T0-T3 VRAM tiers), Redis/in-proc job
queue w/ leases + crash recovery, postprocess (glossary/rules/LLM w/
egress guard), privacy-first result store (UUID keys, source deleted
after transcribe), retention sweeper, API-key auth (HMAC digests,
scopes, job ownership), WebSocket realtime lane (LocalAgreement),
CLI (detect/transcribe/bench/serve/key), Docker, benchmark runner.

127 mock-based tests pass; ruff clean. Includes verification checklist
and autoplan review notes.
2026-08-12 16:01:21 +09:00

80 lines
4.3 KiB
Bash

# ── luke_scribe 설정 (모든 값은 선택; 기본값은 src/luke_scribe/config.py)
# 복사: cp .env.example .env
# ── 모델 ─────────────────────────────────────────────────────────────
# 실시간 경로 기본 모델 (P1 bench 게이트 전에는 turbo)
LUKESCRIBE_MODEL_RT=large-v3-turbo
# 배치 경로 기본 모델 (P1 bench 게이트 전에는 turbo; 게이트 후 결정 파일로 대체)
LUKESCRIBE_MODEL_BATCH=large-v3-turbo
# 모델 캐시 디렉터리 (Hugging Face 캐시)
LUKESCRIBE_MODEL_CACHE_DIR=
# ── 장치 ─────────────────────────────────────────────────────────────
# auto | cpu | cuda | cuda:N
LUKESCRIBE_DEVICE=auto
# null이면 Device Manager가 자동 결정 (float16 | int8_float16 | int8 | auto)
LUKESCRIBE_COMPUTE_TYPE=auto
# 배치 워커 프로세스 수 (0 = Device Manager 자동 산정)
LUKESCRIBE_WORKERS=0
# ── 언어 / 후처리 ────────────────────────────────────────────────────
# 기본 언어 (auto = 자동 감지)
LUKESCRIBE_LANGUAGE=ko
# 후처리 모드: none | glossary | rules | llm
LUKESCRIBE_POST_MODE=rules
# glossary/rules 활성화 여부 (true 권장)
LUKESCRIBE_POST_ENABLED=true
# ── API 키 인증 ──────────────────────────────────────────────────────
# 형식: "key:스코프1,스코프2" 또는 "key" (기본 스코프 transcribe). 여러 개는 쉼표로.
# 예: LUKESCRIBE_API_KEYS="luke-$(openssl rand -hex 24):transcribe,admin"
LUKESCRIBE_API_KEYS=
# 키 저장 파일 (지정 시 키를 이 파일에 HMAC 다이제스트로 저장, CLI `key create`로 생성)
LUKESCRIBE_API_KEY_FILE=api_keys.json
# 스코프 검증 (comma separated required scope for admin routes)
LUKESCRIBE_ADMIN_SCOPES=admin
# ── 큐 / 실행 프로파일 ───────────────────────────────────────────────
# redis | inproc (dev/Colab 기본 inproc, Redis 불필요)
LUKESCRIBE_QUEUE_BACKEND=inproc
# 프로덕션 Redis URL (queue_backend=redis 일 때만)
LUKESCRIBE_REDIS_URL=redis://localhost:6379/0
# 최대 큐 길이 (초과 시 429)
LUKESCRIBE_MAX_QUEUE=100
# 입력 상한
LUKESCRIBE_MAX_DURATION_SEC=14400
LUKESCRIBE_MAX_UPLOAD_BYTES=2147483648
# ── 보관 / 프라이버시 ────────────────────────────────────────────────
# 결과 보관 기간 (일)
LUKESCRIBE_RETENTION_DAYS=7
# 결과 저장 루트 (기본: 시스템 임시 디렉터리/luke-scribe)
LUKESCRIBE_RESULTS_DIR=
# 원본/파생 오디오 즉시 삭제 (false 금지)
LUKESCRIBE_DELETE_SOURCE=true
# ── LLM 후처리 (기본 off) ────────────────────────────────────────────
# local | openai | external
LUKESCRIBE_LLM_BACKEND=none
# external/openai 전용: 허용 엔드포인트 목록 (provider_id=url, 쉼표 구분)
LUKESCRIBE_LLM_ALLOWLIST=
# LLM 모델명
LUKESCRIBE_LLM_MODEL=
# 전송 감사 로그 (true)
LUKESCRIBE_LLM_AUDIT=true
# ── 터널 ─────────────────────────────────────────────────────────────
# none | cloudflare
LUKESCRIBE_TUNNEL=none
# cloudflared 바이너리 경로 (PATH에 없을 때)
LUKESCRIBE_CLOUDFLARED_PATH=
# ── 관측 ─────────────────────────────────────────────────────────────
LUKESCRIBE_LOG_LEVEL=INFO
# true면 JSON 라인 로그 (프로덕션 권장)
LUKESCRIBE_LOG_JSON=false
# ── API 서버 ─────────────────────────────────────────────────────────
LUKESCRIBE_HOST=0.0.0.0
LUKESCRIBE_PORT=8000