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