mirror of
https://github.com/langflow-ai/langflow.git
synced 2026-07-26 15:07:25 +08:00
fix: hide Knowledge Ingestion component and rename Retrieval to Knowledge Base (#12054)
* fix: hide Knowledge Ingestion component and rename Retrieval to Knowledge Base Move ingestion component to deactivated folder so it's excluded from dynamic discovery. Rename KnowledgeRetrievalComponent to KnowledgeBaseComponent with display_name "Knowledge Base". Update all exports, component index, starter project, frontend sidebar filter, and tests. * fix: update test_ingestion import to use deactivated module path * fix: skip deactivated KnowledgeIngestion test suite * [autofix.ci] apply automated fixes * fix: standardize formatting and indentation in StepperModal component --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
@ -1526,7 +1526,7 @@
|
||||
"filename": "src/backend/base/langflow/initial_setup/starter_projects/Knowledge Ingestion.json",
|
||||
"hashed_secret": "c2dc8a1d72a39ee9da360d47dcadfd7a5560ee7f",
|
||||
"is_verified": false,
|
||||
"line_number": 93
|
||||
"line_number": 94
|
||||
}
|
||||
],
|
||||
"src/backend/base/langflow/initial_setup/starter_projects/Knowledge Retrieval.json": [
|
||||
@ -1536,13 +1536,6 @@
|
||||
"hashed_secret": "35be14614e83fe56d9b2ca1c0e2c2a74890b6889",
|
||||
"is_verified": false,
|
||||
"line_number": 255
|
||||
},
|
||||
{
|
||||
"type": "Hex High Entropy String",
|
||||
"filename": "src/backend/base/langflow/initial_setup/starter_projects/Knowledge Retrieval.json",
|
||||
"hashed_secret": "199d0299098f4097fd8926648d9977fe2d08fb15",
|
||||
"is_verified": false,
|
||||
"line_number": 534
|
||||
}
|
||||
],
|
||||
"src/backend/base/langflow/initial_setup/starter_projects/Market Research.json": [
|
||||
@ -6380,5 +6373,5 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"generated_at": "2026-03-03T17:44:43Z"
|
||||
"generated_at": "2026-03-04T23:52:18Z"
|
||||
}
|
||||
|
||||
@ -19,7 +19,7 @@ __all__: list[str] = list(_lfx_all)
|
||||
# Register redirected submodules in sys.modules for direct importlib.import_module() calls
|
||||
# This allows imports like: import langflow.components.knowledge_bases.ingestion
|
||||
_redirected_submodules = {
|
||||
"langflow.components.knowledge_bases.ingestion": "lfx.components.files_and_knowledge.ingestion",
|
||||
# "langflow.components.knowledge_bases.ingestion": "lfx.components.files_and_knowledge.ingestion",
|
||||
"langflow.components.knowledge_bases.retrieval": "lfx.components.files_and_knowledge.retrieval",
|
||||
}
|
||||
|
||||
@ -52,12 +52,6 @@ for old_path, new_path in _redirected_submodules.items():
|
||||
def __getattr__(attr_name: str) -> Any:
|
||||
"""Forward attribute access to lfx.components.files_and_knowledge."""
|
||||
# Handle submodule access for backwards compatibility
|
||||
if attr_name == "ingestion":
|
||||
from importlib import import_module
|
||||
|
||||
result = import_module("lfx.components.files_and_knowledge.ingestion")
|
||||
globals()[attr_name] = result
|
||||
return result
|
||||
if attr_name == "retrieval":
|
||||
from importlib import import_module
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -6,10 +6,12 @@ from langflow.schema.data import Data
|
||||
from langflow.schema.dataframe import DataFrame
|
||||
from langflow.schema.message import Message
|
||||
from lfx.base.knowledge_bases import get_knowledge_bases
|
||||
from lfx.components.knowledge_bases import KnowledgeIngestionComponent
|
||||
from lfx.components.deactivated.ingestion import KnowledgeIngestionComponent
|
||||
|
||||
from tests.base import ComponentTestBaseWithClient
|
||||
|
||||
pytestmark = pytest.mark.skip(reason="KnowledgeIngestionComponent is deactivated")
|
||||
|
||||
|
||||
class TestKnowledgeIngestionComponent(ComponentTestBaseWithClient):
|
||||
@pytest.fixture
|
||||
|
||||
@ -5,17 +5,17 @@ from unittest.mock import MagicMock, patch
|
||||
|
||||
import pytest
|
||||
from langflow.base.knowledge_bases.knowledge_base_utils import get_knowledge_bases
|
||||
from lfx.components.knowledge_bases.retrieval import KnowledgeRetrievalComponent
|
||||
from lfx.components.files_and_knowledge.retrieval import KnowledgeBaseComponent
|
||||
from pydantic import SecretStr
|
||||
|
||||
from tests.base import ComponentTestBaseWithClient
|
||||
|
||||
|
||||
class TestKnowledgeRetrievalComponent(ComponentTestBaseWithClient):
|
||||
class TestKnowledgeBaseComponent(ComponentTestBaseWithClient):
|
||||
@pytest.fixture
|
||||
def component_class(self):
|
||||
"""Return the component class to test."""
|
||||
return KnowledgeRetrievalComponent
|
||||
return KnowledgeBaseComponent
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def mock_knowledge_base_path(self, tmp_path):
|
||||
|
||||
@ -95,7 +95,7 @@ export function StepperModal({
|
||||
{/* Content */}
|
||||
<div
|
||||
className={cn(
|
||||
"flex-1 min-h-0 overflow-hidden px-4 py-4 border border-border m-4 rounded-lg",
|
||||
"flex-1 min-h-0 overflow-y-auto px-4 py-4 border border-border m-4 rounded-lg",
|
||||
contentClassName,
|
||||
)}
|
||||
>
|
||||
|
||||
@ -159,10 +159,7 @@ export function FlowSidebarComponent({ isLoading }: FlowSidebarComponentProps) {
|
||||
return rawData;
|
||||
}
|
||||
|
||||
const knowledgeComponentNames = [
|
||||
"KnowledgeIngestion",
|
||||
"KnowledgeRetrieval",
|
||||
];
|
||||
const knowledgeComponentNames = ["KnowledgeBase"];
|
||||
|
||||
// Create a deep copy to avoid mutating the original
|
||||
const filteredData = cloneDeep(rawData);
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1798,5 +1798,10 @@
|
||||
"versions": {
|
||||
"0.3.0": "efd180878996"
|
||||
}
|
||||
},
|
||||
"KnowledgeBase": {
|
||||
"versions": {
|
||||
"0.3.0": "54b54e5e574b"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -7,24 +7,21 @@ from lfx.components._importing import import_mod
|
||||
if TYPE_CHECKING:
|
||||
from lfx.components.files_and_knowledge.directory import DirectoryComponent
|
||||
from lfx.components.files_and_knowledge.file import FileComponent
|
||||
from lfx.components.files_and_knowledge.ingestion import KnowledgeIngestionComponent
|
||||
from lfx.components.files_and_knowledge.retrieval import KnowledgeRetrievalComponent
|
||||
from lfx.components.files_and_knowledge.retrieval import KnowledgeBaseComponent
|
||||
from lfx.components.files_and_knowledge.save_file import SaveToFileComponent
|
||||
|
||||
|
||||
_dynamic_imports = {
|
||||
"DirectoryComponent": "directory",
|
||||
"FileComponent": "file",
|
||||
"KnowledgeIngestionComponent": "ingestion",
|
||||
"KnowledgeRetrievalComponent": "retrieval",
|
||||
"KnowledgeBaseComponent": "retrieval",
|
||||
"SaveToFileComponent": "save_file",
|
||||
}
|
||||
|
||||
__all__ = [
|
||||
"DirectoryComponent",
|
||||
"FileComponent",
|
||||
"KnowledgeIngestionComponent",
|
||||
"KnowledgeRetrievalComponent",
|
||||
"KnowledgeBaseComponent",
|
||||
"SaveToFileComponent",
|
||||
]
|
||||
|
||||
|
||||
@ -36,11 +36,11 @@ def _get_knowledge_bases_root_path() -> Path:
|
||||
return _KNOWLEDGE_BASES_ROOT_PATH
|
||||
|
||||
|
||||
class KnowledgeRetrievalComponent(Component):
|
||||
display_name = "Knowledge Retrieval"
|
||||
class KnowledgeBaseComponent(Component):
|
||||
display_name = "Knowledge Base"
|
||||
description = "Search and retrieve data from knowledge."
|
||||
icon = "download"
|
||||
name = "KnowledgeRetrieval"
|
||||
name = "KnowledgeBase"
|
||||
|
||||
inputs = [
|
||||
DropdownInput(
|
||||
|
||||
@ -12,20 +12,17 @@ from typing import TYPE_CHECKING, Any
|
||||
from lfx.components._importing import import_mod
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from lfx.components.files_and_knowledge.ingestion import KnowledgeIngestionComponent
|
||||
from lfx.components.files_and_knowledge.retrieval import KnowledgeRetrievalComponent
|
||||
from lfx.components.files_and_knowledge.retrieval import KnowledgeBaseComponent
|
||||
|
||||
_dynamic_imports = {
|
||||
"KnowledgeIngestionComponent": "ingestion",
|
||||
"KnowledgeRetrievalComponent": "retrieval",
|
||||
"KnowledgeBaseComponent": "retrieval",
|
||||
}
|
||||
|
||||
__all__ = ["KnowledgeIngestionComponent", "KnowledgeRetrievalComponent"]
|
||||
__all__ = ["KnowledgeBaseComponent"]
|
||||
|
||||
# Register redirected submodules in sys.modules for direct importlib.import_module() calls
|
||||
# This allows imports like: import lfx.components.knowledge_bases.ingestion
|
||||
# This allows imports like: import lfx.components.knowledge_bases.retrieval
|
||||
_redirected_submodules = {
|
||||
"lfx.components.knowledge_bases.ingestion": "lfx.components.files_and_knowledge.ingestion",
|
||||
"lfx.components.knowledge_bases.retrieval": "lfx.components.files_and_knowledge.retrieval",
|
||||
}
|
||||
|
||||
@ -56,12 +53,6 @@ for old_path, new_path in _redirected_submodules.items():
|
||||
def __getattr__(attr_name: str) -> Any:
|
||||
"""Forward attribute access to files_and_knowledge components."""
|
||||
# Handle submodule access for backwards compatibility
|
||||
if attr_name == "ingestion":
|
||||
from importlib import import_module
|
||||
|
||||
result = import_module("lfx.components.files_and_knowledge.ingestion")
|
||||
globals()[attr_name] = result
|
||||
return result
|
||||
if attr_name == "retrieval":
|
||||
from importlib import import_module
|
||||
|
||||
|
||||
Reference in New Issue
Block a user