diff --git a/litellm/utils.py b/litellm/utils.py index 88e395233..9ca2cdff0 100644 --- a/litellm/utils.py +++ b/litellm/utils.py @@ -4161,8 +4161,25 @@ def cost_per_token( model_with_provider_and_region in model_cost_ref ): # use region based pricing, if it's available model_with_provider = model_with_provider_and_region - if model_with_provider in model_cost_ref: + + model_without_prefix = model + model_parts = model.split("/") + if len(model_parts) > 1: + model_without_prefix = model_parts[1] + else: + model_without_prefix = model + + if model in model_cost_ref: # Option 1. use model passed, model="gpt-4" + model = model + elif ( + model_with_provider in model_cost_ref + ): # Option 2. use model with provider, model = "openai/gpt-4" model = model_with_provider + elif ( + model_without_prefix in model_cost_ref + ): # Option 3. if user passed model="bedrock/anthropic.claude-3", use model="anthropic.claude-3" + model = model_without_prefix + # see this https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models print_verbose(f"Looking up model={model} in model_cost_map") if model in model_cost_ref: @@ -9423,7 +9440,9 @@ def get_secret( else: secret = os.environ.get(secret_name) try: - secret_value_as_bool = ast.literal_eval(secret) if secret is not None else None + secret_value_as_bool = ( + ast.literal_eval(secret) if secret is not None else None + ) if isinstance(secret_value_as_bool, bool): return secret_value_as_bool else: