#!/usr/bin/env python3 """Long-form block: each public file WHOLE, in one request, exactly as the seat would receive it, twice per arm (determinism). Arms run one at a time so each one's long-form memory peak is its own. Writes out/raw/long/----.json {arm, file, k, e2e_ms, server_ms, status, text, t0, t1}. usage: run_long.py ARM:PORT ... """ import json import os import sys import time AB = "/tank/spikes/parakeet-ab" sys.path.insert(0, f"{AB}/code") from bench import post # noqa: E402 FILES = {"wilde": "/tank/spikes/scriberr-slicer/public/wilde.wav", "scotus": "/tank/spikes/scriberr-slicer/public/scotus.wav"} os.makedirs(f"{AB}/out/raw/long", exist_ok=True) for spec in sys.argv[1:]: arm, port = spec.split(":") for f, path in FILES.items(): wav = open(path, "rb").read() for k in (1, 2): t0 = time.time() try: res = post(f"http://127.0.0.1:{port}/v1/audio/transcriptions", wav, timeout=3600) except Exception as e: # noqa: BLE001 res = dict(status=-1, err=repr(e)[:300], e2e_ms=None, server_ms=None, text=None) t1 = time.time() json.dump(dict(arm=arm, file=f, k=k, t0=t0, t1=t1, **res), open(f"{AB}/out/raw/long/{f}--{arm}--{k}.json", "w")) print(arm, f, k, res.get("status"), res.get("e2e_ms"), (res.get("err") or "")[:200], flush=True) print("LONG DONE", flush=True)