diff --git a/src/backend/base/langflow/interface/components.py b/src/backend/base/langflow/interface/components.py index 9c52c8fb7..0b5cda0cc 100644 --- a/src/backend/base/langflow/interface/components.py +++ b/src/backend/base/langflow/interface/components.py @@ -10,6 +10,7 @@ from typing import TYPE_CHECKING, Any from loguru import logger from langflow.custom.utils import abuild_custom_components, create_component_template +from langflow.services.settings.base import BASE_COMPONENTS_PATH if TYPE_CHECKING: from langflow.services.settings.service import SettingsService @@ -162,22 +163,29 @@ async def get_and_cache_all_types_dict( logger.debug("Building components cache") langflow_components = await import_langflow_components() - + component_cache.all_types_dict = {} if settings_service.settings.lazy_load_components: # Partial loading mode - just load component metadata logger.debug("Using partial component loading") component_cache.all_types_dict = await aget_component_metadata(settings_service.settings.components_path) - else: + elif ( + settings_service.settings.components_path + and BASE_COMPONENTS_PATH not in settings_service.settings.components_path + ): # Traditional full loading component_cache.all_types_dict = await aget_all_types_dict(settings_service.settings.components_path) # Log custom component loading stats - component_count = sum(len(comps) for comps in component_cache.all_types_dict.get("components", {}).values()) + components_dict = component_cache.all_types_dict or {} + component_count = sum(len(comps) for comps in components_dict.get("components", {}).values()) if component_count > 0 and settings_service.settings.components_path: logger.debug(f"Built {component_count} custom components from {settings_service.settings.components_path}") # merge the dicts - component_cache.all_types_dict = {**langflow_components["components"], **component_cache.all_types_dict} + component_cache.all_types_dict = { + **langflow_components["components"], + **components_dict, + } component_count = sum(len(comps) for comps in component_cache.all_types_dict.values()) logger.debug(f"Loaded {component_count} components") return component_cache.all_types_dict