From 2e0e1faf812ab6f3c758e3e8739706d588c7f977 Mon Sep 17 00:00:00 2001 From: Manolo Santos Date: Mon, 25 Aug 2025 22:41:37 +0200 Subject: [PATCH] Add DeepSeek to the list of providers (#49) --- internal/providers/configs/deepseek.json | 36 ++++++++++++++++++++++++ internal/providers/providers.go | 8 ++++++ 2 files changed, 44 insertions(+) create mode 100644 internal/providers/configs/deepseek.json diff --git a/internal/providers/configs/deepseek.json b/internal/providers/configs/deepseek.json new file mode 100644 index 0000000000000000000000000000000000000000..0d732e981bcd9ef0c5f902b78081028dc50e38f1 --- /dev/null +++ b/internal/providers/configs/deepseek.json @@ -0,0 +1,36 @@ +{ + "name": "DeepSeek", + "id": "deepseek", + "type": "openai", + "api_key": "$DEEPSEEK_API_KEY", + "api_endpoint": "https://api.deepseek.com/v1", + "default_large_model_id": "deepseek-reasoner", + "default_small_model_id": "deepseek-chat", + "models": [ + { + "id": "deepseek-chat", + "name": "DeepSeek-V3.1 (Non-thinking Mode)", + "cost_per_1m_in": 0.56, + "cost_per_1m_out": 1.68, + "cost_per_1m_in_cached": 0.07, + "cost_per_1m_out_cached": 1.68, + "context_window": 128000, + "default_max_tokens": 4000, + "can_reason": false, + "supports_attachments": false + }, + { + "id": "deepseek-reasoner", + "name": "DeepSeek-V3.1 (Thinking Mode)", + "cost_per_1m_in": 0.56, + "cost_per_1m_out": 1.68, + "cost_per_1m_in_cached": 0.07, + "cost_per_1m_out_cached": 1.68, + "context_window": 128000, + "default_max_tokens": 32000, + "can_reason": true, + "supports_attachments": false + } + ] +} + diff --git a/internal/providers/providers.go b/internal/providers/providers.go index 4d6af2278c4a44e309cacc8fac69d1edfebf4f6f..0953764dc2ec68d3c305199d0408b8164ba3d27e 100644 --- a/internal/providers/providers.go +++ b/internal/providers/providers.go @@ -48,6 +48,9 @@ var cerebrasConfig []byte //go:embed configs/venice.json var veniceConfig []byte +//go:embed configs/deepseek.json +var deepSeekConfig []byte + // ProviderFunc is a function that returns a Provider. type ProviderFunc func() catwalk.Provider @@ -65,6 +68,7 @@ var providerRegistry = []ProviderFunc{ lambdaProvider, cerebrasProvider, veniceProvider, + deepSeekProvider, } // GetAll returns all registered providers. @@ -136,3 +140,7 @@ func cerebrasProvider() catwalk.Provider { func veniceProvider() catwalk.Provider { return loadProviderFromConfig(veniceConfig) } + +func deepSeekProvider() catwalk.Provider { + return loadProviderFromConfig(deepSeekConfig) +}