from enum import Enum from langchain_anthropic import ChatAnthropic from langchain_deepseek import ChatDeepSeek from naliiabot.bot.exceptions import NotFoundProviderError from dotenv import load_dotenv load_dotenv() class LLMProvider(str, Enum): """Supported Providers.""" ANTHROPIC = "anthropic" DEEPSEEK = "deepseek" class LLMFactory: def __init__(self, provider): self.provider = provider def get_model(self): model = None if self.provider == LLMProvider.ANTHROPIC: model = self._create_anthropic() elif self.provider == LLMProvider.DEEPSEEK: model = self._create_deepseek() else: raise NotFoundProviderError( f"{self.provider.upper()} Not Provider Found" ) return model def _create_anthropic(self): model_name = "claude-sonnet-4-5-20250929" model = ChatAnthropic( model=model_name ) return model def _create_deepseek(self): model_name = "deepseek-chat" model = ChatDeepSeek( model=model_name ) return model