fix: Support GPT-5.1 reasoning.effort='none' in proxy (#16745)

* fix: Add support for GPT-5.1 reasoning.effort='none' parameter

- Override Reasoning type to include 'none' effort value
- Maintains compatibility with semantic-router (requires openai <2.0.0)
- GPT-5.1 defaults to reasoning.effort='none' as of OpenAI SDK 2.8.0
- Override can be removed once semantic-router supports OpenAI SDK 2.x

Fixes #16741

* feat: Update to OpenAI SDK 2.8+ and Python 3.9+

- Update minimum Python version from 3.8.1 to 3.9 (3.8 EOL Oct 2024)
- Update OpenAI SDK requirement from >=1.99.5 to >=2.8.0
- Update semantic-router to >=0.1.12 with Python >=3.9,<3.14 constraint
- Update resend to >=0.8.0 (allows 2.x versions)
- Revert custom Reasoning TypedDict - now using native type from OpenAI SDK 2.8+

OpenAI SDK 2.8.0 natively supports reasoning.effort='none' for GPT-5.1,
eliminating the need for our custom type override.

* chore: Update poetry.lock with OpenAI SDK 2.8.1 and dependencies
This commit is contained in:
Cesar Garcia 2025-11-19 01:06:50 -03:00 committed by GitHub
parent 9e93d65ee2
commit 4167a64853
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 853 additions and 481 deletions

1326
poetry.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -19,10 +19,10 @@ documentation = "https://docs.litellm.ai"
Documentation = "https://docs.litellm.ai"
[tool.poetry.dependencies]
python = ">=3.8.1,<4.0, !=3.9.7"
python = ">=3.9,<4.0"
fastuuid = ">=0.13.0"
httpx = ">=0.23.0"
openai = ">=1.99.5"
openai = ">=2.8.0"
python-dotenv = ">=0.2.0"
tiktoken = ">=0.7.0"
importlib-metadata = ">=6.8.0"
@ -53,7 +53,7 @@ azure-keyvault-secrets = {version = "^4.8.0", optional = true}
azure-storage-blob = {version="^12.25.1", optional=true}
google-cloud-kms = {version = "^2.21.3", optional = true}
google-cloud-iam = {version = "^2.19.1", optional = true}
resend = {version = "^0.8.0", optional = true}
resend = {version = ">=0.8.0", optional = true}
pynacl = {version = "^1.5.0", optional = true}
websockets = {version = "^13.1.0", optional = true}
boto3 = {version = "1.36.0", optional = true}
@ -64,7 +64,7 @@ rich = {version = "13.7.1", optional = true}
litellm-enterprise = {version = "0.1.21", optional = true}
diskcache = {version = "^5.6.1", optional = true}
polars = {version = "^1.31.0", optional = true, python = ">=3.10"}
semantic-router = {version = "*", optional = true, python = ">=3.9"}
semantic-router = {version = ">=0.1.12", optional = true, python = ">=3.9,<3.14"}
mlflow = {version = ">3.1.4", optional = true, python = ">=3.10"}
soundfile = {version = "^0.12.1", optional = true}