feat: OpenAI/compatible models (such as Azure OpenAI) can declare if they use the response API instead via use_openai_responses_api
This commit is contained in:
@@ -597,8 +597,16 @@ class OpenAICompatibleProvider(ModelProvider):
|
||||
completion_params[key] = value
|
||||
|
||||
# Check if this model needs the Responses API endpoint
|
||||
# Both o3-pro and gpt-5-codex use the new Responses API
|
||||
if resolved_model in ["o3-pro", "gpt-5-codex"]:
|
||||
# Prefer capability metadata; fall back to static map when capabilities unavailable
|
||||
use_responses_api = False
|
||||
if capabilities is not None:
|
||||
use_responses_api = getattr(capabilities, "use_openai_response_api", False)
|
||||
else:
|
||||
static_capabilities = self.get_all_model_capabilities().get(resolved_model)
|
||||
if static_capabilities is not None:
|
||||
use_responses_api = getattr(static_capabilities, "use_openai_response_api", False)
|
||||
|
||||
if use_responses_api:
|
||||
# These models require the /v1/responses endpoint for stateful context
|
||||
# If it fails, we should not fall back to chat/completions
|
||||
return self._generate_with_responses_endpoint(
|
||||
|
||||
@@ -135,6 +135,7 @@ class OpenAIModelProvider(OpenAICompatibleProvider):
|
||||
temperature_constraint=TemperatureConstraint.create("fixed"),
|
||||
description="Professional-grade reasoning (200K context) - EXTREMELY EXPENSIVE: Only for the most complex problems requiring universe-scale complexity analysis OR when the user explicitly asks for this model. Use sparingly for critical architectural decisions or exceptionally complex debugging that other models cannot handle.",
|
||||
aliases=["o3pro"],
|
||||
use_openai_response_api=True,
|
||||
),
|
||||
"o4-mini": ModelCapabilities(
|
||||
provider=ProviderType.OPENAI,
|
||||
@@ -191,6 +192,7 @@ class OpenAIModelProvider(OpenAICompatibleProvider):
|
||||
temperature_constraint=TemperatureConstraint.create("range"),
|
||||
description="GPT-5 Codex (400K context) Specialized for coding, refactoring, and software architecture.",
|
||||
aliases=["gpt5-codex", "codex", "gpt-5-code", "gpt5-code"],
|
||||
use_openai_response_api=True,
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ class ModelCapabilities:
|
||||
supports_images: bool = False
|
||||
supports_json_mode: bool = False
|
||||
supports_temperature: bool = True
|
||||
use_openai_response_api: bool = False
|
||||
|
||||
# Additional attributes
|
||||
max_image_size_mb: float = 0.0
|
||||
|
||||
Reference in New Issue
Block a user