GPT 5.2 Support, update models (#4287)
Co-authored-by: Suchintan Singh <suchintan@skyvern.com>
This commit is contained in:
@@ -25,6 +25,14 @@ const constants = {
|
||||
SkyvernOptimized: "Skyvern Optimized",
|
||||
} as const;
|
||||
|
||||
const deprecatedModelNames = new Set<string>([
|
||||
"gemini-2.5-flash-lite",
|
||||
"azure/gpt-4.1",
|
||||
"azure/gpt-5",
|
||||
"azure/o3",
|
||||
"claude-haiku-4-5-20251001",
|
||||
]);
|
||||
|
||||
function ModelSelector({
|
||||
clearable = true,
|
||||
value,
|
||||
@@ -41,16 +49,31 @@ function ModelSelector({
|
||||
},
|
||||
});
|
||||
|
||||
const models = availableModels?.models ?? {};
|
||||
const reverseMap = Object.entries(models).reduce(
|
||||
(acc, [key, value]) => {
|
||||
acc[value] = key;
|
||||
const rawModels = availableModels?.models ?? {};
|
||||
const models = Object.fromEntries(
|
||||
Object.entries(rawModels).map(([modelName, label]) => [
|
||||
modelName,
|
||||
deprecatedModelNames.has(modelName) ? `${label} (deprecated)` : label,
|
||||
]),
|
||||
);
|
||||
|
||||
const visibleEntries = Object.entries(models).filter(
|
||||
([modelName]) =>
|
||||
!deprecatedModelNames.has(modelName) || value?.model_name === modelName,
|
||||
);
|
||||
|
||||
const reverseMap = visibleEntries.reduce(
|
||||
(acc, [modelName, label]) => {
|
||||
acc[label] = modelName;
|
||||
return acc;
|
||||
},
|
||||
{} as Record<string, string>,
|
||||
);
|
||||
const labels = Object.keys(reverseMap);
|
||||
const chosen = value ? models[value.model_name] : constants.SkyvernOptimized;
|
||||
|
||||
const chosen = value
|
||||
? models[value.model_name] ?? constants.SkyvernOptimized
|
||||
: constants.SkyvernOptimized;
|
||||
const choices = [constants.SkyvernOptimized, ...labels];
|
||||
|
||||
return (
|
||||
|
||||
@@ -288,6 +288,12 @@ class Settings(BaseSettings):
|
||||
AZURE_GPT5_1_API_KEY: str | None = None
|
||||
AZURE_GPT5_1_API_BASE: str | None = None
|
||||
AZURE_GPT5_1_API_VERSION: str = "2025-04-01-preview"
|
||||
# AZURE gpt-5.2
|
||||
ENABLE_AZURE_GPT5_2: bool = False
|
||||
AZURE_GPT5_2_DEPLOYMENT: str = "gpt-5.2"
|
||||
AZURE_GPT5_2_API_KEY: str | None = None
|
||||
AZURE_GPT5_2_API_BASE: str | None = None
|
||||
AZURE_GPT5_2_API_VERSION: str = "2025-04-01-preview"
|
||||
|
||||
# GEMINI
|
||||
GEMINI_API_KEY: str | None = None
|
||||
@@ -432,6 +438,7 @@ class Settings(BaseSettings):
|
||||
},
|
||||
"azure/gpt-4.1": {"llm_key": "AZURE_OPENAI_GPT4_1", "label": "GPT 4.1"},
|
||||
"azure/gpt-5": {"llm_key": "AZURE_OPENAI_GPT5", "label": "GPT 5"},
|
||||
"azure/gpt-5.2": {"llm_key": "AZURE_OPENAI_GPT5_2", "label": "GPT 5.2"},
|
||||
"azure/o3": {"llm_key": "AZURE_OPENAI_O3", "label": "GPT O3"},
|
||||
"us.anthropic.claude-opus-4-20250514-v1:0": {
|
||||
"llm_key": "BEDROCK_ANTHROPIC_CLAUDE4_OPUS_INFERENCE_PROFILE",
|
||||
@@ -469,6 +476,7 @@ class Settings(BaseSettings):
|
||||
},
|
||||
"azure/gpt-4.1": {"llm_key": "AZURE_OPENAI_GPT4_1", "label": "GPT 4.1"},
|
||||
"azure/gpt-5": {"llm_key": "AZURE_OPENAI_GPT5", "label": "GPT 5"},
|
||||
"azure/gpt-5.2": {"llm_key": "AZURE_OPENAI_GPT5_2", "label": "GPT 5.2"},
|
||||
"azure/o3": {"llm_key": "AZURE_OPENAI_O3", "label": "GPT O3"},
|
||||
"us.anthropic.claude-opus-4-20250514-v1:0": {
|
||||
"llm_key": "BEDROCK_ANTHROPIC_CLAUDE4_OPUS_INFERENCE_PROFILE",
|
||||
|
||||
@@ -120,6 +120,18 @@ if settings.ENABLE_OPENAI:
|
||||
reasoning_effort=settings.GPT5_REASONING_EFFORT,
|
||||
),
|
||||
)
|
||||
LLMConfigRegistry.register_config(
|
||||
"OPENAI_GPT5_2",
|
||||
LLMConfig(
|
||||
"gpt-5.2",
|
||||
["OPENAI_API_KEY"],
|
||||
supports_vision=True,
|
||||
add_assistant_prefix=False,
|
||||
max_completion_tokens=128000,
|
||||
temperature=1, # GPT-5 only supports temperature=1
|
||||
reasoning_effort=settings.GPT5_REASONING_EFFORT,
|
||||
),
|
||||
)
|
||||
LLMConfigRegistry.register_config(
|
||||
"OPENAI_GPT4_TURBO",
|
||||
LLMConfig(
|
||||
@@ -698,6 +710,31 @@ if settings.ENABLE_AZURE_GPT5_1:
|
||||
),
|
||||
)
|
||||
|
||||
if settings.ENABLE_AZURE_GPT5_2:
|
||||
LLMConfigRegistry.register_config(
|
||||
"AZURE_OPENAI_GPT5_2",
|
||||
LLMConfig(
|
||||
f"azure/{settings.AZURE_GPT5_2_DEPLOYMENT}",
|
||||
[
|
||||
"AZURE_GPT5_2_DEPLOYMENT",
|
||||
"AZURE_GPT5_2_API_KEY",
|
||||
"AZURE_GPT5_2_API_BASE",
|
||||
"AZURE_GPT5_2_API_VERSION",
|
||||
],
|
||||
litellm_params=LiteLLMParams(
|
||||
api_base=settings.AZURE_GPT5_2_API_BASE,
|
||||
api_key=settings.AZURE_GPT5_2_API_KEY,
|
||||
api_version=settings.AZURE_GPT5_2_API_VERSION,
|
||||
model_info={"model_name": "azure/gpt-5.2"},
|
||||
),
|
||||
supports_vision=True,
|
||||
add_assistant_prefix=False,
|
||||
max_completion_tokens=128000,
|
||||
temperature=1, # GPT-5 only supports temperature=1
|
||||
reasoning_effort=settings.GPT5_REASONING_EFFORT,
|
||||
),
|
||||
)
|
||||
|
||||
if settings.ENABLE_AZURE_O4_MINI:
|
||||
LLMConfigRegistry.register_config(
|
||||
"AZURE_OPENAI_O4_MINI",
|
||||
|
||||
Reference in New Issue
Block a user