Phase 7: Hoàn thiện Modular RAG Backend với FastAPI và Đa LLM Provider

This commit is contained in:
2026-05-08 07:30:30 +00:00
commit 26d1298cf6
51 changed files with 5360 additions and 0 deletions

26
chat/llm_factory.py Normal file
View 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()