feat: self-hosted Whisper server support

- MediaTranscriber: if whisper_url set, POSTs to own server with
  Basic auth (audio_file field); falls back to OpenAI cloud Whisper
- Admin AI tab: new section for whisper_url / whisper_user / whisper_pass
- save-ai endpoint: saves the three whisper fields to config_json

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-05 20:07:49 -05:00
co-authored by Claude Sonnet 4.6
parent 9509c3b4fc
commit fc54ec992b
3 changed files with 72 additions and 3 deletions
+7
View File
@@ -634,6 +634,13 @@ $routes = [
$claudeModel = trim($_POST['claude_model'] ?? '');
if ($claudeModel !== '') $config['claude_model'] = $claudeModel;
$whisperUrl = trim($_POST['whisper_url'] ?? '');
$config['whisper_url'] = $whisperUrl;
$whisperUser = trim($_POST['whisper_user'] ?? '');
$config['whisper_user'] = $whisperUser;
$whisperPass = trim($_POST['whisper_pass'] ?? '');
if ($whisperPass !== '') $config['whisper_pass'] = $whisperPass;
CompanyRepository::save(['id' => $companyId, 'config_json' => json_encode($config, JSON_UNESCAPED_UNICODE)]);
echo json_encode(['ok' => true]);
exit;