From f8b38ee162c62da027b616adc40d8557dd44f554 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Fri, 22 Sep 2023 11:00:57 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(process.py):=20rename=20lang?= =?UTF-8?q?chain=5Fobject=20variable=20to=20graph=20for=20better=20semanti?= =?UTF-8?q?cs=20=F0=9F=90=9B=20fix(process.py):=20rename=20langchain=5Fobj?= =?UTF-8?q?ect=20variable=20to=20built=5Fobject=20in=20generate=5Fresult?= =?UTF-8?q?=20function=20for=20better=20semantics=20=F0=9F=90=9B=20fix(pro?= =?UTF-8?q?cess.py):=20update=20session=20with=20graph=20instead=20of=20la?= =?UTF-8?q?ngchain=5Fobject=20to=20reflect=20changes=20=E2=9C=A8=20feat(ma?= =?UTF-8?q?nager.py):=20add=20reinitialize=5Fservices=20function=20to=20re?= =?UTF-8?q?initialize=20all=20services=20=E2=9C=A8=20feat(utils.py):=20ini?= =?UTF-8?q?tialize=20settings=20service=20if=20not=20already=20initialized?= =?UTF-8?q?=20before=20returning=20it?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/processing/process.py | 7 ++--- src/backend/langflow/services/manager.py | 31 ++++++++++++++++++++++ src/backend/langflow/services/utils.py | 9 ++++++- 3 files changed, 43 insertions(+), 4 deletions(-) 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":