Tools har nu en behörighetsstyrd Whisper-kö för transkribering.
/whisper (kräver permission:whisper.use)/admin/whisper (kräver permission:whisper.manage)/api/whisper/* (kräver autentiserad användare + whisper.use)POST /api/whisper/run-now (kräver whisper.manage)Adminanvändare tillåts via admin-bypass.
whisper_transcriptions med status queued.whisper:process plockar och kör jobb.downloading, transcribing, finalizing, completed eller failed).Typisk Debian/Ubuntu-installation:
sudo apt-get update
sudo apt-get install -y ffmpeg python3 python3-venv python3-pip
python3 -m venv ~/.venvs/whisper
~/.venvs/whisper/bin/pip install --upgrade pip
~/.venvs/whisper/bin/pip install openai-whisper
Sätt sedan WHISPER_BIN till korrekt sökväg om whisper inte ligger i PATH.
WHISPER_ENABLED=true
WHISPER_BIN=whisper
WHISPER_DEFAULT_MODEL=small
WHISPER_VERIFY_SSL=true
WHISPER_DOWNLOAD_TIMEOUT=180
WHISPER_PROCESS_TIMEOUT=3600
WHISPER_MAX_ATTEMPTS=3
WHISPER_RETRY_DELAY_SECONDS=120
Kön processas via Laravel scheduler varje minut:
php artisan whisper:process --limit=1Manuell körning:
php artisan whisper:process --limit=5
Alla endpoints är autentiserade (webbsession eller JWT från /api/account/login) och behörighetsstyrda.
GET /api/whisper/statusReturnerar kö-räknare och klientkapabiliteter.
GET /api/whisper/jobs?limit=100Returnerar synliga jobb för aktuell användare.
limit begränsas server-side.POST /api/whisper/jobsLägger ett nytt transkriberingsjobb i kö.
Exempelbody:
{
"source_url": "https://example.com/audio.mp3",
"model": "small",
"language": "sv"
}
GET /api/whisper/jobs/{jobId}Returnerar ett synligt jobb.
POST /api/whisper/run-nowAdmin/manager-endpoint för omedelbar kökörning.
Exempelbody (valfri):
{
"limit": 1
}
Varje jobb inkluderar:
status: queued|downloading|transcribing|finalizing|completed|failedprogress_percent: heltal i procent för live-UIlast_error: senaste feltexttranscript_text: sätts när jobbet är färdigt