add support to DeepSeek (#297)
* Github sponsors * add support to DeepSeek models --------- Co-authored-by: frdel <38891707+frdel@users.noreply.github.com>
Bernardo Ramos committed
Jan 14, 2025 at 13:39 UTC
66dd4dab1012c72a862dc4f13c6bc92cdc362cdc
2 files changed
+22
models.py
+19
@@ -45,6 +45,7 @@ class ModelType(Enum):
45
46
class ModelProvider(Enum):
47
ANTHROPIC = "Anthropic"
48
+ DEEPSEEK = "DeepSeek"
49
HUGGINGFACE = "HuggingFace"
50
GOOGLE = "Google"
51
GROQ = "Groq"
@@ -309,6 +310,24 @@ def get_groq_chat(
310
return ChatGroq(model_name=model_name, temperature=temperature, api_key=api_key, **kwargs) # type: ignore
311
312
313
+# DeepSeek models
314
+def get_deepseek_chat(
315
+ model_name: str,
316
+ api_key=None,
317
+ temperature=DEFAULT_TEMPERATURE,
318
+ base_url=None,
319
+ **kwargs,
320
+):
321
+ if not api_key:
322
+ api_key = get_api_key("deepseek")
323
+ if not base_url:
324
+ base_url = (
325
+ dotenv.get_dotenv_value("DEEPSEEK_BASE_URL")
326
+ or "https://api.deepseek.com"
327
+ )
328
+ return ChatOpenAI(api_key=api_key, model=model_name, temperature=temperature, base_url=base_url, **kwargs) # type: ignore
329
+
330
+
331
# OpenRouter models
332
def get_openrouter_chat(
333
model_name: str,
python/helpers/settings.py
+3
@@ -509,6 +509,9 @@ def convert_out(settings: Settings) -> SettingsOutput:
509
)
510
api_keys_fields.append(_get_api_key_field(settings, "groq", "Groq API Key"))
511
api_keys_fields.append(_get_api_key_field(settings, "google", "Google API Key"))
512
+ api_keys_fields.append(
513
+ _get_api_key_field(settings, "deepseek", "DeepSeek API Key")
514
+ )
515
api_keys_fields.append(
516
_get_api_key_field(settings, "openrouter", "OpenRouter API Key")
517
)