diff --git a/litellm/constants.py b/litellm/constants.py index 511cbafc74..8fd2e30755 100644 --- a/litellm/constants.py +++ b/litellm/constants.py @@ -556,6 +556,11 @@ openai_compatible_endpoints: List = [ "https://dashscope-intl.aliyuncs.com/compatible-mode/v1", "https://api.moonshot.ai/v1", "https://api.publicai.co/v1", + "https://api.synthetic.new/openai/v1", + "https://api.stima.tech/v1", + "https://nano-gpt.com/api/v1", + "https://api.poe.com/v1", + "https://llm.chutes.ai/v1/", "https://api.v0.dev/v1", "https://api.morphllm.com/v1", "https://api.lambda.ai/v1", @@ -599,12 +604,16 @@ openai_compatible_providers: List = [ "novita", "meta_llama", "publicai", # PublicAI - JSON-configured provider + "synthetic", # Synthetic - JSON-configured provider + "apertis", # Apertis - JSON-configured provider + "nano-gpt", # Nano-GPT - JSON-configured provider + "poe", # Poe - JSON-configured provider + "chutes", # Chutes - JSON-configured provider "featherless_ai", "nscale", "nebius", "dashscope", "moonshot", - "publicai", "v0", "helicone", "morph", @@ -630,6 +639,11 @@ openai_text_completion_compatible_providers: List = ( "dashscope", "moonshot", "publicai", + "synthetic", + "apertis", + "nano-gpt", + "poe", + "chutes", "v0", "lambda_ai", "hyperbolic", diff --git a/litellm/litellm_core_utils/get_llm_provider_logic.py b/litellm/litellm_core_utils/get_llm_provider_logic.py index a23fce891b..03ea7c9397 100644 --- a/litellm/litellm_core_utils/get_llm_provider_logic.py +++ b/litellm/litellm_core_utils/get_llm_provider_logic.py @@ -270,6 +270,21 @@ def get_llm_provider( # noqa: PLR0915 elif endpoint == "platform.publicai.co/v1": custom_llm_provider = "publicai" dynamic_api_key = get_secret_str("PUBLICAI_API_KEY") + elif endpoint == "https://api.synthetic.new/openai/v1": + custom_llm_provider = "synthetic" + dynamic_api_key = get_secret_str("SYNTHETIC_API_KEY") + elif endpoint == "https://api.stima.tech/v1": + custom_llm_provider = "apertis" + dynamic_api_key = get_secret_str("STIMA_API_KEY") + elif endpoint == "https://nano-gpt.com/api/v1": + custom_llm_provider = "nano-gpt" + dynamic_api_key = get_secret_str("NANOGPT_API_KEY") + elif endpoint == "https://api.poe.com/v1": + custom_llm_provider = "poe" + dynamic_api_key = get_secret_str("POE_API_KEY") + elif endpoint == "https://llm.chutes.ai/v1/": + custom_llm_provider = "chutes" + dynamic_api_key = get_secret_str("CHUTES_API_KEY") elif endpoint == "https://api.v0.dev/v1": custom_llm_provider = "v0" dynamic_api_key = get_secret_str("V0_API_KEY") diff --git a/litellm/llms/openai_like/providers.json b/litellm/llms/openai_like/providers.json index d9351c8b6b..a5455f4a6d 100644 --- a/litellm/llms/openai_like/providers.json +++ b/litellm/llms/openai_like/providers.json @@ -25,5 +25,40 @@ "param_mappings": { "max_completion_tokens": "max_tokens" } + }, + "synthetic": { + "base_url": "https://api.synthetic.new/openai/v1", + "api_key_env": "SYNTHETIC_API_KEY", + "param_mappings": { + "max_completion_tokens": "max_tokens" + } + }, + "apertis": { + "base_url": "https://api.stima.tech/v1", + "api_key_env": "STIMA_API_KEY", + "param_mappings": { + "max_completion_tokens": "max_tokens" + } + }, + "nano-gpt": { + "base_url": "https://nano-gpt.com/api/v1", + "api_key_env": "NANOGPT_API_KEY", + "param_mappings": { + "max_completion_tokens": "max_tokens" + } + }, + "poe": { + "base_url": "https://api.poe.com/v1", + "api_key_env": "POE_API_KEY", + "param_mappings": { + "max_completion_tokens": "max_tokens" + } + }, + "chutes": { + "base_url": "https://llm.chutes.ai/v1/", + "api_key_env": "CHUTES_API_KEY", + "param_mappings": { + "max_completion_tokens": "max_tokens" + } } -} \ No newline at end of file +} diff --git a/litellm/types/utils.py b/litellm/types/utils.py index 3416459bc2..2d99a56677 100644 --- a/litellm/types/utils.py +++ b/litellm/types/utils.py @@ -3014,6 +3014,12 @@ class LlmProviders(str, Enum): AMAZON_NOVA = "amazon_nova" A2A_AGENT = "a2a_agent" LANGGRAPH = "langgraph" + SYNTHETIC = "synthetic" + APERTIS = "apertis" + NANOGPT = "nano-gpt" + POE = "poe" + CHUTES = "chutes" + # Create a set of all provider values for quick lookup diff --git a/provider_endpoints_support.json b/provider_endpoints_support.json index 152b3df52e..82b48b6719 100644 --- a/provider_endpoints_support.json +++ b/provider_endpoints_support.json @@ -137,6 +137,22 @@ "a2a": true } }, + "apertis": { + "display_name": "Apertis (`apertis`)", + "endpoints": { + "chat_completions": true, + "messages": false, + "responses": false, + "embeddings": true, + "image_generations": false, + "audio_transcriptions": false, + "audio_speech": false, + "moderations": false, + "batches": false, + "rerank": false, + "a2a": false + } + }, "assemblyai": { "display_name": "AssemblyAI (`assemblyai`)", "url": "https://docs.litellm.ai/docs/pass_through/assembly_ai", @@ -358,6 +374,22 @@ "a2a": true } }, + "chutes": { + "display_name": "Chutes (`chutes`)", + "endpoints": { + "chat_completions": true, + "messages": false, + "responses": false, + "embeddings": true, + "image_generations": false, + "audio_transcriptions": false, + "audio_speech": false, + "moderations": false, + "batches": false, + "rerank": false, + "a2a": false + } + }, "clarifai": { "display_name": "Clarifai (`clarifai`)", "url": "https://docs.litellm.ai/docs/providers/clarifai", @@ -1226,6 +1258,22 @@ "a2a": true } }, + "nanogpt": { + "display_name": "NanoGPT (`nanogpt`)", + "endpoints": { + "chat_completions": true, + "messages": false, + "responses": false, + "embeddings": true, + "image_generations": false, + "audio_transcriptions": false, + "audio_speech": false, + "moderations": false, + "batches": false, + "rerank": false, + "a2a": false + } + }, "nebius": { "display_name": "Nebius AI Studio (`nebius`)", "url": "https://docs.litellm.ai/docs/providers/nebius", @@ -1507,6 +1555,22 @@ "a2a": true } }, + "poe": { + "display_name": "Poe (`poe`)", + "endpoints": { + "chat_completions": true, + "messages": false, + "responses": false, + "embeddings": true, + "image_generations": false, + "audio_transcriptions": false, + "audio_speech": false, + "moderations": false, + "batches": false, + "rerank": false, + "a2a": false + } + }, "publicai": { "display_name": "PublicAI (`publicai`)", "url": "https://docs.litellm.ai/docs/providers/publicai", @@ -1676,6 +1740,22 @@ "a2a": true } }, + "synthetic": { + "display_name": "Synthetic (`synthetic`)", + "endpoints": { + "chat_completions": true, + "messages": true, + "responses": true, + "embeddings": true, + "image_generations": false, + "audio_transcriptions": false, + "audio_speech": false, + "moderations": false, + "batches": false, + "rerank": false, + "a2a": false + } + }, "text-completion-codestral": { "display_name": "Text Completion Codestral (`text-completion-codestral`)", "url": "https://docs.litellm.ai/docs/providers/codestral", @@ -2068,4 +2148,4 @@ } } } -} \ No newline at end of file +}