diff --git a/src/backend/langflow/__main__.py b/src/backend/langflow/__main__.py index 43247b10f..c86e9863f 100644 --- a/src/backend/langflow/__main__.py +++ b/src/backend/langflow/__main__.py @@ -1,6 +1,7 @@ import sys import time import httpx +from langflow.services.manager import initialize_settings_manager from langflow.services.utils import get_settings_manager from langflow.utils.util import get_number_of_workers from multiprocess import Process # type: ignore @@ -30,6 +31,7 @@ def update_settings( """Update the settings from a config file.""" # Check for database_url in the environment variables + initialize_settings_manager() settings_manager = get_settings_manager() if config: logger.debug(f"Loading settings from {config}") diff --git a/src/backend/langflow/services/manager.py b/src/backend/langflow/services/manager.py index 1606b3a82..f05102d0e 100644 --- a/src/backend/langflow/services/manager.py +++ b/src/backend/langflow/services/manager.py @@ -18,7 +18,8 @@ class ServiceManager: """ Registers a new factory. """ - self.factories[service_factory.service_class.name] = service_factory + if service_factory.service_class.name not in self.factories: + self.factories[service_factory.service_class.name] = service_factory def get(self, service_name: ServiceType): """ @@ -85,3 +86,12 @@ def initialize_services(): service_manager.register_factory(database_factory.DatabaseManagerFactory()) service_manager.register_factory(cache_factory.CacheManagerFactory()) service_manager.register_factory(chat_factory.ChatManagerFactory()) + + +def initialize_settings_manager(): + """ + Initialize the settings manager. + """ + from langflow.services.settings import factory as settings_factory + + service_manager.register_factory(settings_factory.SettingsManagerFactory())