Refactor LLM config to payload-based approach and add NORMAL/CUSTOM select-agent handlers (#3723)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user