44 lines
1.8 KiB
Python
44 lines
1.8 KiB
Python
from __future__ import annotations
|
|
|
|
import os
|
|
from pathlib import Path
|
|
|
|
from asrpipe.config import CFG
|
|
|
|
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", str(CFG.state_dir)))
|
|
DRAFTS = Path(os.getenv("ASR_DRAFTS_DIR", str(DATA / "artifacts" / "drafts")))
|
|
RESULTS = Path(os.getenv("ASR_RESULTS_DIR", str(DATA / "artifacts" / "results")))
|
|
LOGS = DATA / "logs"
|
|
META = STATE / "uploads"
|
|
REVISION_QUEUE = Path(os.getenv("ASR_REVISION_QUEUE_DIR", str(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", "")
|
|
WEB_PASSWORD = os.getenv("ASR_WEB_PASSWORD", "")
|
|
DIARIZE_URL = os.getenv("ASR_DIARIZE_URL", CFG.diarize_url)
|
|
DEFAULT_PROVIDER = os.getenv("ASR_PROVIDER", CFG.asr_provider)
|
|
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:
|
|
# Keep asrpipe CFG aligned with container/service paths when running under asrservice
|
|
CFG.state_dir
|
|
for path in (
|
|
INBOX, PROCESSING, PROCESSED, FAILED, TRANSCRIPTS, DRAFTS,
|
|
RESULTS, STATE, LOGS, META, REVISION_QUEUE, DATA / "cache",
|
|
DATA / "artifacts" / "raw", DATA / "artifacts" / "results",
|
|
DATA / "vault" / "minutes", DATA / "vault" / "People",
|
|
DATA / "vault" / "Companies", DATA / "vault" / "Projects",
|
|
):
|
|
path.mkdir(parents=True, exist_ok=True)
|