mirror of
https://github.com/Skyvern-AI/skyvern.git
synced 2025-09-15 09:49:46 +00:00
ModelSelector: add 'Skyvern Optimized' as hard choice (#2558)
This commit is contained in:
parent
800a26d323
commit
b4d5837196
6 changed files with 59 additions and 21 deletions
|
@ -5,10 +5,11 @@ from typing import Any, List
|
|||
from pydantic import BaseModel, field_validator
|
||||
from typing_extensions import deprecated
|
||||
|
||||
from skyvern.config import settings
|
||||
from skyvern.forge.sdk.schemas.files import FileInfo
|
||||
from skyvern.forge.sdk.schemas.task_v2 import TaskV2
|
||||
from skyvern.forge.sdk.workflow.exceptions import WorkflowDefinitionHasDuplicateBlockLabels
|
||||
from skyvern.forge.sdk.workflow.models.block import BlockTypeVar
|
||||
from skyvern.forge.sdk.workflow.models.block import Block, BlockTypeVar
|
||||
from skyvern.forge.sdk.workflow.models.parameter import PARAMETER_TYPE
|
||||
from skyvern.schemas.runs import ProxyLocation
|
||||
from skyvern.utils.url_validators import validate_url
|
||||
|
@ -81,6 +82,34 @@ class Workflow(BaseModel):
|
|||
modified_at: datetime
|
||||
deleted_at: datetime | None = None
|
||||
|
||||
def determine_llm_key(self, *, block: Block | None = None) -> str | None:
|
||||
"""
|
||||
Determine the LLM key override to use for a block, if it has one.
|
||||
|
||||
It has one if:
|
||||
- it defines one, or
|
||||
- the workflow it is a part of (if applicable) defines one
|
||||
"""
|
||||
|
||||
mapping = settings.get_model_name_to_llm_key()
|
||||
|
||||
if block:
|
||||
model_name = (block.model or {}).get("name")
|
||||
|
||||
if model_name:
|
||||
llm_key = mapping.get(model_name)
|
||||
if llm_key:
|
||||
return llm_key
|
||||
|
||||
workflow_model_name = (self.model or {}).get("name")
|
||||
|
||||
if workflow_model_name:
|
||||
llm_key = mapping.get(workflow_model_name)
|
||||
if llm_key:
|
||||
return llm_key
|
||||
|
||||
return None
|
||||
|
||||
|
||||
class WorkflowRunStatus(StrEnum):
|
||||
created = "created"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue