🐛 fix(__main__.py): import and call initialize_settings_manager() to ensure settings manager is initialized

 feat(manager.py): add check to prevent duplicate registration of service factories in ServiceManager class
 feat(manager.py): add initialize_settings_manager() function to initialize the settings manager
This commit is contained in:
Gabriel Luiz Freitas Almeida 2023-08-17 08:23:50 -03:00
commit e210fc316a
2 changed files with 13 additions and 1 deletions

View file

@ -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}")

View file

@ -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())