Maharshi Gor
Refactor: moved some vars from envs to app_config
633b045
# Description: Utility functions for the model_step component.
from app_configs import AVAILABLE_MODELS, UNSELECTED_MODEL_NAME
def guess_model_provider(model_name: str):
"""Guess the provider of a model name."""
model_name = model_name.lower()
if model_name.startswith("gpt-"):
return "OpenAI"
if "sonnet" in model_name or "claude" in model_name or "haiku" in model_name:
return "Anthropic"
if "command" in model_name:
return "Cohere"
raise ValueError(f"Model `{model_name}` not yet supported")
def get_model_and_provider(model_name: str):
"""Get the model and provider from a model name."""
if model_name == UNSELECTED_MODEL_NAME:
return "", ""
splits = model_name.split("/", maxsplit=1)
if len(splits) == 1:
full_model_name = AVAILABLE_MODELS.get(model_name, model_name)
provider = guess_model_provider(full_model_name)
return full_model_name, provider
if len(splits) == 2:
provider, model_name = splits
full_model_name = AVAILABLE_MODELS.get(model_name, model_name)
return full_model_name, provider
raise ValueError(f"Model `{model_name}` not yet supported")
def get_full_model_name(model_name: str, provider: str = ""):
"""Get the full model name from a model name."""
if model_name == "":
return UNSELECTED_MODEL_NAME
if not provider:
provider = guess_model_provider(model_name)
return f"{provider}/{model_name}"