feat: add new GPT-5.1 models to configuration files and update model selection logic in OpenAI provider
This commit is contained in:
@@ -232,6 +232,81 @@
|
|||||||
"supports_temperature": true,
|
"supports_temperature": true,
|
||||||
"max_image_size_mb": 20.0,
|
"max_image_size_mb": 20.0,
|
||||||
"use_openai_response_api": true
|
"use_openai_response_api": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_name": "gpt-5.1",
|
||||||
|
"friendly_name": "OpenAI (GPT-5.1)",
|
||||||
|
"aliases": [
|
||||||
|
"gpt5.1",
|
||||||
|
"gpt-5.1",
|
||||||
|
"5.1"
|
||||||
|
],
|
||||||
|
"intelligence_score": 18,
|
||||||
|
"description": "GPT-5.1 (400K context, 128K output) - Flagship reasoning model with configurable thinking effort and vision support.",
|
||||||
|
"context_window": 400000,
|
||||||
|
"max_output_tokens": 128000,
|
||||||
|
"supports_extended_thinking": true,
|
||||||
|
"supports_system_prompts": true,
|
||||||
|
"supports_streaming": true,
|
||||||
|
"supports_function_calling": true,
|
||||||
|
"supports_json_mode": true,
|
||||||
|
"supports_images": true,
|
||||||
|
"supports_temperature": true,
|
||||||
|
"max_image_size_mb": 20.0,
|
||||||
|
"default_reasoning_effort": "medium",
|
||||||
|
"allow_code_generation": true,
|
||||||
|
"temperature_constraint": "fixed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_name": "gpt-5.1-codex",
|
||||||
|
"friendly_name": "OpenAI (GPT-5.1 Codex)",
|
||||||
|
"aliases": [
|
||||||
|
"gpt5.1-codex",
|
||||||
|
"gpt-5.1-codex",
|
||||||
|
"gpt5.1code",
|
||||||
|
"gpt-5.1-code",
|
||||||
|
"codex-5.1"
|
||||||
|
],
|
||||||
|
"intelligence_score": 19,
|
||||||
|
"description": "GPT-5.1 Codex (400K context, 128K output) - Agentic coding specialization available through the Responses API.",
|
||||||
|
"context_window": 400000,
|
||||||
|
"max_output_tokens": 128000,
|
||||||
|
"supports_extended_thinking": true,
|
||||||
|
"supports_system_prompts": true,
|
||||||
|
"supports_streaming": false,
|
||||||
|
"supports_function_calling": true,
|
||||||
|
"supports_json_mode": true,
|
||||||
|
"supports_images": true,
|
||||||
|
"supports_temperature": true,
|
||||||
|
"max_image_size_mb": 20.0,
|
||||||
|
"use_openai_response_api": true,
|
||||||
|
"default_reasoning_effort": "high",
|
||||||
|
"allow_code_generation": true,
|
||||||
|
"temperature_constraint": "fixed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_name": "gpt-5.1-codex-mini",
|
||||||
|
"friendly_name": "OpenAI (GPT-5.1 Codex mini)",
|
||||||
|
"aliases": [
|
||||||
|
"gpt5.1-codex-mini",
|
||||||
|
"gpt-5.1-codex-mini",
|
||||||
|
"codex-mini",
|
||||||
|
"5.1-codex-mini"
|
||||||
|
],
|
||||||
|
"intelligence_score": 16,
|
||||||
|
"description": "GPT-5.1 Codex mini (400K context, 128K output) - Cost-efficient Codex variant with streaming support.",
|
||||||
|
"context_window": 400000,
|
||||||
|
"max_output_tokens": 128000,
|
||||||
|
"supports_extended_thinking": true,
|
||||||
|
"supports_system_prompts": true,
|
||||||
|
"supports_streaming": true,
|
||||||
|
"supports_function_calling": true,
|
||||||
|
"supports_json_mode": true,
|
||||||
|
"supports_images": true,
|
||||||
|
"supports_temperature": true,
|
||||||
|
"max_image_size_mb": 20.0,
|
||||||
|
"allow_code_generation": true,
|
||||||
|
"temperature_constraint": "fixed"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -366,6 +366,72 @@
|
|||||||
"description": "GPT-5 nano (400K context, 128K output) - Fastest, cheapest version of GPT-5 for summarization and classification tasks",
|
"description": "GPT-5 nano (400K context, 128K output) - Fastest, cheapest version of GPT-5 for summarization and classification tasks",
|
||||||
"intelligence_score": 8
|
"intelligence_score": 8
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model_name": "openai/gpt-5.1",
|
||||||
|
"aliases": [
|
||||||
|
"gpt5.1",
|
||||||
|
"gpt-5.1",
|
||||||
|
"5.1"
|
||||||
|
],
|
||||||
|
"context_window": 400000,
|
||||||
|
"max_output_tokens": 128000,
|
||||||
|
"supports_extended_thinking": true,
|
||||||
|
"supports_json_mode": true,
|
||||||
|
"supports_function_calling": true,
|
||||||
|
"supports_images": true,
|
||||||
|
"max_image_size_mb": 20.0,
|
||||||
|
"supports_temperature": true,
|
||||||
|
"temperature_constraint": "fixed",
|
||||||
|
"default_reasoning_effort": "medium",
|
||||||
|
"allow_code_generation": true,
|
||||||
|
"description": "GPT-5.1 (400K context, 128K output) - Flagship reasoning model with configurable thinking effort and vision support",
|
||||||
|
"intelligence_score": 18
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_name": "openai/gpt-5.1-codex",
|
||||||
|
"aliases": [
|
||||||
|
"gpt5.1-codex",
|
||||||
|
"gpt-5.1-codex",
|
||||||
|
"gpt5.1code",
|
||||||
|
"gpt-5.1-code",
|
||||||
|
"codex-5.1"
|
||||||
|
],
|
||||||
|
"context_window": 400000,
|
||||||
|
"max_output_tokens": 128000,
|
||||||
|
"supports_extended_thinking": true,
|
||||||
|
"supports_json_mode": true,
|
||||||
|
"supports_function_calling": true,
|
||||||
|
"supports_images": true,
|
||||||
|
"max_image_size_mb": 20.0,
|
||||||
|
"supports_temperature": true,
|
||||||
|
"temperature_constraint": "fixed",
|
||||||
|
"use_openai_response_api": true,
|
||||||
|
"default_reasoning_effort": "high",
|
||||||
|
"allow_code_generation": true,
|
||||||
|
"description": "GPT-5.1 Codex (400K context, 128K output) - Agentic coding specialization available through the Responses API",
|
||||||
|
"intelligence_score": 19
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_name": "openai/gpt-5.1-codex-mini",
|
||||||
|
"aliases": [
|
||||||
|
"gpt5.1-codex-mini",
|
||||||
|
"gpt-5.1-codex-mini",
|
||||||
|
"codex-mini",
|
||||||
|
"5.1-codex-mini"
|
||||||
|
],
|
||||||
|
"context_window": 400000,
|
||||||
|
"max_output_tokens": 128000,
|
||||||
|
"supports_extended_thinking": true,
|
||||||
|
"supports_json_mode": true,
|
||||||
|
"supports_function_calling": true,
|
||||||
|
"supports_images": true,
|
||||||
|
"max_image_size_mb": 20.0,
|
||||||
|
"supports_temperature": true,
|
||||||
|
"temperature_constraint": "fixed",
|
||||||
|
"allow_code_generation": true,
|
||||||
|
"description": "GPT-5.1 Codex mini (400K context, 128K output) - Cost-efficient Codex variant with streaming support",
|
||||||
|
"intelligence_score": 16
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model_name": "x-ai/grok-4",
|
"model_name": "x-ai/grok-4",
|
||||||
"aliases": [
|
"aliases": [
|
||||||
|
|||||||
@@ -115,20 +115,51 @@ class OpenAIModelProvider(RegistryBackedProviderMixin, OpenAICompatibleProvider)
|
|||||||
|
|
||||||
if category == ToolModelCategory.EXTENDED_REASONING:
|
if category == ToolModelCategory.EXTENDED_REASONING:
|
||||||
# Prefer models with extended thinking support
|
# Prefer models with extended thinking support
|
||||||
# GPT-5-Codex first for coding tasks
|
# GPT-5.1 Codex first for coding tasks
|
||||||
preferred = find_first(["gpt-5-codex", "gpt-5-pro", "o3", "o3-pro", "gpt-5"])
|
preferred = find_first(
|
||||||
|
[
|
||||||
|
"gpt-5.1-codex",
|
||||||
|
"gpt-5.1",
|
||||||
|
"gpt-5-codex",
|
||||||
|
"gpt-5-pro",
|
||||||
|
"o3-pro",
|
||||||
|
"gpt-5",
|
||||||
|
"o3",
|
||||||
|
]
|
||||||
|
)
|
||||||
return preferred if preferred else allowed_models[0]
|
return preferred if preferred else allowed_models[0]
|
||||||
|
|
||||||
elif category == ToolModelCategory.FAST_RESPONSE:
|
elif category == ToolModelCategory.FAST_RESPONSE:
|
||||||
# Prefer fast, cost-efficient models
|
# Prefer fast, cost-efficient models
|
||||||
# GPT-5 models for speed, GPT-5-Codex after (premium pricing but cached)
|
# GPT-5.1 models for speed, GPT-5.1-Codex after (premium pricing but cached)
|
||||||
preferred = find_first(["gpt-5", "gpt-5-mini", "gpt-5-codex", "o4-mini", "o3-mini"])
|
preferred = find_first(
|
||||||
|
[
|
||||||
|
"gpt-5.1",
|
||||||
|
"gpt-5.1-codex-mini",
|
||||||
|
"gpt-5",
|
||||||
|
"gpt-5-mini",
|
||||||
|
"gpt-5-codex",
|
||||||
|
"o4-mini",
|
||||||
|
"o3-mini",
|
||||||
|
]
|
||||||
|
)
|
||||||
return preferred if preferred else allowed_models[0]
|
return preferred if preferred else allowed_models[0]
|
||||||
|
|
||||||
else: # BALANCED or default
|
else: # BALANCED or default
|
||||||
# Prefer balanced performance/cost models
|
# Prefer balanced performance/cost models
|
||||||
# Include GPT-5-Codex for coding workflows
|
# Include GPT-5.1 family for latest capabilities
|
||||||
preferred = find_first(["gpt-5", "gpt-5-codex", "gpt-5-pro", "gpt-5-mini", "o4-mini", "o3-mini"])
|
preferred = find_first(
|
||||||
|
[
|
||||||
|
"gpt-5.1",
|
||||||
|
"gpt-5.1-codex",
|
||||||
|
"gpt-5",
|
||||||
|
"gpt-5-codex",
|
||||||
|
"gpt-5-pro",
|
||||||
|
"gpt-5-mini",
|
||||||
|
"o4-mini",
|
||||||
|
"o3-mini",
|
||||||
|
]
|
||||||
|
)
|
||||||
return preferred if preferred else allowed_models[0]
|
return preferred if preferred else allowed_models[0]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user