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",
|
SkyvernOptimized: "Skyvern Optimized",
|
||||||
} as const;
|
} 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({
|
function ModelSelector({
|
||||||
clearable = true,
|
clearable = true,
|
||||||
value,
|
value,
|
||||||
@@ -41,16 +49,31 @@ function ModelSelector({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const models = availableModels?.models ?? {};
|
const rawModels = availableModels?.models ?? {};
|
||||||
const reverseMap = Object.entries(models).reduce(
|
const models = Object.fromEntries(
|
||||||
(acc, [key, value]) => {
|
Object.entries(rawModels).map(([modelName, label]) => [
|
||||||
acc[value] = key;
|
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;
|
return acc;
|
||||||
},
|
},
|
||||||
{} as Record<string, string>,
|
{} as Record<string, string>,
|
||||||
);
|
);
|
||||||
const labels = Object.keys(reverseMap);
|
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];
|
const choices = [constants.SkyvernOptimized, ...labels];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -288,6 +288,12 @@ class Settings(BaseSettings):
|
|||||||
AZURE_GPT5_1_API_KEY: str | None = None
|
AZURE_GPT5_1_API_KEY: str | None = None
|
||||||
AZURE_GPT5_1_API_BASE: str | None = None
|
AZURE_GPT5_1_API_BASE: str | None = None
|
||||||
AZURE_GPT5_1_API_VERSION: str = "2025-04-01-preview"
|
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
|
||||||
GEMINI_API_KEY: str | None = None
|
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-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": {"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"},
|
"azure/o3": {"llm_key": "AZURE_OPENAI_O3", "label": "GPT O3"},
|
||||||
"us.anthropic.claude-opus-4-20250514-v1:0": {
|
"us.anthropic.claude-opus-4-20250514-v1:0": {
|
||||||
"llm_key": "BEDROCK_ANTHROPIC_CLAUDE4_OPUS_INFERENCE_PROFILE",
|
"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-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": {"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"},
|
"azure/o3": {"llm_key": "AZURE_OPENAI_O3", "label": "GPT O3"},
|
||||||
"us.anthropic.claude-opus-4-20250514-v1:0": {
|
"us.anthropic.claude-opus-4-20250514-v1:0": {
|
||||||
"llm_key": "BEDROCK_ANTHROPIC_CLAUDE4_OPUS_INFERENCE_PROFILE",
|
"llm_key": "BEDROCK_ANTHROPIC_CLAUDE4_OPUS_INFERENCE_PROFILE",
|
||||||
|
|||||||
@@ -120,6 +120,18 @@ if settings.ENABLE_OPENAI:
|
|||||||
reasoning_effort=settings.GPT5_REASONING_EFFORT,
|
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(
|
LLMConfigRegistry.register_config(
|
||||||
"OPENAI_GPT4_TURBO",
|
"OPENAI_GPT4_TURBO",
|
||||||
LLMConfig(
|
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:
|
if settings.ENABLE_AZURE_O4_MINI:
|
||||||
LLMConfigRegistry.register_config(
|
LLMConfigRegistry.register_config(
|
||||||
"AZURE_OPENAI_O4_MINI",
|
"AZURE_OPENAI_O4_MINI",
|
||||||
|
|||||||
Reference in New Issue
Block a user