27 lines
934 B
Python
27 lines
934 B
Python
import logging
|
|
from core.config import settings
|
|
from .llm_providers.base_llm import BaseLLMProvider
|
|
from .llm_providers.gemini_llm import GeminiLLM
|
|
from .llm_providers.groq_llm import GroqLLM
|
|
from .llm_providers.local_llm import LocalLLM
|
|
|
|
logger = logging.getLogger("LLMFactory")
|
|
|
|
class LLMFactory:
|
|
"""
|
|
Mẫu thiết kế Factory (Nhà máy) để tự động nạp Provider tuỳ theo cấu hình trong .env
|
|
"""
|
|
@staticmethod
|
|
def get_provider() -> BaseLLMProvider:
|
|
provider_name = settings.llm_provider.lower().strip()
|
|
|
|
if provider_name == "gemini":
|
|
return GeminiLLM()
|
|
elif provider_name == "groq":
|
|
return GroqLLM()
|
|
elif provider_name == "local":
|
|
return LocalLLM()
|
|
else:
|
|
logger.warning(f"Provider '{provider_name}' không được hỗ trợ. Khởi động mặc định: GeminiLLM")
|
|
return GeminiLLM()
|