35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
from __future__ import annotations
|
|
|
|
import os
|
|
from pathlib import Path
|
|
|
|
DATA = Path(os.getenv("ASR_DATA_DIR", "/data"))
|
|
INBOX = DATA / "inbox"
|
|
PROCESSING = DATA / "processing"
|
|
PROCESSED = DATA / "processed"
|
|
FAILED = DATA / "failed"
|
|
TRANSCRIPTS = DATA / "transcripts"
|
|
STATE = Path(os.getenv("ASR_STATE_DIR", "/state"))
|
|
DRAFTS = DATA / "artifacts" / "drafts"
|
|
RESULTS = DATA / "artifacts" / "results"
|
|
LOGS = DATA / "logs"
|
|
META = STATE / "uploads"
|
|
REVISION_QUEUE = STATE / "revision-queue"
|
|
DB = STATE / "intake.db"
|
|
SUPPORTED = {".m4a", ".mp3", ".wav", ".mp4", ".aac", ".ogg", ".opus", ".webm", ".flac"}
|
|
PUBLIC_URL = os.getenv("ASR_PUBLIC_URL", "http://192.168.50.49:8788").rstrip("/")
|
|
AGENT_TOKEN = os.getenv("ASR_AGENT_TOKEN", "")
|
|
DIARIZE_URL = os.getenv("ASR_DIARIZE_URL", "http://192.168.50.100:10099/asr")
|
|
MAX_UPLOAD = int(os.getenv("ASR_UPLOAD_MAX_BYTES", str(4 * 1024**3)))
|
|
POLL_SECONDS = max(1, int(os.getenv("ASR_POLL_SECONDS", "5")))
|
|
STABLE_SECONDS = max(1, int(os.getenv("ASR_STABLE_SECONDS", "10")))
|
|
MAX_ATTEMPTS = max(1, int(os.getenv("ASR_MAX_ATTEMPTS", "3")))
|
|
|
|
|
|
def ensure_dirs() -> None:
|
|
for path in (INBOX, PROCESSING, PROCESSED, FAILED, TRANSCRIPTS, DRAFTS,
|
|
RESULTS, STATE, LOGS, META, REVISION_QUEUE, DATA / "cache",
|
|
DATA / "artifacts" / "raw", DATA / "vault" / "minutes",
|
|
DATA / "vault" / "People", DATA / "vault" / "Companies"):
|
|
path.mkdir(parents=True, exist_ok=True)
|