From 17893038869e3a763a8b34457f723b9666804e27 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sat, 9 May 2026 05:14:55 +0900 Subject: [PATCH] refac --- backend/open_webui/config.py | 6 ++++++ backend/open_webui/main.py | 2 ++ backend/open_webui/routers/tasks.py | 4 ++++ backend/open_webui/utils/middleware.py | 4 ++-- src/lib/components/admin/Settings/Interface.svelte | 14 +++----------- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index 3cba80a9d4..5e53d585ab 100644 --- a/backend/open_webui/config.py +++ b/backend/open_webui/config.py @@ -2080,6 +2080,12 @@ VOICE_MODE_PROMPT_TEMPLATE = PersistentConfig( os.environ.get('VOICE_MODE_PROMPT_TEMPLATE', ''), ) +ENABLE_VOICE_MODE_PROMPT = PersistentConfig( + 'ENABLE_VOICE_MODE_PROMPT', + 'task.voice.prompt.enable', + os.environ.get('ENABLE_VOICE_MODE_PROMPT', 'True').lower() == 'true', +) + DEFAULT_VOICE_MODE_PROMPT_TEMPLATE = """You are a friendly, concise voice assistant. Everything you say will be spoken aloud. diff --git a/backend/open_webui/main.py b/backend/open_webui/main.py index cfb8cb3b1a..5462fc642c 100644 --- a/backend/open_webui/main.py +++ b/backend/open_webui/main.py @@ -479,6 +479,7 @@ from open_webui.config import ( IMAGE_PROMPT_GENERATION_PROMPT_TEMPLATE, TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE, VOICE_MODE_PROMPT_TEMPLATE, + ENABLE_VOICE_MODE_PROMPT, QUERY_GENERATION_PROMPT_TEMPLATE, AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE, AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH, @@ -1367,6 +1368,7 @@ app.state.config.QUERY_GENERATION_PROMPT_TEMPLATE = QUERY_GENERATION_PROMPT_TEMP app.state.config.AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE = AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE app.state.config.AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH = AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH app.state.config.VOICE_MODE_PROMPT_TEMPLATE = VOICE_MODE_PROMPT_TEMPLATE +app.state.config.ENABLE_VOICE_MODE_PROMPT = ENABLE_VOICE_MODE_PROMPT ######################################## diff --git a/backend/open_webui/routers/tasks.py b/backend/open_webui/routers/tasks.py index 1d209aceea..56c7e1d1b0 100644 --- a/backend/open_webui/routers/tasks.py +++ b/backend/open_webui/routers/tasks.py @@ -79,6 +79,7 @@ async def get_task_config(request: Request, user=Depends(get_verified_user)): 'ENABLE_RETRIEVAL_QUERY_GENERATION': request.app.state.config.ENABLE_RETRIEVAL_QUERY_GENERATION, 'QUERY_GENERATION_PROMPT_TEMPLATE': request.app.state.config.QUERY_GENERATION_PROMPT_TEMPLATE, 'TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE': request.app.state.config.TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE, + 'ENABLE_VOICE_MODE_PROMPT': request.app.state.config.ENABLE_VOICE_MODE_PROMPT, 'VOICE_MODE_PROMPT_TEMPLATE': request.app.state.config.VOICE_MODE_PROMPT_TEMPLATE, } @@ -99,6 +100,7 @@ class TaskConfigForm(BaseModel): ENABLE_RETRIEVAL_QUERY_GENERATION: bool QUERY_GENERATION_PROMPT_TEMPLATE: str TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE: str + ENABLE_VOICE_MODE_PROMPT: bool VOICE_MODE_PROMPT_TEMPLATE: Optional[str] @@ -127,6 +129,7 @@ async def update_task_config(request: Request, form_data: TaskConfigForm, user=D request.app.state.config.QUERY_GENERATION_PROMPT_TEMPLATE = form_data.QUERY_GENERATION_PROMPT_TEMPLATE request.app.state.config.TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE = form_data.TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE + request.app.state.config.ENABLE_VOICE_MODE_PROMPT = form_data.ENABLE_VOICE_MODE_PROMPT request.app.state.config.VOICE_MODE_PROMPT_TEMPLATE = form_data.VOICE_MODE_PROMPT_TEMPLATE return { @@ -145,6 +148,7 @@ async def update_task_config(request: Request, form_data: TaskConfigForm, user=D 'ENABLE_RETRIEVAL_QUERY_GENERATION': request.app.state.config.ENABLE_RETRIEVAL_QUERY_GENERATION, 'QUERY_GENERATION_PROMPT_TEMPLATE': request.app.state.config.QUERY_GENERATION_PROMPT_TEMPLATE, 'TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE': request.app.state.config.TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE, + 'ENABLE_VOICE_MODE_PROMPT': request.app.state.config.ENABLE_VOICE_MODE_PROMPT, 'VOICE_MODE_PROMPT_TEMPLATE': request.app.state.config.VOICE_MODE_PROMPT_TEMPLATE, } diff --git a/backend/open_webui/utils/middleware.py b/backend/open_webui/utils/middleware.py index 31f5deb2f8..b55e3c07c9 100644 --- a/backend/open_webui/utils/middleware.py +++ b/backend/open_webui/utils/middleware.py @@ -2448,8 +2448,8 @@ async def process_chat_payload(request, form_data, user, metadata, model): extra_params['__features__'] = features if features: if 'voice' in features and features['voice']: - if request.app.state.config.VOICE_MODE_PROMPT_TEMPLATE != None: - if request.app.state.config.VOICE_MODE_PROMPT_TEMPLATE != '': + if getattr(request.app.state.config, "ENABLE_VOICE_MODE_PROMPT", True): + if request.app.state.config.VOICE_MODE_PROMPT_TEMPLATE: template = request.app.state.config.VOICE_MODE_PROMPT_TEMPLATE else: template = DEFAULT_VOICE_MODE_PROMPT_TEMPLATE diff --git a/src/lib/components/admin/Settings/Interface.svelte b/src/lib/components/admin/Settings/Interface.svelte index db7f1b6146..5d04fa6a0a 100644 --- a/src/lib/components/admin/Settings/Interface.svelte +++ b/src/lib/components/admin/Settings/Interface.svelte @@ -31,6 +31,7 @@ ENABLE_RETRIEVAL_QUERY_GENERATION: true, QUERY_GENERATION_PROMPT_TEMPLATE: '', TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE: '', + ENABLE_VOICE_MODE_PROMPT: true, VOICE_MODE_PROMPT_TEMPLATE: '' }; @@ -239,19 +240,10 @@ {$i18n.t('Voice Mode Custom Prompt')} - { - if (e.detail) { - taskConfig.VOICE_MODE_PROMPT_TEMPLATE = ''; - } else { - taskConfig.VOICE_MODE_PROMPT_TEMPLATE = null; - } - }} - /> + - {#if taskConfig.VOICE_MODE_PROMPT_TEMPLATE != null} + {#if taskConfig.ENABLE_VOICE_MODE_PROMPT}
{$i18n.t('Voice Mode Prompt')}