diff --git a/litellm/proxy/public_endpoints/provider_create_fields.json b/litellm/proxy/public_endpoints/provider_create_fields.json new file mode 100644 index 00000000000..f5802aac6a1 --- /dev/null +++ b/litellm/proxy/public_endpoints/provider_create_fields.json @@ -0,0 +1,2863 @@ +[ + { + "provider": "AIML", + "provider_display_name": "AI/ML API", + "litellm_provider": "aiml", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "aiml/flux-pro/v1.1" + }, + { + "provider": "AI21", + "provider_display_name": "Ai21", + "litellm_provider": "ai21", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "AI21_CHAT", + "provider_display_name": "Ai21 Chat", + "litellm_provider": "ai21_chat", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "AIOHTTP_OPENAI", + "provider_display_name": "Aiohttp Openai", + "litellm_provider": "aiohttp_openai", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Bedrock", + "provider_display_name": "Amazon Bedrock", + "litellm_provider": "bedrock", + "credential_fields": [ + { + "key": "aws_access_key_id", + "label": "AWS Access Key ID", + "placeholder": null, + "tooltip": "You can provide the raw key or the environment variable (e.g. `os.environ/MY_SECRET_KEY`).", + "required": false, + "field_type": "password", + "options": null, + "default_value": null + }, + { + "key": "aws_secret_access_key", + "label": "AWS Secret Access Key", + "placeholder": null, + "tooltip": "You can provide the raw key or the environment variable (e.g. `os.environ/MY_SECRET_KEY`).", + "required": false, + "field_type": "password", + "options": null, + "default_value": null + }, + { + "key": "aws_session_token", + "label": "AWS Session Token", + "placeholder": null, + "tooltip": "Temporary credentials session token. You can provide the raw token or the environment variable (e.g. `os.environ/MY_SESSION_TOKEN`).", + "required": false, + "field_type": "password", + "options": null, + "default_value": null + }, + { + "key": "aws_region_name", + "label": "AWS Region Name", + "placeholder": "us-east-1", + "tooltip": "You can provide the raw key or the environment variable (e.g. `os.environ/MY_SECRET_KEY`).", + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "aws_session_name", + "label": "AWS Session Name", + "placeholder": "my-session", + "tooltip": "Name for the AWS session. You can provide the raw value or the environment variable (e.g. `os.environ/MY_SESSION_NAME`).", + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "aws_profile_name", + "label": "AWS Profile Name", + "placeholder": "default", + "tooltip": "AWS profile name to use for authentication. You can provide the raw value or the environment variable (e.g. `os.environ/MY_PROFILE_NAME`).", + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "aws_role_name", + "label": "AWS Role Name", + "placeholder": "MyRole", + "tooltip": "AWS IAM role name to assume. You can provide the raw value or the environment variable (e.g. `os.environ/MY_ROLE_NAME`).", + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "aws_web_identity_token", + "label": "AWS Web Identity Token", + "placeholder": null, + "tooltip": "Web identity token for OIDC authentication. You can provide the raw token or the environment variable (e.g. `os.environ/MY_WEB_IDENTITY_TOKEN`).", + "required": false, + "field_type": "password", + "options": null, + "default_value": null + }, + { + "key": "aws_bedrock_runtime_endpoint", + "label": "AWS Bedrock Runtime Endpoint", + "placeholder": "https://bedrock-runtime.us-east-1.amazonaws.com", + "tooltip": "Custom Bedrock runtime endpoint URL. You can provide the raw value or the environment variable (e.g. `os.environ/MY_BEDROCK_ENDPOINT`).", + "required": false, + "field_type": "text", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "claude-3-opus" + }, + { + "provider": "Anthropic", + "provider_display_name": "Anthropic", + "litellm_provider": "anthropic", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": "sk-", + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "claude-3-opus" + }, + { + "provider": "ANTHROPIC_TEXT", + "provider_display_name": "Anthropic Text", + "litellm_provider": "anthropic_text", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "AssemblyAI", + "provider_display_name": "AssemblyAI", + "litellm_provider": "assemblyai", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "select", + "options": [ + "https://api.assemblyai.com", + "https://api.eu.assemblyai.com" + ], + "default_value": null + }, + { + "key": "api_key", + "label": "AssemblyAI API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "AUTO_ROUTER", + "provider_display_name": "Auto Router", + "litellm_provider": "auto_router", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "SageMaker", + "provider_display_name": "AWS SageMaker", + "litellm_provider": "sagemaker_chat", + "credential_fields": [ + { + "key": "aws_access_key_id", + "label": "AWS Access Key ID", + "placeholder": null, + "tooltip": "You can provide the raw key or the environment variable (e.g. `os.environ/MY_SECRET_KEY`).", + "required": false, + "field_type": "password", + "options": null, + "default_value": null + }, + { + "key": "aws_secret_access_key", + "label": "AWS Secret Access Key", + "placeholder": null, + "tooltip": "You can provide the raw key or the environment variable (e.g. `os.environ/MY_SECRET_KEY`).", + "required": false, + "field_type": "password", + "options": null, + "default_value": null + }, + { + "key": "aws_region_name", + "label": "AWS Region Name", + "placeholder": "us-east-1", + "tooltip": "You can provide the raw key or the environment variable (e.g. `os.environ/MY_SECRET_KEY`).", + "required": false, + "field_type": "text", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b" + }, + { + "provider": "Azure", + "provider_display_name": "Azure", + "litellm_provider": "azure", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": "https://...", + "tooltip": null, + "required": true, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_version", + "label": "API Version", + "placeholder": "2023-07-01-preview", + "tooltip": "By default litellm will use the latest version. If you want to use a different version, you can specify it here", + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "base_model", + "label": "Base Model", + "placeholder": "azure/gpt-3.5-turbo", + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "Azure API Key", + "placeholder": "Enter your Azure API Key", + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + }, + { + "key": "azure_ad_token", + "label": "Azure AD Token", + "placeholder": "Enter your Azure AD Token", + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "azure/my-deployment" + }, + { + "provider": "Azure_AI_Studio", + "provider_display_name": "Azure AI Foundry (Studio)", + "litellm_provider": "azure_ai", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": "https://.openai.azure.com/openai/deployments/gpt-4o/chat/completions?api-version=2024-10-21", + "tooltip": "Enter your full Target URI from Azure Foundry here. Example: https://litellm8397336933.openai.azure.com/openai/deployments/gpt-4o/chat/completions?api-version=2024-10-21", + "required": true, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "Azure API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "azure_ai/command-r-plus" + }, + { + "provider": "AZURE_TEXT", + "provider_display_name": "Azure Text", + "litellm_provider": "azure_text", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "BASETEN", + "provider_display_name": "Baseten", + "litellm_provider": "baseten", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "BYTEZ", + "provider_display_name": "Bytez", + "litellm_provider": "bytez", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Cerebras", + "provider_display_name": "Cerebras", + "litellm_provider": "cerebras", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "CLARIFAI", + "provider_display_name": "Clarifai", + "litellm_provider": "clarifai", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "CLOUDFLARE", + "provider_display_name": "Cloudflare", + "litellm_provider": "cloudflare", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "CODESTRAL", + "provider_display_name": "Codestral", + "litellm_provider": "codestral", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Cohere", + "provider_display_name": "Cohere", + "litellm_provider": "cohere", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "COHERE_CHAT", + "provider_display_name": "Cohere Chat", + "litellm_provider": "cohere_chat", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "COMETAPI", + "provider_display_name": "Cometapi", + "litellm_provider": "cometapi", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "COMPACTIFAI", + "provider_display_name": "Compactifai", + "litellm_provider": "compactifai", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "CUSTOM", + "provider_display_name": "Custom", + "litellm_provider": "custom", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "CUSTOM_OPENAI", + "provider_display_name": "Custom Openai", + "litellm_provider": "custom_openai", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Dashscope", + "provider_display_name": "Dashscope", + "litellm_provider": "dashscope", + "credential_fields": [ + { + "key": "api_key", + "label": "Dashscope API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + }, + { + "key": "api_base", + "label": "API Base", + "placeholder": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1", + "tooltip": "The base URL for your Dashscope server. Defaults to https://dashscope-intl.aliyuncs.com/compatible-mode/v1 if not specified.", + "required": true, + "field_type": "text", + "options": null, + "default_value": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1" + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Databricks", + "provider_display_name": "Databricks (Qwen API)", + "litellm_provider": "databricks", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "DATAROBOT", + "provider_display_name": "Datarobot", + "litellm_provider": "datarobot", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Deepgram", + "provider_display_name": "Deepgram", + "litellm_provider": "deepgram", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "DeepInfra", + "provider_display_name": "DeepInfra", + "litellm_provider": "deepinfra", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "deepinfra/" + }, + { + "provider": "Deepseek", + "provider_display_name": "Deepseek", + "litellm_provider": "deepseek", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "DOCKER_MODEL_RUNNER", + "provider_display_name": "Docker Model Runner", + "litellm_provider": "docker_model_runner", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "DOTPROMPT", + "provider_display_name": "Dotprompt", + "litellm_provider": "dotprompt", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "ElevenLabs", + "provider_display_name": "ElevenLabs", + "litellm_provider": "elevenlabs", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "EMPOWER", + "provider_display_name": "Empower", + "litellm_provider": "empower", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "FalAI", + "provider_display_name": "Fal AI", + "litellm_provider": "fal_ai", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "fal_ai/fal-ai/flux-pro/v1.1-ultra" + }, + { + "provider": "FEATHERLESS_AI", + "provider_display_name": "Featherless Ai", + "litellm_provider": "featherless_ai", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "FireworksAI", + "provider_display_name": "Fireworks AI", + "litellm_provider": "fireworks_ai", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "FRIENDLIAI", + "provider_display_name": "Friendliai", + "litellm_provider": "friendliai", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "GALADRIEL", + "provider_display_name": "Galadriel", + "litellm_provider": "galadriel", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "GITHUB", + "provider_display_name": "Github", + "litellm_provider": "github", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "GITHUB_COPILOT", + "provider_display_name": "Github Copilot", + "litellm_provider": "github_copilot", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Google_AI_Studio", + "provider_display_name": "Google AI Studio", + "litellm_provider": "gemini", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": "aig-", + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gemini-pro" + }, + { + "provider": "GradientAI", + "provider_display_name": "GradientAI", + "litellm_provider": "gradient_ai", + "credential_fields": [ + { + "key": "api_base", + "label": "GradientAI Endpoint", + "placeholder": "https://...", + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "GradientAI API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Groq", + "provider_display_name": "Groq", + "litellm_provider": "groq", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "HEROKU", + "provider_display_name": "Heroku", + "litellm_provider": "heroku", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "HUGGINGFACE", + "provider_display_name": "Huggingface", + "litellm_provider": "huggingface", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "HUMANLOOP", + "provider_display_name": "Humanloop", + "litellm_provider": "humanloop", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "HYPERBOLIC", + "provider_display_name": "Hyperbolic", + "litellm_provider": "hyperbolic", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Infinity", + "provider_display_name": "Infinity", + "litellm_provider": "infinity", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": "http://localhost:7997", + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "JinaAI", + "provider_display_name": "Jina AI", + "litellm_provider": "jina_ai", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "jina_ai/" + }, + { + "provider": "LAMBDA_AI", + "provider_display_name": "Lambda Ai", + "litellm_provider": "lambda_ai", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "LANGFUSE", + "provider_display_name": "Langfuse", + "litellm_provider": "langfuse", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "LEMONADE", + "provider_display_name": "Lemonade", + "litellm_provider": "lemonade", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "LITELLM_PROXY", + "provider_display_name": "Litellm Proxy", + "litellm_provider": "litellm_proxy", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "LLAMAFILE", + "provider_display_name": "Llamafile", + "litellm_provider": "llamafile", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "LM_STUDIO", + "provider_display_name": "Lm Studio", + "litellm_provider": "lm_studio", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "MARITALK", + "provider_display_name": "Maritalk", + "litellm_provider": "maritalk", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "LLAMA", + "provider_display_name": "Meta Llama", + "litellm_provider": "meta_llama", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "MILVUS", + "provider_display_name": "Milvus", + "litellm_provider": "milvus", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "MistralAI", + "provider_display_name": "Mistral AI", + "litellm_provider": "mistral", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "MOONSHOT", + "provider_display_name": "Moonshot", + "litellm_provider": "moonshot", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "MORPH", + "provider_display_name": "Morph", + "litellm_provider": "morph", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "NEBIUS", + "provider_display_name": "Nebius", + "litellm_provider": "nebius", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "NLP_CLOUD", + "provider_display_name": "Nlp Cloud", + "litellm_provider": "nlp_cloud", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "NOVITA", + "provider_display_name": "Novita", + "litellm_provider": "novita", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "NSCALE", + "provider_display_name": "Nscale", + "litellm_provider": "nscale", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "NVIDIA_NIM", + "provider_display_name": "Nvidia Nim", + "litellm_provider": "nvidia_nim", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Ollama", + "provider_display_name": "Ollama", + "litellm_provider": "ollama", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": "http://localhost:11434", + "tooltip": "The base URL for your Ollama server. Defaults to http://localhost:11434 if not specified.", + "required": false, + "field_type": "text", + "options": null, + "default_value": "http://localhost:11434" + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "OLLAMA_CHAT", + "provider_display_name": "Ollama Chat", + "litellm_provider": "ollama_chat", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "OOBABOOGA", + "provider_display_name": "Oobabooga", + "litellm_provider": "oobabooga", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "OpenAI", + "provider_display_name": "OpenAI", + "litellm_provider": "openai", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": "https://api.openai.com/v1", + "tooltip": "Common endpoints: https://api.openai.com/v1, https://eu.api.openai.com, https://us.api.openai.com", + "required": false, + "field_type": "text", + "options": null, + "default_value": "https://api.openai.com/v1" + }, + { + "key": "organization", + "label": "OpenAI Organization ID", + "placeholder": "[OPTIONAL] my-unique-org", + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "OpenAI API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "OPENAI_LIKE", + "provider_display_name": "Openai Like", + "litellm_provider": "openai_like", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "OpenAI_Text", + "provider_display_name": "OpenAI Text Completion", + "litellm_provider": "text-completion-openai", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": "https://api.openai.com/v1", + "tooltip": "Common endpoints: https://api.openai.com/v1, https://eu.api.openai.com, https://us.api.openai.com", + "required": false, + "field_type": "text", + "options": null, + "default_value": "https://api.openai.com/v1" + }, + { + "key": "organization", + "label": "OpenAI Organization ID", + "placeholder": "[OPTIONAL] my-unique-org", + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "OpenAI API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "OpenAI_Compatible", + "provider_display_name": "OpenAI-Compatible Endpoints (Together AI, etc.)", + "litellm_provider": "openai", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": "https://...", + "tooltip": null, + "required": true, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "OpenAI API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "OpenAI_Text_Compatible", + "provider_display_name": "OpenAI-Compatible Text Completion Models (Together AI, etc.)", + "litellm_provider": "text-completion-openai", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": "https://...", + "tooltip": null, + "required": true, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "OpenAI API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Openrouter", + "provider_display_name": "Openrouter", + "litellm_provider": "openrouter", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Oracle", + "provider_display_name": "Oracle Cloud Infrastructure (OCI)", + "litellm_provider": "oci", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "oci/xai.grok-4" + }, + { + "provider": "OVHCLOUD", + "provider_display_name": "Ovhcloud", + "litellm_provider": "ovhcloud", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Perplexity", + "provider_display_name": "Perplexity", + "litellm_provider": "perplexity", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "PETALS", + "provider_display_name": "Petals", + "litellm_provider": "petals", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "PG_VECTOR", + "provider_display_name": "Pg Vector", + "litellm_provider": "pg_vector", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "PREDIBASE", + "provider_display_name": "Predibase", + "litellm_provider": "predibase", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "RECRAFT", + "provider_display_name": "Recraft", + "litellm_provider": "recraft", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "REPLICATE", + "provider_display_name": "Replicate", + "litellm_provider": "replicate", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "RUNWAYML", + "provider_display_name": "Runwayml", + "litellm_provider": "runwayml", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "SAGEMAKER", + "provider_display_name": "Sagemaker", + "litellm_provider": "sagemaker", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Sambanova", + "provider_display_name": "Sambanova", + "litellm_provider": "sambanova", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Snowflake", + "provider_display_name": "Snowflake", + "litellm_provider": "snowflake", + "credential_fields": [ + { + "key": "api_key", + "label": "Snowflake API Key / JWT Key for Authentication", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + }, + { + "key": "api_base", + "label": "Snowflake API Endpoint", + "placeholder": "https://1234567890.snowflakecomputing.com/api/v2/cortex/inference:complete", + "tooltip": "Enter the full endpoint with path here. Example: https://1234567890.snowflakecomputing.com/api/v2/cortex/inference:complete", + "required": true, + "field_type": "text", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "snowflake/mistral-7b" + }, + { + "provider": "TEXT_COMPLETION_CODESTRAL", + "provider_display_name": "Text-Completion-Codestral", + "litellm_provider": "text-completion-codestral", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "TogetherAI", + "provider_display_name": "TogetherAI", + "litellm_provider": "together_ai", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "TOPAZ", + "provider_display_name": "Topaz", + "litellm_provider": "topaz", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Triton", + "provider_display_name": "Triton", + "litellm_provider": "triton", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + }, + { + "key": "api_base", + "label": "API Base", + "placeholder": "http://localhost:8000/generate", + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "V0", + "provider_display_name": "V0", + "litellm_provider": "v0", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "VERCEL_AI_GATEWAY", + "provider_display_name": "Vercel Ai Gateway", + "litellm_provider": "vercel_ai_gateway", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Vertex_AI", + "provider_display_name": "Vertex AI (Anthropic, Gemini, etc.)", + "litellm_provider": "vertex_ai", + "credential_fields": [ + { + "key": "vertex_project", + "label": "Vertex Project", + "placeholder": "adroit-cadet-1234..", + "tooltip": null, + "required": true, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "vertex_location", + "label": "Vertex Location", + "placeholder": "us-east-1", + "tooltip": null, + "required": true, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "vertex_credentials", + "label": "Vertex Credentials", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "upload", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gemini-pro" + }, + { + "provider": "VERTEX_AI_BETA", + "provider_display_name": "Vertex Ai Beta", + "litellm_provider": "vertex_ai_beta", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "Hosted_Vllm", + "provider_display_name": "vllm", + "litellm_provider": "hosted_vllm", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": "https://...", + "tooltip": null, + "required": true, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "vLLM API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "VLLM", + "provider_display_name": "Vllm", + "litellm_provider": "vllm", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "VolcEngine", + "provider_display_name": "VolcEngine", + "litellm_provider": "volcengine", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "volcengine/" + }, + { + "provider": "Voyage", + "provider_display_name": "Voyage AI", + "litellm_provider": "voyage", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "voyage/" + }, + { + "provider": "WANDB", + "provider_display_name": "Wandb", + "litellm_provider": "wandb", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "WATSONX", + "provider_display_name": "Watsonx", + "litellm_provider": "watsonx", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "WATSONX_TEXT", + "provider_display_name": "Watsonx Text", + "litellm_provider": "watsonx_text", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "xAI", + "provider_display_name": "xAI", + "litellm_provider": "xai", + "credential_fields": [ + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": true, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + }, + { + "provider": "XINFERENCE", + "provider_display_name": "Xinference", + "litellm_provider": "xinference", + "credential_fields": [ + { + "key": "api_base", + "label": "API Base", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "text", + "options": null, + "default_value": null + }, + { + "key": "api_key", + "label": "API Key", + "placeholder": null, + "tooltip": null, + "required": false, + "field_type": "password", + "options": null, + "default_value": null + } + ], + "default_model_placeholder": "gpt-3.5-turbo" + } +] diff --git a/litellm/proxy/public_endpoints/provider_create_metadata.py b/litellm/proxy/public_endpoints/provider_create_metadata.py deleted file mode 100644 index bfb2fb2fe0f..00000000000 --- a/litellm/proxy/public_endpoints/provider_create_metadata.py +++ /dev/null @@ -1,769 +0,0 @@ -from __future__ import annotations - -from typing import Any, Dict, List - -from litellm.types.proxy.public_endpoints.public_endpoints import ( - ProviderCreateInfo, - ProviderCredentialField, -) -from litellm.types.utils import LlmProviders - -DEFAULT_MODEL_PLACEHOLDER = "gpt-3.5-turbo" - -_FALLBACK_FIELDS: List[Dict[str, Any]] = [ - { - "key": "api_base", - "label": "API Base", - "field_type": "text", - "required": False, - }, - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": False, - }, -] - -PROVIDER_BASE_INFO: Dict[str, Dict[str, Any]] = { - "AIML": { - "provider_display_name": "AI/ML API", - "litellm_provider": "aiml", - "default_model_placeholder": "aiml/flux-pro/v1.1", - }, - "Anthropic": { - "provider_display_name": "Anthropic", - "litellm_provider": "anthropic", - "default_model_placeholder": "claude-3-opus", - }, - "AssemblyAI": { - "provider_display_name": "AssemblyAI", - "litellm_provider": "assemblyai", - }, - "Azure": { - "provider_display_name": "Azure", - "litellm_provider": "azure", - "default_model_placeholder": "azure/my-deployment", - }, - "Azure_AI_Studio": { - "provider_display_name": "Azure AI Foundry (Studio)", - "litellm_provider": "azure_ai", - "default_model_placeholder": "azure_ai/command-r-plus", - }, - "Bedrock": { - "provider_display_name": "Amazon Bedrock", - "litellm_provider": "bedrock", - "default_model_placeholder": "claude-3-opus", - }, - "Cerebras": { - "provider_display_name": "Cerebras", - "litellm_provider": "cerebras", - }, - "Cohere": { - "provider_display_name": "Cohere", - "litellm_provider": "cohere", - }, - "Dashscope": { - "provider_display_name": "Dashscope", - "litellm_provider": "dashscope", - }, - "Databricks": { - "provider_display_name": "Databricks (Qwen API)", - "litellm_provider": "databricks", - }, - "DeepInfra": { - "provider_display_name": "DeepInfra", - "litellm_provider": "deepinfra", - "default_model_placeholder": "deepinfra/", - }, - "Deepgram": { - "provider_display_name": "Deepgram", - "litellm_provider": "deepgram", - }, - "Deepseek": { - "provider_display_name": "Deepseek", - "litellm_provider": "deepseek", - }, - "ElevenLabs": { - "provider_display_name": "ElevenLabs", - "litellm_provider": "elevenlabs", - }, - "FalAI": { - "provider_display_name": "Fal AI", - "litellm_provider": "fal_ai", - "default_model_placeholder": "fal_ai/fal-ai/flux-pro/v1.1-ultra", - }, - "FireworksAI": { - "provider_display_name": "Fireworks AI", - "litellm_provider": "fireworks_ai", - }, - "Google_AI_Studio": { - "provider_display_name": "Google AI Studio", - "litellm_provider": "gemini", - "default_model_placeholder": "gemini-pro", - }, - "GradientAI": { - "provider_display_name": "GradientAI", - "litellm_provider": "gradient_ai", - }, - "Groq": { - "provider_display_name": "Groq", - "litellm_provider": "groq", - }, - "Hosted_Vllm": { - "provider_display_name": "vllm", - "litellm_provider": "hosted_vllm", - }, - "Infinity": { - "provider_display_name": "Infinity", - "litellm_provider": "infinity", - }, - "JinaAI": { - "provider_display_name": "Jina AI", - "litellm_provider": "jina_ai", - "default_model_placeholder": "jina_ai/", - }, - "MistralAI": { - "provider_display_name": "Mistral AI", - "litellm_provider": "mistral", - }, - "Ollama": { - "provider_display_name": "Ollama", - "litellm_provider": "ollama", - }, - "OpenAI": { - "provider_display_name": "OpenAI", - "litellm_provider": "openai", - }, - "OpenAI_Compatible": { - "provider_display_name": "OpenAI-Compatible Endpoints (Together AI, etc.)", - "litellm_provider": "openai", - }, - "OpenAI_Text": { - "provider_display_name": "OpenAI Text Completion", - "litellm_provider": "text-completion-openai", - }, - "OpenAI_Text_Compatible": { - "provider_display_name": "OpenAI-Compatible Text Completion Models (Together AI, etc.)", - "litellm_provider": "text-completion-openai", - }, - "Openrouter": { - "provider_display_name": "Openrouter", - "litellm_provider": "openrouter", - }, - "Oracle": { - "provider_display_name": "Oracle Cloud Infrastructure (OCI)", - "litellm_provider": "oci", - "default_model_placeholder": "oci/xai.grok-4", - }, - "Perplexity": { - "provider_display_name": "Perplexity", - "litellm_provider": "perplexity", - }, - "SageMaker": { - "provider_display_name": "AWS SageMaker", - "litellm_provider": "sagemaker_chat", - "default_model_placeholder": "sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b", - }, - "Sambanova": { - "provider_display_name": "Sambanova", - "litellm_provider": "sambanova", - }, - "Snowflake": { - "provider_display_name": "Snowflake", - "litellm_provider": "snowflake", - "default_model_placeholder": "snowflake/mistral-7b", - }, - "TogetherAI": { - "provider_display_name": "TogetherAI", - "litellm_provider": "together_ai", - }, - "Triton": { - "provider_display_name": "Triton", - "litellm_provider": "triton", - }, - "Vertex_AI": { - "provider_display_name": "Vertex AI (Anthropic, Gemini, etc.)", - "litellm_provider": "vertex_ai", - "default_model_placeholder": "gemini-pro", - }, - "VolcEngine": { - "provider_display_name": "VolcEngine", - "litellm_provider": "volcengine", - "default_model_placeholder": "volcengine/", - }, - "Voyage": { - "provider_display_name": "Voyage AI", - "litellm_provider": "voyage", - "default_model_placeholder": "voyage/", - }, - "xAI": { - "provider_display_name": "xAI", - "litellm_provider": "xai", - }, -} - -PROVIDER_CREDENTIAL_FIELDS: Dict[str, List[Dict[str, Any]]] = { - "OpenAI": [ - { - "key": "api_base", - "label": "API Base", - "field_type": "text", - "placeholder": "https://api.openai.com/v1", - "tooltip": "Common endpoints: https://api.openai.com/v1, https://eu.api.openai.com, https://us.api.openai.com", - "default_value": "https://api.openai.com/v1", - }, - { - "key": "organization", - "label": "OpenAI Organization ID", - "placeholder": "[OPTIONAL] my-unique-org", - }, - { - "key": "api_key", - "label": "OpenAI API Key", - "field_type": "password", - "required": True, - }, - ], - "OpenAI_Text": [ - { - "key": "api_base", - "label": "API Base", - "field_type": "text", - "placeholder": "https://api.openai.com/v1", - "tooltip": "Common endpoints: https://api.openai.com/v1, https://eu.api.openai.com, https://us.api.openai.com", - "default_value": "https://api.openai.com/v1", - }, - { - "key": "organization", - "label": "OpenAI Organization ID", - "placeholder": "[OPTIONAL] my-unique-org", - }, - { - "key": "api_key", - "label": "OpenAI API Key", - "field_type": "password", - "required": True, - }, - ], - "Vertex_AI": [ - { - "key": "vertex_project", - "label": "Vertex Project", - "placeholder": "adroit-cadet-1234..", - "required": True, - }, - { - "key": "vertex_location", - "label": "Vertex Location", - "placeholder": "us-east-1", - "required": True, - }, - { - "key": "vertex_credentials", - "label": "Vertex Credentials", - "field_type": "upload", - "required": True, - }, - ], - "AssemblyAI": [ - { - "key": "api_base", - "label": "API Base", - "field_type": "select", - "required": True, - "options": [ - "https://api.assemblyai.com", - "https://api.eu.assemblyai.com", - ], - }, - { - "key": "api_key", - "label": "AssemblyAI API Key", - "field_type": "password", - "required": True, - }, - ], - "Azure": [ - { - "key": "api_base", - "label": "API Base", - "placeholder": "https://...", - "required": True, - }, - { - "key": "api_version", - "label": "API Version", - "placeholder": "2023-07-01-preview", - "tooltip": "By default litellm will use the latest version. If you want to use a different version, you can specify it here", - }, - { - "key": "base_model", - "label": "Base Model", - "placeholder": "azure/gpt-3.5-turbo", - }, - { - "key": "api_key", - "label": "Azure API Key", - "field_type": "password", - "placeholder": "Enter your Azure API Key", - }, - { - "key": "azure_ad_token", - "label": "Azure AD Token", - "field_type": "password", - "placeholder": "Enter your Azure AD Token", - }, - ], - "Azure_AI_Studio": [ - { - "key": "api_base", - "label": "API Base", - "placeholder": "https://.openai.azure.com/openai/deployments/gpt-4o/chat/completions?api-version=2024-10-21", - "tooltip": "Enter your full Target URI from Azure Foundry here. Example: https://litellm8397336933.openai.azure.com/openai/deployments/gpt-4o/chat/completions?api-version=2024-10-21", - "required": True, - }, - { - "key": "api_key", - "label": "Azure API Key", - "field_type": "password", - "required": True, - }, - ], - "OpenAI_Compatible": [ - { - "key": "api_base", - "label": "API Base", - "placeholder": "https://...", - "required": True, - }, - { - "key": "api_key", - "label": "OpenAI API Key", - "field_type": "password", - "required": True, - }, - ], - "Dashscope": [ - { - "key": "api_key", - "label": "Dashscope API Key", - "field_type": "password", - "required": True, - }, - { - "key": "api_base", - "label": "API Base", - "placeholder": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1", - "default_value": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1", - "required": True, - "tooltip": "The base URL for your Dashscope server. Defaults to https://dashscope-intl.aliyuncs.com/compatible-mode/v1 if not specified.", - }, - ], - "OpenAI_Text_Compatible": [ - { - "key": "api_base", - "label": "API Base", - "placeholder": "https://...", - "required": True, - }, - { - "key": "api_key", - "label": "OpenAI API Key", - "field_type": "password", - "required": True, - }, - ], - "Bedrock": [ - { - "key": "aws_access_key_id", - "label": "AWS Access Key ID", - "field_type": "password", - "tooltip": "You can provide the raw key or the environment variable (e.g. `os.environ/MY_SECRET_KEY`).", - }, - { - "key": "aws_secret_access_key", - "label": "AWS Secret Access Key", - "field_type": "password", - "tooltip": "You can provide the raw key or the environment variable (e.g. `os.environ/MY_SECRET_KEY`).", - }, - { - "key": "aws_session_token", - "label": "AWS Session Token", - "field_type": "password", - "tooltip": "Temporary credentials session token. You can provide the raw token or the environment variable (e.g. `os.environ/MY_SESSION_TOKEN`).", - }, - { - "key": "aws_region_name", - "label": "AWS Region Name", - "placeholder": "us-east-1", - "tooltip": "You can provide the raw key or the environment variable (e.g. `os.environ/MY_SECRET_KEY`).", - }, - { - "key": "aws_session_name", - "label": "AWS Session Name", - "placeholder": "my-session", - "tooltip": "Name for the AWS session. You can provide the raw value or the environment variable (e.g. `os.environ/MY_SESSION_NAME`).", - }, - { - "key": "aws_profile_name", - "label": "AWS Profile Name", - "placeholder": "default", - "tooltip": "AWS profile name to use for authentication. You can provide the raw value or the environment variable (e.g. `os.environ/MY_PROFILE_NAME`).", - }, - { - "key": "aws_role_name", - "label": "AWS Role Name", - "placeholder": "MyRole", - "tooltip": "AWS IAM role name to assume. You can provide the raw value or the environment variable (e.g. `os.environ/MY_ROLE_NAME`).", - }, - { - "key": "aws_web_identity_token", - "label": "AWS Web Identity Token", - "field_type": "password", - "tooltip": "Web identity token for OIDC authentication. You can provide the raw token or the environment variable (e.g. `os.environ/MY_WEB_IDENTITY_TOKEN`).", - }, - { - "key": "aws_bedrock_runtime_endpoint", - "label": "AWS Bedrock Runtime Endpoint", - "placeholder": "https://bedrock-runtime.us-east-1.amazonaws.com", - "tooltip": "Custom Bedrock runtime endpoint URL. You can provide the raw value or the environment variable (e.g. `os.environ/MY_BEDROCK_ENDPOINT`).", - }, - ], - "SageMaker": [ - { - "key": "aws_access_key_id", - "label": "AWS Access Key ID", - "field_type": "password", - "tooltip": "You can provide the raw key or the environment variable (e.g. `os.environ/MY_SECRET_KEY`).", - }, - { - "key": "aws_secret_access_key", - "label": "AWS Secret Access Key", - "field_type": "password", - "tooltip": "You can provide the raw key or the environment variable (e.g. `os.environ/MY_SECRET_KEY`).", - }, - { - "key": "aws_region_name", - "label": "AWS Region Name", - "placeholder": "us-east-1", - "tooltip": "You can provide the raw key or the environment variable (e.g. `os.environ/MY_SECRET_KEY`).", - }, - ], - "Ollama": [ - { - "key": "api_base", - "label": "API Base", - "placeholder": "http://localhost:11434", - "default_value": "http://localhost:11434", - "tooltip": "The base URL for your Ollama server. Defaults to http://localhost:11434 if not specified.", - }, - ], - "Anthropic": [ - { - "key": "api_key", - "label": "API Key", - "placeholder": "sk-", - "field_type": "password", - "required": True, - }, - ], - "Deepgram": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "ElevenLabs": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "Google_AI_Studio": [ - { - "key": "api_key", - "label": "API Key", - "placeholder": "aig-", - "field_type": "password", - "required": True, - }, - ], - "Groq": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "MistralAI": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "Deepseek": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "Cohere": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "Databricks": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "xAI": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "AIML": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "Cerebras": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "Sambanova": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "Perplexity": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "TogetherAI": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "Openrouter": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "FireworksAI": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "GradientAI": [ - { - "key": "api_base", - "label": "GradientAI Endpoint", - "placeholder": "https://...", - }, - { - "key": "api_key", - "label": "GradientAI API Key", - "field_type": "password", - "required": True, - }, - ], - "Triton": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - }, - { - "key": "api_base", - "label": "API Base", - "placeholder": "http://localhost:8000/generate", - }, - ], - "Hosted_Vllm": [ - { - "key": "api_base", - "label": "API Base", - "placeholder": "https://...", - "required": True, - }, - { - "key": "api_key", - "label": "vLLM API Key", - "field_type": "password", - }, - ], - "Voyage": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "JinaAI": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "VolcEngine": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "DeepInfra": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "Oracle": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], - "Snowflake": [ - { - "key": "api_key", - "label": "Snowflake API Key / JWT Key for Authentication", - "field_type": "password", - "required": True, - }, - { - "key": "api_base", - "label": "Snowflake API Endpoint", - "placeholder": "https://1234567890.snowflakecomputing.com/api/v2/cortex/inference:complete", - "tooltip": "Enter the full endpoint with path here. Example: https://1234567890.snowflakecomputing.com/api/v2/cortex/inference:complete", - "required": True, - }, - ], - "Infinity": [ - { - "key": "api_base", - "label": "API Base", - "placeholder": "http://localhost:7997", - }, - ], - "FalAI": [ - { - "key": "api_key", - "label": "API Key", - "field_type": "password", - "required": True, - }, - ], -} - - -def _normalize_field(field: Dict[str, Any]) -> ProviderCredentialField: - return ProviderCredentialField( - key=field["key"], - label=field["label"], - placeholder=field.get("placeholder"), - tooltip=field.get("tooltip"), - required=field.get("required", False), - field_type=field.get("field_type", "text"), - options=field.get("options"), - default_value=field.get("default_value"), - ) - - -def get_provider_create_metadata() -> List[ProviderCreateInfo]: - providers: List[ProviderCreateInfo] = [] - - for provider_key, base_info in PROVIDER_BASE_INFO.items(): - raw_fields = PROVIDER_CREDENTIAL_FIELDS.get(provider_key, _FALLBACK_FIELDS) - normalized_fields = [_normalize_field(field) for field in raw_fields] - - providers.append( - ProviderCreateInfo( - provider=provider_key, - provider_display_name=base_info["provider_display_name"], - litellm_provider=base_info["litellm_provider"], - default_model_placeholder=base_info.get( - "default_model_placeholder", DEFAULT_MODEL_PLACEHOLDER - ), - credential_fields=normalized_fields, - ) - ) - - # Ensure we have metadata entries for all providers defined in LlmProviders. - # If a provider enum value is not already present in the litellm_provider - # field of any entry, create a default entry for it using the fallback - # credential fields (api_key + api_base) and a generated display name. - existing_litellm_providers = {p.litellm_provider for p in providers} - - for provider_enum in LlmProviders: - litellm_provider_value = provider_enum.value - if litellm_provider_value in existing_litellm_providers: - continue - - normalized_fields = [_normalize_field(field) for field in _FALLBACK_FIELDS] - provider_display_name = provider_enum.value.replace("_", " ").title() - - providers.append( - ProviderCreateInfo( - provider=provider_enum.name, - provider_display_name=provider_display_name, - litellm_provider=litellm_provider_value, - default_model_placeholder=DEFAULT_MODEL_PLACEHOLDER, - credential_fields=normalized_fields, - ) - ) - - providers.sort(key=lambda item: item.provider_display_name.lower()) - return providers - diff --git a/litellm/proxy/public_endpoints/public_endpoints.py b/litellm/proxy/public_endpoints/public_endpoints.py index 71c91fac6f7..e0a4f762197 100644 --- a/litellm/proxy/public_endpoints/public_endpoints.py +++ b/litellm/proxy/public_endpoints/public_endpoints.py @@ -1,12 +1,11 @@ from typing import List +import os +import json from fastapi import APIRouter, Depends, HTTPException from litellm.proxy._types import CommonProxyErrors from litellm.proxy.auth.user_api_key_auth import user_api_key_auth -from litellm.proxy.public_endpoints.provider_create_metadata import ( - get_provider_create_metadata, -) from litellm.types.agents import AgentCard from litellm.types.mcp import MCPPublicServer from litellm.types.proxy.management_endpoints.model_management_endpoints import ( @@ -136,4 +135,14 @@ async def get_provider_fields() -> List[ProviderCreateInfo]: Return provider metadata required by the dashboard create-model flow. """ - return get_provider_create_metadata() + provider_create_fields_path = os.path.join( + os.path.dirname(os.path.dirname(os.path.dirname(__file__))), + "proxy", + "public_endpoints", + "provider_create_fields.json" + ) + + with open(provider_create_fields_path, "r") as f: + provider_create_fields = json.load(f) + + return provider_create_fields diff --git a/tests/test_litellm/proxy/public_endpoints/test_provider_create_metadata.py b/tests/test_litellm/proxy/public_endpoints/test_provider_create_metadata.py deleted file mode 100644 index 6676720b7ad..00000000000 --- a/tests/test_litellm/proxy/public_endpoints/test_provider_create_metadata.py +++ /dev/null @@ -1,55 +0,0 @@ -import os -import sys -from copy import deepcopy - -import pytest - -sys.path.insert(0, os.path.abspath("../../..")) - -import litellm.proxy.public_endpoints.provider_create_metadata as pcm # noqa: E402 -from litellm.proxy.public_endpoints.provider_create_metadata import ( # noqa: E402 - _normalize_field, - get_provider_create_metadata, -) - - -def test_get_provider_create_metadata_includes_openai_fields(): - metadata = get_provider_create_metadata() - - openai_info = next(item for item in metadata if item.provider == "OpenAI") - - assert openai_info.provider_display_name == "OpenAI" - assert openai_info.litellm_provider == "openai" - keys = {field.key for field in openai_info.credential_fields} - assert {"api_base", "api_key"}.issubset(keys) - - -def test_get_provider_create_metadata_returns_sorted_display_names(): - metadata = get_provider_create_metadata() - display_names = [item.provider_display_name for item in metadata] - - assert display_names == sorted(display_names, key=str.lower) - - -def test_get_provider_create_metadata_uses_fallback_fields(monkeypatch): - overridden_fields = deepcopy(pcm.PROVIDER_CREDENTIAL_FIELDS) - overridden_fields.pop("Azure", None) - monkeypatch.setattr(pcm, "PROVIDER_CREDENTIAL_FIELDS", overridden_fields) - - metadata = get_provider_create_metadata() - azure_info = next(item for item in metadata if item.provider == "Azure") - - fallback_keys = [field.key for field in azure_info.credential_fields] - assert fallback_keys == ["api_base", "api_key"] - assert all(field.required is False for field in azure_info.credential_fields) - - -def test_normalize_field_applies_defaults(): - normalized = _normalize_field({"key": "api_key", "label": "API Key"}) - - assert normalized.key == "api_key" - assert normalized.label == "API Key" - assert normalized.field_type == "text" - assert normalized.required is False - assert normalized.placeholder is None - assert normalized.options is None diff --git a/tests/test_litellm/proxy/public_endpoints/test_public_endpoints.py b/tests/test_litellm/proxy/public_endpoints/test_public_endpoints.py index 8456cf55389..148e6b571f4 100644 --- a/tests/test_litellm/proxy/public_endpoints/test_public_endpoints.py +++ b/tests/test_litellm/proxy/public_endpoints/test_public_endpoints.py @@ -13,9 +13,9 @@ from litellm.types.utils import LlmProviders def test_get_supported_providers_returns_enum_values(): - app = FastAPI() - app.include_router(router) - client = TestClient(app) + app_instance = FastAPI() + app_instance.include_router(router) + client = TestClient(app_instance) response = client.get("/public/providers") @@ -24,43 +24,32 @@ def test_get_supported_providers_returns_enum_values(): assert response.json() == expected_providers -def test_get_provider_fields_returns_metadata(): - app = FastAPI() - app.include_router(router) - client = TestClient(app) +def test_get_provider_create_fields(): + app_instance = FastAPI() + app_instance.include_router(router) + client = TestClient(app_instance) response = client.get("/public/providers/fields") assert response.status_code == 200 - payload = response.json() - assert isinstance(payload, list) - provider_lookup = {item["provider"]: item for item in payload} - assert "OpenAI" in provider_lookup + response_data = response.json() - openai_fields = provider_lookup["OpenAI"] - assert openai_fields["provider_display_name"] == "OpenAI" - assert openai_fields["litellm_provider"] == "openai" + assert isinstance(response_data, list) - credential_keys = {field["key"] for field in openai_fields["credential_fields"]} - assert {"api_base", "api_key"}.issubset(credential_keys) + assert len(response_data) > 0 - # Every provider exposed by `/public/providers` (i.e. every LlmProviders value) - # should have a corresponding entry in `/public/providers/fields`. - expected_litellm_providers = {provider.value for provider in LlmProviders} - actual_litellm_providers = {item["litellm_provider"] for item in payload} - assert expected_litellm_providers.issubset(actual_litellm_providers) + first_provider = response_data[0] + assert "provider" in first_provider + assert "provider_display_name" in first_provider + assert "litellm_provider" in first_provider + assert "credential_fields" in first_provider - # Sanity check for runwayml specifically – it should be present and use the - # default API base + API key credential fields at minimum. - runway_entries = [ - item for item in payload if item["litellm_provider"] == "runwayml" - ] - assert ( - len(runway_entries) >= 1 - ), "Expected runwayml provider metadata in /public/providers/fields" - runway_credential_keys = { - field["key"] for field in runway_entries[0]["credential_fields"] - } - assert {"api_base", "api_key"}.issubset(runway_credential_keys) + assert isinstance(first_provider["credential_fields"], list) + + has_detailed_fields = any( + provider.get("credential_fields") and len(provider.get("credential_fields", [])) > 0 + for provider in response_data + ) + assert has_detailed_fields, "Expected at least one provider to have detailed credential fields"