From e8777610a7b35ac4396d01c7ba54eecc2166ff43 Mon Sep 17 00:00:00 2001 From: shivam Date: Sat, 8 Aug 2026 19:19:57 +0000 Subject: [PATCH] refactor(cognition): resolve JSON provider api_base from the registry Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- README.md | 2 +- litellm/litellm_core_utils/get_llm_provider_logic.py | 6 +++--- litellm/llms/openai_like/json_loader.py | 5 +++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 68aaa09ec98..247e072f3a7 100644 --- a/README.md +++ b/README.md @@ -292,7 +292,7 @@ curl -X POST 'http://0.0.0.0:4000/v1/chat/completions' \ | [Clarifai (`clarifai`)](https://docs.litellm.ai/docs/providers/clarifai) | ✅ | ✅ | ✅ | | | | | | | | | [Cloudflare AI Workers (`cloudflare`)](https://docs.litellm.ai/docs/providers/cloudflare_workers) | ✅ | ✅ | ✅ | | | | | | | | | [Codestral (`codestral`)](https://docs.litellm.ai/docs/providers/codestral) | ✅ | ✅ | ✅ | | | | | | | | -| [Cognition (`cognition`)](https://docs.litellm.ai/docs/providers/cognition) | ✅ | ✅ | ✅ | | | | | | | | +| [Cognition (`cognition`)](https://docs.litellm.ai/docs/providers/cognition) | ✅ | ✅ | | | | | | | | | | [Cohere (`cohere`)](https://docs.litellm.ai/docs/providers/cohere) | ✅ | ✅ | ✅ | ✅ | | | | | | ✅ | | [Cohere Chat (`cohere_chat`)](https://docs.litellm.ai/docs/providers/cohere) | ✅ | ✅ | ✅ | | | | | | | | | [CometAPI (`cometapi`)](https://docs.litellm.ai/docs/providers/cometapi) | ✅ | ✅ | ✅ | ✅ | | | | | | | diff --git a/litellm/litellm_core_utils/get_llm_provider_logic.py b/litellm/litellm_core_utils/get_llm_provider_logic.py index fe7b10532d4..48840445c64 100644 --- a/litellm/litellm_core_utils/get_llm_provider_logic.py +++ b/litellm/litellm_core_utils/get_llm_provider_logic.py @@ -349,9 +349,9 @@ def get_llm_provider( elif endpoint == "https://api.meta.ai/v1": custom_llm_provider = "meta" dynamic_api_key = get_secret_str("META_API_KEY") - elif endpoint == "https://api.cognition.ai/v1": - custom_llm_provider = "cognition" - dynamic_api_key = get_secret_str("COGNITION_API_KEY") + elif (json_provider := JSONProviderRegistry.get_by_base_url(endpoint)) is not None: + custom_llm_provider = json_provider.slug + dynamic_api_key = get_secret_str(json_provider.api_key_env) if api_base is not None and not isinstance(api_base, str): raise Exception(f"api base needs to be a string. api_base={api_base}") diff --git a/litellm/llms/openai_like/json_loader.py b/litellm/llms/openai_like/json_loader.py index 38f3866cfc3..5cdaff90d24 100644 --- a/litellm/llms/openai_like/json_loader.py +++ b/litellm/llms/openai_like/json_loader.py @@ -65,6 +65,11 @@ class JSONProviderRegistry: """Check if a provider is defined via JSON""" return slug in cls._providers + @classmethod + def get_by_base_url(cls, base_url: str) -> SimpleProviderConfig | None: + """Get a provider configuration by its default base url""" + return next((provider for provider in cls._providers.values() if provider.base_url == base_url), None) + @classmethod def supports_responses_api(cls, slug: str) -> bool: """Check if a JSON provider supports the Responses API"""