fix: enable model discovery for the custom_openai provider

get_valid_models(check_provider_endpoint=True) discovers a provider's models via
ProviderConfigManager.get_provider_model_info(provider).get_models(...), but that
method returned None for custom_openai, so the discovery branch was skipped and
the /v1/models endpoint was never queried for an OpenAI-compatible custom
provider. Return OpenAIGPTConfig for CUSTOM_OPENAI, the same config used for
openai, so custom_openai discovers models like openai does.
This commit is contained in:
Aditya Aggarwal 2026-06-28 17:33:55 +05:30
parent 956d5177d1
commit 1ca87aa4cc
2 changed files with 32 additions and 0 deletions

View file

@ -8358,6 +8358,8 @@ class ProviderConfigManager:
return litellm.FireworksAIConfig()
elif LlmProviders.OPENAI == provider:
return litellm.OpenAIGPTConfig()
elif LlmProviders.CUSTOM_OPENAI == provider:
return litellm.OpenAIGPTConfig()
elif LlmProviders.GEMINI == provider:
return litellm.GeminiModelInfo()
elif LlmProviders.VERTEX_AI == provider:

View file

@ -1656,6 +1656,36 @@ def test_get_valid_models_openai_proxy(monkeypatch):
assert "litellm_proxy/gpt-5.5" in valid_models
def test_get_valid_models_custom_openai(monkeypatch):
from litellm.utils import get_valid_models
import litellm
mock_response_data = {
"object": "list",
"data": [
{
"id": "my-custom-model",
"object": "model",
"created": 1686935002,
"owned_by": "organization-owner",
},
],
}
mock_response = MagicMock()
mock_response.status_code = 200
mock_response.json.return_value = mock_response_data
with patch.object(litellm.module_level_client, "get", return_value=mock_response):
valid_models = get_valid_models(
check_provider_endpoint=True,
custom_llm_provider="custom_openai",
api_key="sk-1234",
api_base="https://my-openai-compatible-endpoint/v1",
)
assert "my-custom-model" in valid_models
def test_get_valid_models_fireworks_ai(monkeypatch):
from litellm.utils import get_valid_models
import litellm