diff --git a/studio/backend/core/inference/providers.py b/studio/backend/core/inference/providers.py index 90d83bc441..654d9672c1 100644 --- a/studio/backend/core/inference/providers.py +++ b/studio/backend/core/inference/providers.py @@ -140,6 +140,20 @@ PROVIDER_REGISTRY: dict[str, dict[str, Any]] = { "openai_compatible": False, "notes": "Native Anthropic Messages API. Uses x-api-key header and /v1/messages endpoint with SSE translation.", }, + "deepseek": { + "display_name": "DeepSeek", + "base_url": "https://api.deepseek.com/v1", + "default_models": [ + "deepseek-chat", + "deepseek-reasoner", + ], + "supports_streaming": True, + "supports_vision": False, + "supports_tool_calling": True, + "auth_header": "Authorization", + "auth_prefix": "Bearer ", + "notes": "OpenAI-compatible API. deepseek-chat = V3, deepseek-reasoner = R1 thinking mode.", + }, "openrouter": { "display_name": "OpenRouter", "base_url": "https://openrouter.ai/api/v1", diff --git a/studio/backend/tests/test_providers_api.py b/studio/backend/tests/test_providers_api.py index 93bd363c92..9482c14c69 100644 --- a/studio/backend/tests/test_providers_api.py +++ b/studio/backend/tests/test_providers_api.py @@ -49,7 +49,8 @@ _PROVIDER_CONFIGS: dict[str, tuple[str, str]] = { "fireworks": ("FIREWORKS_API_KEY", "accounts/fireworks/models/llama4-maverick-instruct-basic"), "perplexity": ("PERPLEXITY_API_KEY", "sonar"), "openrouter": ("OPENROUTER_API_KEY", "openai/gpt-4o-mini"), - "anthropic": ("ANTHROPIC_API_KEY", "claude-haiku-4-5"), + "anthropic": ("ANTHROPIC_API_KEY", "claude-haiku-4-5"), + "deepseek": ("DEEPSEEK_API_KEY", "deepseek-chat"), } PROVIDER_KEYS: dict[str, str] = { @@ -241,7 +242,7 @@ class TestRegistry: ) assert resp.status_code == 200, f"Registry failed: {resp.text}" providers = resp.json() - assert len(providers) == 9, f"Expected 9 providers, got {len(providers)}: {providers}" + assert len(providers) == 10, f"Expected 10 providers, got {len(providers)}: {providers}" print(f"\n {'Provider':<12} {'Base URL'}") print(f" {'-'*12} {'-'*45}") for p in providers: