Use direct API configs for OSS self-hosted users (#4721)

This commit is contained in:
pedrohsdb
2026-02-12 13:19:31 -08:00
committed by GitHub
parent 1149138c7b
commit 17c1350259

View File

@@ -442,78 +442,63 @@ class Settings(BaseSettings):
Keys are model names available to blocks in the frontend. These map to key names
in LLMConfigRegistry._configs.
"""
mapping: dict[str, dict[str, str]] = {
"gemini-2.5-pro-preview-05-06": {"llm_key": "VERTEX_GEMINI_2.5_PRO", "label": "Gemini 2.5 Pro"},
"gemini-2.5-flash": {
"llm_key": "VERTEX_GEMINI_2.5_FLASH",
"label": "Gemini 2.5 Flash",
},
"gemini-3-pro-preview": {"llm_key": "VERTEX_GEMINI_3.0_PRO", "label": "Gemini 3 Pro"},
"gemini-3.0-flash": {"llm_key": "VERTEX_GEMINI_3.0_FLASH", "label": "Gemini 3 Flash"},
"gemini-2.5-flash-lite": {
"llm_key": "VERTEX_GEMINI_2.5_FLASH_LITE",
"label": "Gemini 2.5 Flash Lite",
},
}
if self.is_cloud_environment():
return {
"gemini-2.5-pro-preview-05-06": {"llm_key": "VERTEX_GEMINI_2.5_PRO", "label": "Gemini 2.5 Pro"},
"gemini-2.5-flash": {
"llm_key": "VERTEX_GEMINI_2.5_FLASH",
"label": "Gemini 2.5 Flash",
},
"gemini-3-pro-preview": {"llm_key": "VERTEX_GEMINI_3.0_PRO", "label": "Gemini 3 Pro"},
"gemini-3.0-flash": {"llm_key": "VERTEX_GEMINI_3.0_FLASH", "label": "Gemini 3 Flash"},
"gemini-2.5-flash-lite": {
"llm_key": "VERTEX_GEMINI_2.5_FLASH_LITE",
"label": "Gemini 2.5 Flash Lite",
},
"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-mini": {"llm_key": "AZURE_OPENAI_GPT5_MINI", "label": "GPT 5 Mini"},
"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",
"label": "Anthropic Claude 4 Opus",
},
"us.anthropic.claude-sonnet-4-20250514-v1:0": {
"llm_key": "BEDROCK_ANTHROPIC_CLAUDE4_SONNET_INFERENCE_PROFILE",
"label": "Anthropic Claude 4 Sonnet",
},
"claude-haiku-4-5-20251001": {
"llm_key": "ANTHROPIC_CLAUDE4.5_HAIKU",
"label": "Anthropic Claude 4.5 Haiku",
},
# "claude-sonnet-4-20250514": {
# "llm_key": "ANTHROPIC_CLAUDE4_SONNET",
# "label": "Anthropic Claude 4 Sonnet",
# },
# "claude-opus-4-20250514": {
# "llm_key": "ANTHROPIC_CLAUDE4_OPUS",
# "label": "Anthropic Claude 4 Opus",
# },
# GPT models: prefer Azure when enabled, fall back to OpenAI
gpt_models = [
("azure/gpt-4.1", self.ENABLE_AZURE_GPT4_1, "AZURE_OPENAI_GPT4_1", "OPENAI_GPT4_1", "GPT 4.1"),
("azure/gpt-5", self.ENABLE_AZURE_GPT5, "AZURE_OPENAI_GPT5", "OPENAI_GPT5", "GPT 5"),
(
"azure/gpt-5-mini",
self.ENABLE_AZURE_GPT5_MINI,
"AZURE_OPENAI_GPT5_MINI",
"OPENAI_GPT5_MINI",
"GPT 5 Mini",
),
("azure/gpt-5.2", self.ENABLE_AZURE_GPT5_2, "AZURE_OPENAI_GPT5_2", "OPENAI_GPT5_2", "GPT 5.2"),
("azure/o3", self.ENABLE_AZURE_O3, "AZURE_OPENAI_O3", "OPENAI_O3", "GPT O3"),
]
for model_name, azure_enabled, azure_key, openai_key, label in gpt_models:
mapping[model_name] = {"llm_key": azure_key if azure_enabled else openai_key, "label": label}
# Anthropic models: prefer Bedrock when enabled, fall back to direct API
if self.ENABLE_BEDROCK_ANTHROPIC:
mapping["us.anthropic.claude-opus-4-20250514-v1:0"] = {
"llm_key": "BEDROCK_ANTHROPIC_CLAUDE4_OPUS_INFERENCE_PROFILE",
"label": "Anthropic Claude 4 Opus",
}
mapping["us.anthropic.claude-sonnet-4-20250514-v1:0"] = {
"llm_key": "BEDROCK_ANTHROPIC_CLAUDE4_SONNET_INFERENCE_PROFILE",
"label": "Anthropic Claude 4 Sonnet",
}
else:
# TODO: apparently the list for OSS is to be much larger
return {
"gemini-2.5-pro-preview-05-06": {"llm_key": "VERTEX_GEMINI_2.5_PRO", "label": "Gemini 2.5 Pro"},
"gemini-2.5-flash": {
"llm_key": "VERTEX_GEMINI_2.5_FLASH",
"label": "Gemini 2.5 Flash",
},
"gemini-3-pro-preview": {"llm_key": "VERTEX_GEMINI_3.0_PRO", "label": "Gemini 3 Pro"},
"gemini-3.0-flash": {"llm_key": "VERTEX_GEMINI_3.0_FLASH", "label": "Gemini 3 Flash"},
"gemini-2.5-flash-lite": {
"llm_key": "VERTEX_GEMINI_2.5_FLASH_LITE",
"label": "Gemini 2.5 Flash Lite",
},
"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-mini": {"llm_key": "AZURE_OPENAI_GPT5_MINI", "label": "GPT 5 Mini"},
"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",
"label": "Anthropic Claude 4 Opus",
},
"us.anthropic.claude-sonnet-4-20250514-v1:0": {
"llm_key": "BEDROCK_ANTHROPIC_CLAUDE4_SONNET_INFERENCE_PROFILE",
"label": "Anthropic Claude 4 Sonnet",
},
"claude-haiku-4-5-20251001": {
"llm_key": "ANTHROPIC_CLAUDE4.5_HAIKU",
"label": "Anthropic Claude 4.5 Haiku",
},
mapping["us.anthropic.claude-opus-4-20250514-v1:0"] = {
"llm_key": "ANTHROPIC_CLAUDE4_OPUS",
"label": "Anthropic Claude 4 Opus",
}
mapping["us.anthropic.claude-sonnet-4-20250514-v1:0"] = {
"llm_key": "ANTHROPIC_CLAUDE4_SONNET",
"label": "Anthropic Claude 4 Sonnet",
}
mapping["claude-haiku-4-5-20251001"] = {
"llm_key": "ANTHROPIC_CLAUDE4.5_HAIKU",
"label": "Anthropic Claude 4.5 Haiku",
}
return mapping
def model_post_init(self, __context: Any) -> None: # type: ignore[override]
super().model_post_init(__context)