[Bug]: Fix Can't set reasoning_effort for DeepSeek-V3.1 on DeepInfra by default (#14053)

* fix DeepInfraConfig

* track supports reasoning

* fix: get_supported_openai_params

* test_deepseek_supported_openai_params
This commit is contained in:
Ishaan Jaff 2025-08-29 13:15:43 -07:00 • committed by GitHub
parent e74f1b6b62
commit 607f425cc6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 78 additions and 24 deletions

View file

@ -12,6 +12,9 @@ class DeepInfraConfig(OpenAIGPTConfig):
The class `DeepInfra` provides configuration for the DeepInfra's Chat Completions API interface. Below are the parameters:
"""
@property
def custom_llm_provider(self) -> Optional[str]:
return "deepinfra"
frequency_penalty: Optional[int] = None
function_call: Optional[Union[str, dict]] = None
@ -53,7 +56,7 @@ class DeepInfraConfig(OpenAIGPTConfig):
return super().get_config()
def get_supported_openai_params(self, model: str):
return [
supported_openai_params = [
"stream",
"frequency_penalty",
"function_call",
@ -68,9 +71,16 @@ class DeepInfraConfig(OpenAIGPTConfig):
"top_p",
"response_format",
"tools",
"tool_choice",
"tool_choice"
]
if litellm.supports_reasoning(
model=model,
custom_llm_provider=self.custom_llm_provider,
):
supported_openai_params.append("reasoning_effort")
return supported_openai_params
def map_openai_params(
self,
non_default_params: dict,

View file

@ -15668,7 +15668,8 @@
"output_cost_per_token": 2.18e-06,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": false
"supports_tool_choice": false,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-R1": {
"max_tokens": 163840,
@ -15678,7 +15679,8 @@
"output_cost_per_token": 2.15e-06,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true
"supports_tool_choice": true,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-R1-0528": {
"max_tokens": 163840,
@ -15688,7 +15690,8 @@
"output_cost_per_token": 2.15e-06,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true
"supports_tool_choice": true,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-R1-0528-Turbo": {
"max_tokens": 32768,
@ -15698,7 +15701,8 @@
"output_cost_per_token": 3e-06,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true
"supports_tool_choice": true,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-R1-Distill-Llama-70B": {
"max_tokens": 131072,
@ -15708,7 +15712,8 @@
"output_cost_per_token": 4e-07,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": false
"supports_tool_choice": false,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B": {
"max_tokens": 131072,
@ -15718,7 +15723,8 @@
"output_cost_per_token": 1.5e-07,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true
"supports_tool_choice": true,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-R1-Turbo": {
"max_tokens": 163840,
@ -15728,7 +15734,8 @@
"output_cost_per_token": 3e-06,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true
"supports_tool_choice": true,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-V3": {
"max_tokens": 163840,
@ -15738,7 +15745,8 @@
"output_cost_per_token": 8.9e-07,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true
"supports_tool_choice": true,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-V3-0324": {
"max_tokens": 163840,
@ -15748,7 +15756,8 @@
"output_cost_per_token": 8.8e-07,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true
"supports_tool_choice": true,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-V3-0324-Turbo": {
"max_tokens": 32768,
@ -15758,7 +15767,8 @@
"output_cost_per_token": 3e-06,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true
"supports_tool_choice": true,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-V3.1": {
"max_tokens": 163840,
@ -15768,7 +15778,8 @@
"output_cost_per_token": 1e-06,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": false
"supports_tool_choice": false,
"supports_reasoning": true
},
"deepinfra/google/codegemma-7b-it": {
"max_tokens": 8192,

View file

@ -15668,7 +15668,8 @@
"output_cost_per_token": 2.18e-06,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": false
"supports_tool_choice": false,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-R1": {
"max_tokens": 163840,
@ -15678,7 +15679,8 @@
"output_cost_per_token": 2.15e-06,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true
"supports_tool_choice": true,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-R1-0528": {
"max_tokens": 163840,
@ -15688,7 +15690,8 @@
"output_cost_per_token": 2.15e-06,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true
"supports_tool_choice": true,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-R1-0528-Turbo": {
"max_tokens": 32768,
@ -15698,7 +15701,8 @@
"output_cost_per_token": 3e-06,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true
"supports_tool_choice": true,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-R1-Distill-Llama-70B": {
"max_tokens": 131072,
@ -15708,7 +15712,8 @@
"output_cost_per_token": 4e-07,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": false
"supports_tool_choice": false,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B": {
"max_tokens": 131072,
@ -15718,7 +15723,8 @@
"output_cost_per_token": 1.5e-07,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true
"supports_tool_choice": true,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-R1-Turbo": {
"max_tokens": 163840,
@ -15728,7 +15734,8 @@
"output_cost_per_token": 3e-06,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true
"supports_tool_choice": true,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-V3": {
"max_tokens": 163840,
@ -15738,7 +15745,8 @@
"output_cost_per_token": 8.9e-07,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true
"supports_tool_choice": true,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-V3-0324": {
"max_tokens": 163840,
@ -15748,7 +15756,8 @@
"output_cost_per_token": 8.8e-07,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true
"supports_tool_choice": true,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-V3-0324-Turbo": {
"max_tokens": 32768,
@ -15758,7 +15767,8 @@
"output_cost_per_token": 3e-06,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": true
"supports_tool_choice": true,
"supports_reasoning": true
},
"deepinfra/deepseek-ai/DeepSeek-V3.1": {
"max_tokens": 163840,
@ -15768,7 +15778,8 @@
"output_cost_per_token": 1e-06,
"litellm_provider": "deepinfra",
"mode": "chat",
"supports_tool_choice": false
"supports_tool_choice": false,
"supports_reasoning": true
},
"deepinfra/google/codegemma-7b-it": {
"max_tokens": 8192,

View file

@ -0,0 +1,22 @@
import asyncio
import json
import os
import sys
from unittest.mock import AsyncMock, MagicMock, patch
import pytest
# Add litellm to path
sys.path.insert(0, os.path.abspath("../../../.."))
import litellm
def test_deepseek_supported_openai_params():
"""
Test "reasoning_effort" is an openai param supported for the DeepSeek model on deepinfra
"""
from litellm.llms.deepinfra.chat.transformation import DeepInfraConfig
supported_openai_params = DeepInfraConfig().get_supported_openai_params(model="deepinfra/deepseek-ai/DeepSeek-V3.1")
print(supported_openai_params)
assert "reasoning_effort" in supported_openai_params