diff --git a/src/backend/langflow/processing/process.py b/src/backend/langflow/processing/process.py index e348743ec..b68711828 100644 --- a/src/backend/langflow/processing/process.py +++ b/src/backend/langflow/processing/process.py @@ -166,12 +166,13 @@ async def process_graph_cached( session_id=session_id, data_graph=data_graph ) # Load the graph using SessionService - langchain_object, artifacts = session_service.load_session(session_id, data_graph) + graph, artifacts = session_service.load_session(session_id, data_graph) + built_object = graph.build() processed_inputs = process_inputs(inputs, artifacts) - result = generate_result(langchain_object, processed_inputs) + result = generate_result(built_object, processed_inputs) # langchain_object is now updated with the new memory # we need to update the cache with the updated langchain_object - session_service.update_session(session_id, (langchain_object, artifacts)) + session_service.update_session(session_id, (graph, artifacts)) return Result(result=result, session_id=session_id) diff --git a/src/backend/langflow/services/manager.py b/src/backend/langflow/services/manager.py index d7215a4cc..59c9aaf8e 100644 --- a/src/backend/langflow/services/manager.py +++ b/src/backend/langflow/services/manager.py @@ -143,6 +143,37 @@ def initialize_services(): service_service.get(ServiceType.DATABASE_MANAGER) +def reinitialize_services(): + """ + Reinitialize all the services needed. + """ + from langflow.services.database import factory as database_factory + from langflow.services.cache import factory as cache_factory + from langflow.services.chat import factory as chat_factory + from langflow.services.settings import factory as settings_factory + from langflow.services.session import factory as session_service_factory + from langflow.services.auth import factory as auth_factory + from langflow.services.task import factory as task_factory + + service_service.update(ServiceType.SETTINGS_MANAGER) + service_service.update(ServiceType.DATABASE_MANAGER) + service_service.update(ServiceType.CACHE_MANAGER) + service_service.update(ServiceType.CHAT_MANAGER) + service_service.update(ServiceType.SESSION_MANAGER) + service_service.update(ServiceType.AUTH_MANAGER) + service_service.update(ServiceType.TASK_MANAGER) + + # Test cache connection + service_service.get(ServiceType.CACHE_MANAGER) + # Test database connection + service_service.get(ServiceType.DATABASE_MANAGER) + + # Test cache connection + service_service.get(ServiceType.CACHE_MANAGER) + # Test database connection + service_service.get(ServiceType.DATABASE_MANAGER) + + def initialize_settings_service(): """ Initialize the settings manager. diff --git a/src/backend/langflow/services/utils.py b/src/backend/langflow/services/utils.py index aea973e72..edcaa7fe6 100644 --- a/src/backend/langflow/services/utils.py +++ b/src/backend/langflow/services/utils.py @@ -13,7 +13,14 @@ if TYPE_CHECKING: def get_settings_service() -> "SettingsService": - return service_service.get(ServiceType.SETTINGS_MANAGER) + try: + return service_service.get(ServiceType.SETTINGS_MANAGER) + except ValueError: + # initialize settings service + from langflow.services.manager import initialize_settings_service + + initialize_settings_service() + return service_service.get(ServiceType.SETTINGS_MANAGER) def get_db_service() -> "DatabaseService":