Refactor SettingsServiceFactory to use SettingsService.initialize()

This commit is contained in:
ogabrielluiz 2024-06-17 08:13:29 -03:00
commit e4f85edb62
2 changed files with 4 additions and 24 deletions

View file

@ -1,5 +1,3 @@
from pathlib import Path
from langflow.services.factory import ServiceFactory from langflow.services.factory import ServiceFactory
from langflow.services.settings.service import SettingsService from langflow.services.settings.service import SettingsService
@ -10,5 +8,5 @@ class SettingsServiceFactory(ServiceFactory):
def create(self): def create(self):
# Here you would have logic to create and configure a SettingsService # Here you would have logic to create and configure a SettingsService
langflow_dir = Path(__file__).parent.parent.parent
return SettingsService.load_settings_from_yaml(str(langflow_dir / "config.yaml")) return SettingsService.initialize()

View file

@ -1,8 +1,3 @@
import os
import yaml
from loguru import logger
from langflow.services.base import Service from langflow.services.base import Service
from langflow.services.settings.auth import AuthSettings from langflow.services.settings.auth import AuthSettings
from langflow.services.settings.base import Settings from langflow.services.settings.base import Settings
@ -17,23 +12,10 @@ class SettingsService(Service):
self.auth_settings: AuthSettings = auth_settings self.auth_settings: AuthSettings = auth_settings
@classmethod @classmethod
def load_settings_from_yaml(cls, file_path: str) -> "SettingsService": def initialize(cls) -> "SettingsService":
# Check if a string is a valid path or a file name # Check if a string is a valid path or a file name
if "/" not in file_path:
# Get current path
current_path = os.path.dirname(os.path.abspath(__file__))
file_path = os.path.join(current_path, file_path) settings = Settings()
with open(file_path, "r") as f:
settings_dict = yaml.safe_load(f)
for key in settings_dict:
if key not in Settings.model_fields.keys():
logger.warning(f"Key {key} not found in settings")
logger.debug(f"Loading {len(settings_dict[key])} {key} from {file_path}")
settings = Settings(**settings_dict)
if not settings.config_dir: if not settings.config_dir:
raise ValueError("CONFIG_DIR must be set in settings") raise ValueError("CONFIG_DIR must be set in settings")