feat: add new GPT-5.1 models to configuration files and update model selection logic in OpenAI provider

This commit is contained in:
Bjorn Melin
2025-11-14 01:35:11 -07:00
parent dbbfef292c
commit 8e9aa2304d
3 changed files with 178 additions and 6 deletions

View File

@@ -232,6 +232,81 @@
"supports_temperature": true,
"max_image_size_mb": 20.0,
"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"
}
]
}

View File

@@ -366,6 +366,72 @@
"description": "GPT-5 nano (400K context, 128K output) - Fastest, cheapest version of GPT-5 for summarization and classification tasks",
"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",
"aliases": [

View File

@@ -115,20 +115,51 @@ class OpenAIModelProvider(RegistryBackedProviderMixin, OpenAICompatibleProvider)
if category == ToolModelCategory.EXTENDED_REASONING:
# Prefer models with extended thinking support
# GPT-5-Codex first for coding tasks
preferred = find_first(["gpt-5-codex", "gpt-5-pro", "o3", "o3-pro", "gpt-5"])
# GPT-5.1 Codex first for coding tasks
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]
elif category == ToolModelCategory.FAST_RESPONSE:
# Prefer fast, cost-efficient models
# GPT-5 models for speed, GPT-5-Codex after (premium pricing but cached)
preferred = find_first(["gpt-5", "gpt-5-mini", "gpt-5-codex", "o4-mini", "o3-mini"])
# GPT-5.1 models for speed, GPT-5.1-Codex after (premium pricing but cached)
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]
else: # BALANCED or default
# Prefer balanced performance/cost models
# Include GPT-5-Codex for coding workflows
preferred = find_first(["gpt-5", "gpt-5-codex", "gpt-5-pro", "gpt-5-mini", "o4-mini", "o3-mini"])
# Include GPT-5.1 family for latest capabilities
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]