diff --git a/skyvern/config.py b/skyvern/config.py index 1c8a7a31..4f4ae8d3 100644 --- a/skyvern/config.py +++ b/skyvern/config.py @@ -130,6 +130,8 @@ class Settings(BaseSettings): LLM_API_KEY: str | None = None # API key for the model SECONDARY_LLM_KEY: str | None = None SELECT_AGENT_LLM_KEY: str | None = None + NORMAL_SELECT_AGENT_LLM_KEY: str | None = None + CUSTOM_SELECT_AGENT_LLM_KEY: str | None = None SINGLE_CLICK_AGENT_LLM_KEY: str | None = None SINGLE_INPUT_AGENT_LLM_KEY: str | None = None PROMPT_BLOCK_LLM_KEY: str | None = None diff --git a/skyvern/forge/app.py b/skyvern/forge/app.py index 9d7773af..33d22283 100644 --- a/skyvern/forge/app.py +++ b/skyvern/forge/app.py @@ -66,6 +66,16 @@ SECONDARY_LLM_API_HANDLER = LLMAPIHandlerFactory.get_llm_api_handler( SELECT_AGENT_LLM_API_HANDLER = LLMAPIHandlerFactory.get_llm_api_handler( SETTINGS_MANAGER.SELECT_AGENT_LLM_KEY or SETTINGS_MANAGER.SECONDARY_LLM_KEY or SETTINGS_MANAGER.LLM_KEY ) +NORMAL_SELECT_AGENT_LLM_API_HANDLER = ( + LLMAPIHandlerFactory.get_llm_api_handler(SETTINGS_MANAGER.NORMAL_SELECT_AGENT_LLM_KEY) + if SETTINGS_MANAGER.NORMAL_SELECT_AGENT_LLM_KEY + else SECONDARY_LLM_API_HANDLER +) +CUSTOM_SELECT_AGENT_LLM_API_HANDLER = ( + LLMAPIHandlerFactory.get_llm_api_handler(SETTINGS_MANAGER.CUSTOM_SELECT_AGENT_LLM_KEY) + if SETTINGS_MANAGER.CUSTOM_SELECT_AGENT_LLM_KEY + else SECONDARY_LLM_API_HANDLER +) SINGLE_CLICK_AGENT_LLM_API_HANDLER = LLMAPIHandlerFactory.get_llm_api_handler( SETTINGS_MANAGER.SINGLE_CLICK_AGENT_LLM_KEY or SETTINGS_MANAGER.SECONDARY_LLM_KEY or SETTINGS_MANAGER.LLM_KEY ) diff --git a/skyvern/webeye/actions/handler.py b/skyvern/webeye/actions/handler.py index 889b74e8..d23c93fd 100644 --- a/skyvern/webeye/actions/handler.py +++ b/skyvern/webeye/actions/handler.py @@ -3179,7 +3179,7 @@ async def select_from_dropdown( step_id=step.step_id, task_id=task.task_id, ) - json_response = await app.SELECT_AGENT_LLM_API_HANDLER(prompt=prompt, step=step, prompt_name="custom-select") + json_response = await app.CUSTOM_SELECT_AGENT_LLM_API_HANDLER(prompt=prompt, step=step, prompt_name="custom-select") value: str | None = json_response.get("value", None) single_select_result.value = value select_reason: str | None = json_response.get("reasoning", None) @@ -3664,7 +3664,7 @@ async def normal_select( local_datetime=datetime.now(skyvern_context.ensure_context().tz_info).isoformat(), ) - json_response = await app.SELECT_AGENT_LLM_API_HANDLER(prompt=prompt, step=step, prompt_name="normal-select") + json_response = await app.NORMAL_SELECT_AGENT_LLM_API_HANDLER(prompt=prompt, step=step, prompt_name="normal-select") index: int | None = json_response.get("index") value: str | None = json_response.get("value")