diff --git a/models.py b/models.py index e1cd36539..28819603b 100644 --- a/models.py +++ b/models.py @@ -45,6 +45,7 @@ class ModelType(Enum): class ModelProvider(Enum): ANTHROPIC = "Anthropic" + DEEPSEEK = "DeepSeek" HUGGINGFACE = "HuggingFace" GOOGLE = "Google" GROQ = "Groq" @@ -309,6 +310,24 @@ def get_groq_chat( return ChatGroq(model_name=model_name, temperature=temperature, api_key=api_key, **kwargs) # type: ignore +# DeepSeek models +def get_deepseek_chat( + model_name: str, + api_key=None, + temperature=DEFAULT_TEMPERATURE, + base_url=None, + **kwargs, +): + if not api_key: + api_key = get_api_key("deepseek") + if not base_url: + base_url = ( + dotenv.get_dotenv_value("DEEPSEEK_BASE_URL") + or "https://api.deepseek.com" + ) + return ChatOpenAI(api_key=api_key, model=model_name, temperature=temperature, base_url=base_url, **kwargs) # type: ignore + + # OpenRouter models def get_openrouter_chat( model_name: str, diff --git a/python/helpers/settings.py b/python/helpers/settings.py index 65bcb5b85..6995cf484 100644 --- a/python/helpers/settings.py +++ b/python/helpers/settings.py @@ -509,6 +509,9 @@ def convert_out(settings: Settings) -> SettingsOutput: ) api_keys_fields.append(_get_api_key_field(settings, "groq", "Groq API Key")) api_keys_fields.append(_get_api_key_field(settings, "google", "Google API Key")) + api_keys_fields.append( + _get_api_key_field(settings, "deepseek", "DeepSeek API Key") + ) api_keys_fields.append( _get_api_key_field(settings, "openrouter", "OpenRouter API Key") )