diff --git a/poetry.lock b/poetry.lock index 1924d543..92a2058b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.4 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. [[package]] name = "about-time" @@ -4005,13 +4005,14 @@ pyyaml-ft = {version = ">=8.0.0", markers = "python_version >= \"3.13\""} [[package]] name = "litellm" -version = "1.74.0.post1" +version = "1.75.8" description = "Library to easily interface with LLM API providers" optional = false python-versions = "!=2.7.*,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,!=3.7.*,>=3.8" groups = ["main"] files = [ - {file = "litellm-1.74.0.post1.tar.gz", hash = "sha256:417b08d0584ffc2788386261f1b3dea6e0b1b09b0231f48c46426c0c7a9b7278"}, + {file = "litellm-1.75.8-py3-none-any.whl", hash = "sha256:0bf004488df8506381ec6e35e1486e2870e8d578a7c3f2427cd497558ce07a2e"}, + {file = "litellm-1.75.8.tar.gz", hash = "sha256:92061bd263ff8c33c8fff70ba92cd046adb7ea041a605826a915d108742fe59e"}, ] [package.dependencies] @@ -4021,7 +4022,7 @@ httpx = ">=0.23.0" importlib-metadata = ">=6.8.0" jinja2 = ">=3.1.2,<4.0.0" jsonschema = ">=4.22.0,<5.0.0" -openai = ">=1.68.2" +openai = ">=1.99.5" pydantic = ">=2.5.0,<3.0.0" python-dotenv = ">=0.2.0" tiktoken = ">=0.7.0" @@ -4029,8 +4030,10 @@ tokenizers = "*" [package.extras] caching = ["diskcache (>=5.6.1,<6.0.0)"] -extra-proxy = ["azure-identity (>=1.15.0,<2.0.0)", "azure-keyvault-secrets (>=4.8.0,<5.0.0)", "google-cloud-kms (>=2.21.3,<3.0.0)", "prisma (==0.11.0)", "redisvl (>=0.4.1,<0.5.0) ; python_version >= \"3.9\" and python_version < \"3.14\"", "resend (>=0.8.0,<0.9.0)"] -proxy = ["PyJWT (>=2.8.0,<3.0.0)", "apscheduler (>=3.10.4,<4.0.0)", "backoff", "boto3 (==1.34.34)", "cryptography (>=43.0.1,<44.0.0)", "fastapi (>=0.115.5,<0.116.0)", "fastapi-sso (>=0.16.0,<0.17.0)", "gunicorn (>=23.0.0,<24.0.0)", "litellm-enterprise (==0.1.11)", "litellm-proxy-extras (==0.2.6)", "mcp (==1.9.3) ; python_version >= \"3.10\"", "orjson (>=3.9.7,<4.0.0)", "pynacl (>=1.5.0,<2.0.0)", "python-multipart (>=0.0.18,<0.0.19)", "pyyaml (>=6.0.1,<7.0.0)", "rich (==13.7.1)", "rq", "uvicorn (>=0.29.0,<0.30.0)", "uvloop (>=0.21.0,<0.22.0) ; sys_platform != \"win32\"", "websockets (>=13.1.0,<14.0.0)"] +extra-proxy = ["azure-identity (>=1.15.0,<2.0.0)", "azure-keyvault-secrets (>=4.8.0,<5.0.0)", "google-cloud-iam (>=2.19.1,<3.0.0)", "google-cloud-kms (>=2.21.3,<3.0.0)", "prisma (==0.11.0)", "redisvl (>=0.4.1,<0.5.0) ; python_version >= \"3.9\" and python_version < \"3.14\"", "resend (>=0.8.0,<0.9.0)"] +mlflow = ["mlflow (>3.1.4) ; python_version >= \"3.10\""] +proxy = ["PyJWT (>=2.8.0,<3.0.0)", "apscheduler (>=3.10.4,<4.0.0)", "azure-identity (>=1.15.0,<2.0.0)", "azure-storage-blob (>=12.25.1,<13.0.0)", "backoff", "boto3 (==1.36.0)", "cryptography (>=43.0.1,<44.0.0)", "fastapi (>=0.115.5,<0.116.0)", "fastapi-sso (>=0.16.0,<0.17.0)", "gunicorn (>=23.0.0,<24.0.0)", "litellm-enterprise (==0.1.19)", "litellm-proxy-extras (==0.2.17)", "mcp (>=1.10.0,<2.0.0) ; python_version >= \"3.10\"", "orjson (>=3.9.7,<4.0.0)", "polars (>=1.31.0,<2.0.0) ; python_version >= \"3.10\"", "pynacl (>=1.5.0,<2.0.0)", "python-multipart (>=0.0.18,<0.0.19)", "pyyaml (>=6.0.1,<7.0.0)", "rich (==13.7.1)", "rq", "uvicorn (>=0.29.0,<0.30.0)", "uvloop (>=0.21.0,<0.22.0) ; sys_platform != \"win32\"", "websockets (>=13.1.0,<14.0.0)"] +semantic-router = ["semantic-router ; python_version >= \"3.9\""] utils = ["numpydoc"] [[package]] @@ -5053,14 +5056,14 @@ sympy = "*" [[package]] name = "openai" -version = "1.93.2" +version = "1.99.9" description = "The official Python library for the openai API" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "openai-1.93.2-py3-none-any.whl", hash = "sha256:5adbbebd48eae160e6d68efc4c0a4f7cb1318a44c62d9fc626cec229f418eab4"}, - {file = "openai-1.93.2.tar.gz", hash = "sha256:4a7312b426b5e4c98b78dfa1148b5683371882de3ad3d5f7c8e0c74f3cc90778"}, + {file = "openai-1.99.9-py3-none-any.whl", hash = "sha256:9dbcdb425553bae1ac5d947147bebbd630d91bbfc7788394d4c4f3a35682ab3a"}, + {file = "openai-1.99.9.tar.gz", hash = "sha256:f2082d155b1ad22e83247c3de3958eb4255b20ccf4a1de2e6681b6957b554e92"}, ] [package.dependencies] @@ -5074,7 +5077,7 @@ tqdm = ">4" typing-extensions = ">=4.11,<5" [package.extras] -aiohttp = ["aiohttp", "httpx-aiohttp (>=0.1.6)"] +aiohttp = ["aiohttp", "httpx-aiohttp (>=0.1.8)"] datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] realtime = ["websockets (>=13,<16)"] voice-helpers = ["numpy (>=2.0.2)", "sounddevice (>=0.5.1)"] @@ -9972,4 +9975,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.1" python-versions = ">=3.11,<3.14" -content-hash = "d227fed32608a260a4ea178e74bc025c2550e76316285830b0138c3742ddcfa5" +content-hash = "ec3007c59811a15ff8b7116edf839a05e69d7f45ecb4cc7141764b719932d8ba" diff --git a/pyproject.toml b/pyproject.toml index 1d411139..a19a7d68 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,7 +17,7 @@ python-multipart = "^0.0.18" toml = "^0.10.2" jinja2 = "^3.1.2" uvicorn = {extras = ["standard"], version = "^0.24.0.post1"} -litellm = ">=1.73.6" +litellm = ">=1.75.8" playwright = [ {version = ">1.46.0", python = ">=3.12,<3.14"}, {version = "=1.46.0", python = ">=3.11,<3.12"} diff --git a/skyvern/config.py b/skyvern/config.py index ed884b42..4f260eef 100644 --- a/skyvern/config.py +++ b/skyvern/config.py @@ -141,6 +141,7 @@ class Settings(BaseSettings): ENABLE_OPENAI_COMPATIBLE: bool = False # OPENAI OPENAI_API_KEY: str | None = None + GPT5_REASONING_EFFORT: str | None = "minimal" # ANTHROPIC ANTHROPIC_API_KEY: str | None = None ANTHROPIC_CUA_LLM_KEY: str = "ANTHROPIC_CLAUDE3.7_SONNET" diff --git a/skyvern/forge/sdk/api/llm/config_registry.py b/skyvern/forge/sdk/api/llm/config_registry.py index 07cba9de..f354f0df 100644 --- a/skyvern/forge/sdk/api/llm/config_registry.py +++ b/skyvern/forge/sdk/api/llm/config_registry.py @@ -81,6 +81,7 @@ if settings.ENABLE_OPENAI: add_assistant_prefix=False, max_completion_tokens=128000, temperature=None, + reasoning_effort=settings.GPT5_REASONING_EFFORT, ), ) LLMConfigRegistry.register_config( @@ -92,6 +93,7 @@ if settings.ENABLE_OPENAI: add_assistant_prefix=False, max_completion_tokens=128000, temperature=None, + reasoning_effort=settings.GPT5_REASONING_EFFORT, ), ) LLMConfigRegistry.register_config( @@ -103,6 +105,7 @@ if settings.ENABLE_OPENAI: add_assistant_prefix=False, max_completion_tokens=128000, temperature=None, + reasoning_effort=settings.GPT5_REASONING_EFFORT, ), ) LLMConfigRegistry.register_config( @@ -591,6 +594,7 @@ if settings.ENABLE_AZURE_GPT5: add_assistant_prefix=False, max_completion_tokens=128000, temperature=None, + reasoning_effort=settings.GPT5_REASONING_EFFORT, ), ) @@ -615,6 +619,7 @@ if settings.ENABLE_AZURE_GPT5_MINI: add_assistant_prefix=False, max_completion_tokens=128000, temperature=None, + reasoning_effort=settings.GPT5_REASONING_EFFORT, ), ) @@ -639,6 +644,7 @@ if settings.ENABLE_AZURE_GPT5_NANO: add_assistant_prefix=False, max_completion_tokens=128000, temperature=None, + reasoning_effort=settings.GPT5_REASONING_EFFORT, ), )