diff --git a/backend/open_webui/routers/audio.py b/backend/open_webui/routers/audio.py index fbaae2da4a..139b64f7cf 100644 --- a/backend/open_webui/routers/audio.py +++ b/backend/open_webui/routers/audio.py @@ -53,6 +53,7 @@ from open_webui.env import ( ENV, AIOHTTP_CLIENT_SESSION_SSL, AIOHTTP_CLIENT_TIMEOUT, + AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST, DEVICE_TYPE, ENABLE_FORWARD_USER_INFO_HEADERS, ) @@ -643,6 +644,7 @@ def transcription_handler(request, file_path, metadata, user=None): headers=headers, files={"file": (filename, open(file_path, "rb"))}, data=payload, + timeout=AIOHTTP_CLIENT_TIMEOUT, ) if r.status_code == 200: @@ -703,6 +705,7 @@ def transcription_handler(request, file_path, metadata, user=None): headers=headers, params=params, data=file_data, + timeout=AIOHTTP_CLIENT_TIMEOUT, ) if r.status_code == 200: @@ -814,6 +817,7 @@ def transcription_handler(request, file_path, metadata, user=None): headers={ "Ocp-Apim-Subscription-Key": api_key, }, + timeout=AIOHTTP_CLIENT_TIMEOUT, ) r.raise_for_status() @@ -953,6 +957,7 @@ def transcription_handler(request, file_path, metadata, user=None): "Authorization": f"Bearer {api_key}", "Content-Type": "application/json", }, + timeout=AIOHTTP_CLIENT_TIMEOUT, ) r.raise_for_status() @@ -996,6 +1001,7 @@ def transcription_handler(request, file_path, metadata, user=None): headers={ "Authorization": f"Bearer {api_key}", }, + timeout=AIOHTTP_CLIENT_TIMEOUT, ) r.raise_for_status() @@ -1239,7 +1245,8 @@ def get_available_models(request: Request) -> list[dict]: ): try: response = requests.get( - f"{request.app.state.config.TTS_OPENAI_API_BASE_URL}/audio/models" + f"{request.app.state.config.TTS_OPENAI_API_BASE_URL}/audio/models", + timeout=AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST, ) response.raise_for_status() data = response.json() @@ -1285,7 +1292,8 @@ def get_available_voices(request) -> dict: ): try: response = requests.get( - f"{request.app.state.config.TTS_OPENAI_API_BASE_URL}/audio/voices" + f"{request.app.state.config.TTS_OPENAI_API_BASE_URL}/audio/voices", + timeout=AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST, ) response.raise_for_status() data = response.json() @@ -1329,7 +1337,9 @@ def get_available_voices(request) -> dict: "Ocp-Apim-Subscription-Key": request.app.state.config.TTS_API_KEY } - response = requests.get(url, headers=headers) + response = requests.get( + url, headers=headers, timeout=AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST + ) response.raise_for_status() voices = response.json() @@ -1361,6 +1371,7 @@ def get_elevenlabs_voices(api_key: str) -> dict: "xi-api-key": api_key, "Content-Type": "application/json", }, + timeout=AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST, ) response.raise_for_status() voices_data = response.json()