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 )