diff --git a/src/backend/langflow/api/utils.py b/src/backend/langflow/api/utils.py index 0fb53e541..c519fffed 100644 --- a/src/backend/langflow/api/utils.py +++ b/src/backend/langflow/api/utils.py @@ -59,33 +59,6 @@ def build_input_keys_response(langchain_object, artifacts): return input_keys_response -def merge_nested_dicts(dict1, dict2): - for key, value in dict2.items(): - if isinstance(value, dict) and isinstance(dict1.get(key), dict): - dict1[key] = merge_nested_dicts(dict1[key], value) - else: - dict1[key] = value - return dict1 - - -def merge_nested_dicts_with_renaming(dict1, dict2): - for key, value in dict2.items(): - if ( - key in dict1 - and isinstance(value, dict) - and isinstance(dict1.get(key), dict) - ): - for sub_key, sub_value in value.items(): - if sub_key in dict1[key]: - new_key = get_new_key(dict1[key], sub_key) - dict1[key][new_key] = sub_value - else: - dict1[key][sub_key] = sub_value - else: - dict1[key] = value - return dict1 - - def get_new_key(dictionary, original_key): counter = 1 new_key = original_key + " (" + str(counter) + ")" diff --git a/src/backend/langflow/api/v1/endpoints.py b/src/backend/langflow/api/v1/endpoints.py index e4e22bf7d..274fe26ff 100644 --- a/src/backend/langflow/api/v1/endpoints.py +++ b/src/backend/langflow/api/v1/endpoints.py @@ -1,5 +1,5 @@ from http import HTTPStatus -from typing import Annotated, Any, Optional, Union +from typing import Annotated, Optional, Union from langflow.services.auth.utils import api_key_security, get_current_active_user @@ -21,12 +21,9 @@ from langflow.api.v1.schemas import ( CustomComponentCode, ) -from langflow.api.utils import merge_nested_dicts_with_renaming from langflow.interface.types import ( - build_langchain_types_dict, build_langchain_template_custom_component, - build_langchain_custom_component_list_from_path, ) from langflow.services.utils import get_session @@ -52,43 +49,13 @@ router = APIRouter(tags=["Base"]) def get_all( settings_service=Depends(get_settings_service), ): + from langflow.interface.types import get_all_types_dict + logger.debug("Building langchain types dict") - native_components = build_langchain_types_dict() - # custom_components is a list of dicts - # need to merge all the keys into one dict - custom_components_from_file: dict[str, Any] = {} - if settings_service.settings.COMPONENTS_PATH: - logger.info( - f"Building custom components from {settings_service.settings.COMPONENTS_PATH}" - ) - - custom_component_dicts = [] - processed_paths = [] - for path in settings_service.settings.COMPONENTS_PATH: - if str(path) in processed_paths: - continue - custom_component_dict = build_langchain_custom_component_list_from_path( - str(path) - ) - custom_component_dicts.append(custom_component_dict) - processed_paths.append(str(path)) - - logger.info(f"Loading {len(custom_component_dicts)} category(ies)") - for custom_component_dict in custom_component_dicts: - # custom_component_dict is a dict of dicts - if not custom_component_dict: - continue - category = list(custom_component_dict.keys())[0] - logger.info( - f"Loading {len(custom_component_dict[category])} component(s) from category {category}" - ) - custom_components_from_file = merge_nested_dicts_with_renaming( - custom_components_from_file, custom_component_dict - ) - - return merge_nested_dicts_with_renaming( - native_components, custom_components_from_file - ) + try: + return get_all_types_dict(settings_service) + except Exception as exc: + raise HTTPException(status_code=500, detail=str(exc)) from exc # For backwards compatibility we will keep the old endpoint