Phase 7: Hoàn thiện Modular RAG Backend với FastAPI và Đa LLM Provider
This commit is contained in:
26
chat/llm_factory.py
Normal file
26
chat/llm_factory.py
Normal file
@@ -0,0 +1,26 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user