From 9742112449a1930de5daf0ec88f1961f6c86ecdd Mon Sep 17 00:00:00 2001 From: pedrohsdb Date: Tue, 16 Sep 2025 19:05:18 -0700 Subject: [PATCH] setting up a separate handler for parse input or select, for experiment (#3449) --- skyvern/config.py | 1 + skyvern/forge/app.py | 5 +++++ skyvern/webeye/actions/handler.py | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/skyvern/config.py b/skyvern/config.py index 8ab1fdf0..79c248f2 100644 --- a/skyvern/config.py +++ b/skyvern/config.py @@ -121,6 +121,7 @@ class Settings(BaseSettings): SINGLE_CLICK_AGENT_LLM_KEY: str | None = None SINGLE_INPUT_AGENT_LLM_KEY: str | None = None PROMPT_BLOCK_LLM_KEY: str | None = None + PARSE_SELECT_LLM_KEY: str | None = None EXTRACTION_LLM_KEY: str | None = None # COMMON LLM_CONFIG_TIMEOUT: int = 300 diff --git a/skyvern/forge/app.py b/skyvern/forge/app.py index 82ba0a32..e56f9920 100644 --- a/skyvern/forge/app.py +++ b/skyvern/forge/app.py @@ -68,6 +68,11 @@ SINGLE_CLICK_AGENT_LLM_API_HANDLER = LLMAPIHandlerFactory.get_llm_api_handler( SINGLE_INPUT_AGENT_LLM_API_HANDLER = LLMAPIHandlerFactory.get_llm_api_handler( SETTINGS_MANAGER.SINGLE_INPUT_AGENT_LLM_KEY or SETTINGS_MANAGER.SECONDARY_LLM_KEY or SETTINGS_MANAGER.LLM_KEY ) +PARSE_SELECT_LLM_API_HANDLER = ( + LLMAPIHandlerFactory.get_llm_api_handler(SETTINGS_MANAGER.PARSE_SELECT_LLM_KEY) + if SETTINGS_MANAGER.PARSE_SELECT_LLM_KEY + else SECONDARY_LLM_API_HANDLER +) EXTRACTION_LLM_API_HANDLER = ( LLMAPIHandlerFactory.get_llm_api_handler(SETTINGS_MANAGER.EXTRACTION_LLM_KEY) if SETTINGS_MANAGER.EXTRACTION_LLM_KEY diff --git a/skyvern/webeye/actions/handler.py b/skyvern/webeye/actions/handler.py index f16dfa38..9fd816b5 100644 --- a/skyvern/webeye/actions/handler.py +++ b/skyvern/webeye/actions/handler.py @@ -3723,7 +3723,8 @@ async def _get_input_or_select_context( action_reasoning=action.reasoning, element_id=action.element_id, ) - json_response = await app.SECONDARY_LLM_API_HANDLER( + # Use centralized parse-select handler (set at init or via scripts) + json_response = await app.PARSE_SELECT_LLM_API_HANDLER( prompt=prompt, step=step, prompt_name="parse-input-or-select-context" ) json_response["intention"] = action.intention