diff --git a/litellm/__init__.py b/litellm/__init__.py index 3f8c742c5a2..94aa9c1d8d9 100644 --- a/litellm/__init__.py +++ b/litellm/__init__.py @@ -637,6 +637,7 @@ deepgram_models: Set = set() elevenlabs_models: Set = set() dashscope_models: Set = set() moonshot_models: Set = set() +greenpt_models: Set = set() publicai_models: Set = set() darkbloom_models: Set = set() v0_models: Set = set() @@ -885,6 +886,8 @@ def add_known_models(model_cost_map: Optional[Dict] = None): heroku_models.add(key) elif value.get("litellm_provider") == "dashscope": dashscope_models.add(key) + elif value.get("litellm_provider") == "greenpt": + dashscope_models.add(key) elif value.get("litellm_provider") == "modelscope": modelscope_models.add(key) elif value.get("litellm_provider") == "moonshot": @@ -1039,6 +1042,7 @@ model_list = list( | deepgram_models | elevenlabs_models | dashscope_models + | greenpt_models | moonshot_models | publicai_models | darkbloom_models @@ -1144,6 +1148,7 @@ models_by_provider: dict = { "elevenlabs": elevenlabs_models, "heroku": heroku_models, "dashscope": dashscope_models, + "greenpt": greenpt_models, "modelscope": modelscope_models, "moonshot": moonshot_models, "publicai": publicai_models, diff --git a/litellm/constants.py b/litellm/constants.py index a9edf135731..f5b6b73d65d 100644 --- a/litellm/constants.py +++ b/litellm/constants.py @@ -563,6 +563,7 @@ LITELLM_CHAT_PROVIDERS = [ "lemonade", "docker_model_runner", "amazon_nova", + "greenpt" ] LITELLM_EMBEDDING_PROVIDERS_SUPPORTING_INPUT_ARRAY_OF_TOKENS = [ @@ -725,6 +726,7 @@ openai_compatible_endpoints: List = [ "https://ai-gateway.vercel.sh/v1", "https://api.inference.wandb.ai/v1", "https://api.clarifai.com/v2/ext/openai/v1", + "https://api.greenpt.ai/v1", "https://api.libertai.io/v1", "https://pinstripes.io/v1", "https://api.meta.ai/v1", @@ -794,8 +796,10 @@ openai_compatible_providers: List = [ "ragflow", "pinstripes", # Pinstripes - JSON-configured provider "darkbloom", - "meta", # Meta Model API (Muse Spark) - JSON-configured provider + "meta", + "greenpt", ] + openai_text_completion_compatible_providers: List = [ # providers that support `/v1/completions` "together_ai", "fireworks_ai", @@ -803,6 +807,7 @@ openai_text_completion_compatible_providers: List = [ # providers that support "meta_llama", "llamafile", "featherless_ai", + "greenpt", "nebius", "dashscope", "modelscope", @@ -1027,6 +1032,47 @@ dashscope_models: set = set( ] ) +# curl https://api.greenpt.ai/v1/models -H "Authorization: Bearer $GREENPT_KEY" | jq '[.data[].id]' +greenpt_models: set = set( + [ + "pixtral-12b-2409", + "holo2-30b-a3b", + "qwen3.6-35b-a3b", + "mistral-medium-3.5-128b", + "devstral-small-2505", + "green-l-raw", + "green-r-raw", + "llama-3.3-70b-instruct", + "deepseek-r1-distill-llama-70b", + "mistral-nemo-instruct-2407", + "llama-3.1-8b-instruct", + "gemma-3-27b-it", + "gemma4", + "devstral-2-123b-instruct-2512", + "qwen3-235b-a22b-instruct-2507", + "mistral-small-3.2-24b-instruct-2506", + "qwen3-coder-30b-a3b-instruct", + "gpt-oss-120b", + "voxtral-small-24b-2507", + "qwen3.5-397b-a17b", + "green-embeddings", + "kimi-k2.6-fast", + "kimi-k2.7-code", + "green-s", + "glm-5.2", + "bge-multilingual-gemma2", + "qwen3-embedding-8b", + "glm-5.1", + "minimax-m2.5", + "kimi-k2.6", + "green-l", + "green-r", + "green-embedding", + "green-s-pro", + "green-rerank" + ] +) + nebius_embedding_models: set = set( [ "BAAI/bge-en-icl", diff --git a/litellm/llms/openai_like/providers.json b/litellm/llms/openai_like/providers.json index 164100d4194..1a8119acf24 100644 --- a/litellm/llms/openai_like/providers.json +++ b/litellm/llms/openai_like/providers.json @@ -151,6 +151,10 @@ "force_store_false": true } }, + "greenpt": { + "base_url": "https://api.greenpt.ai/v1", + "api_key_env": "GREENPT_API_KEY" + }, "libertai": { "base_url": "https://api.libertai.io/v1", "api_key_env": "LIBERTAI_API_KEY", diff --git a/model_prices_and_context_window.json b/model_prices_and_context_window.json index db28118d52b..6b38da58359 100644 --- a/model_prices_and_context_window.json +++ b/model_prices_and_context_window.json @@ -25501,6 +25501,38 @@ "max_input_tokens": 200000, "max_output_tokens": 100000 }, + "greenpt/kimi-k2.7-code": { + "litellm_provider": "greenpt", + "mode": "chat", + "input_cost_per_token": 8.3e-07, + "output_cost_per_token": 3.85e-06, + "max_tokens": 256000, + "source": "https://docs.greenpt.ai/model-cards" + }, + "greenpt/glm-5.2": { + "litellm_provider": "greenpt", + "mode": "chat", + "input_cost_per_token": 1.32e-06, + "output_cost_per_token": 4.62e-06, + "max_tokens": 1000000, + "source": "https://docs.greenpt.ai/model-cards" + }, + "greenpt/qwen3-coder-30b-a3b-instruct": { + "litellm_provider": "greenpt", + "mode": "chat", + "input_cost_per_token": 2.5e-07, + "output_cost_per_token": 9.5e-07, + "max_tokens": 128000, + "source": "https://docs.greenpt.ai/model-cards" + }, + "greenpt/devstral-2-123b-instruct-2512": { + "litellm_provider": "greenpt", + "mode": "chat", + "input_cost_per_token": 5e-07, + "output_cost_per_token": 2.4e-06, + "max_tokens": 200000, + "source": "https://docs.greenpt.ai/model-cards" + }, "lemonade/Qwen3-Coder-30B-A3B-Instruct-GGUF": { "input_cost_per_token": 0, "litellm_provider": "lemonade", diff --git a/provider_endpoints_support.json b/provider_endpoints_support.json index 65db63dc045..213faf783e4 100644 --- a/provider_endpoints_support.json +++ b/provider_endpoints_support.json @@ -1208,6 +1208,35 @@ "interactions": true } }, + "greenpt": { + "display_name": "GreenPT (`greenpt`)", + "url": "https://docs.greenpt.ai/get-started", + "endpoints": { + "chat_completions": true, + "messages": false, + "responses": false, + "embeddings": true, + "image_generations": false, + "audio_transcriptions": false, + "audio_speech": false, + "moderations": false, + "batches": false, + "rerank": true, + "ocr": false, + "search": false, + "skills": false, + "interactions": false, + "a2a_(Agent Gateway)": false, + "container": false, + "container_file": false, + "compact": false, + "files": false, + "image_edits": false, + "vector_stores_create": false, + "vector_stores_search": false, + "video_generations": false + } + }, "groq": { "display_name": "Groq AI (`groq`)", "url": "https://docs.litellm.ai/docs/providers/groq",