diff --git a/litellm/utils.py b/litellm/utils.py index 5479cca7c..636a2bd5c 100644 --- a/litellm/utils.py +++ b/litellm/utils.py @@ -2603,3 +2603,33 @@ def trim_messages( except: # [NON-Blocking, if error occurs just return final_messages return messages + +# this helper reads the .env and returns a list of supported llms for user +def get_valid_models(): + try: + # get keys set in .env + environ_keys = os.environ.keys() + valid_providers = [] + # for all valid providers, make a list of supported llms + valid_models = [] + + for provider in litellm.provider_list: + # edge case litellm has together_ai as a provider, it should be togetherai + provider = provider.replace("_", "") + + # litellm standardizes expected provider keys to + # PROVIDER_API_KEY. Example: OPENAI_API_KEY, COHERE_API_KEY + expected_provider_key = f"{provider.upper()}_API_KEY" + if expected_provider_key in environ_keys: + # key is set + valid_providers.append(provider) + + for provider in valid_providers: + if provider == "azure": + valid_models.append("Azure-LLM") + else: + models_for_provider = litellm.models_by_provider.get(provider, []) + valid_models.extend(models_for_provider) + return valid_models + except: + return [] # NON-Blocking \ No newline at end of file