diff --git a/edsl/enums.py b/edsl/enums.py index 66727c0d..9e7b92c2 100644 --- a/edsl/enums.py +++ b/edsl/enums.py @@ -66,6 +66,7 @@ class InferenceServiceType(EnumWithChecks): MISTRAL = "mistral" TOGETHER = "together" PERPLEXITY = "perplexity" + DEEPSEEK = "deepseek" # unavoidable violation of the DRY principle but it is necessary @@ -84,6 +85,7 @@ class InferenceServiceType(EnumWithChecks): "mistral", "together", "perplexity", + "deepseek", ] available_models_urls = { @@ -107,6 +109,7 @@ class InferenceServiceType(EnumWithChecks): InferenceServiceType.MISTRAL.value: "MISTRAL_API_KEY", InferenceServiceType.TOGETHER.value: "TOGETHER_API_KEY", InferenceServiceType.PERPLEXITY.value: "PERPLEXITY_API_KEY", + InferenceServiceType.DEEPSEEK.value: "DEEPSEEK_API_KEY", } diff --git a/edsl/inference_services/DeepSeekService.py b/edsl/inference_services/DeepSeekService.py new file mode 100644 index 00000000..a6589b1e --- /dev/null +++ b/edsl/inference_services/DeepSeekService.py @@ -0,0 +1,18 @@ +import aiohttp +import json +import requests +from typing import Any, List + +# from edsl.inference_services.InferenceServiceABC import InferenceServiceABC +from edsl.language_models import LanguageModel + +from edsl.inference_services.OpenAIService import OpenAIService + + +class DeepSeekService(OpenAIService): + """DeepInfra service class.""" + + _inference_service_ = "deepseek" + _env_key_name_ = "DEEPSEEK_API_KEY" + _base_url_ = "https://api.deepseek.com" + _models_list_cache: List[str] = [] diff --git a/edsl/inference_services/registry.py b/edsl/inference_services/registry.py index c82f0419..7c4ebc75 100644 --- a/edsl/inference_services/registry.py +++ b/edsl/inference_services/registry.py @@ -13,6 +13,7 @@ from edsl.inference_services.TestService import TestService from edsl.inference_services.TogetherAIService import TogetherAIService from edsl.inference_services.PerplexityService import PerplexityService +from edsl.inference_services.DeepSeekService import DeepSeekService try: from edsl.inference_services.MistralAIService import MistralAIService @@ -33,6 +34,7 @@ TestService, TogetherAIService, PerplexityService, + DeepSeekService, ] if mistral_available: