diff --git a/src/backend/langflow/template/frontend_node/base.py b/src/backend/langflow/template/frontend_node/base.py index 47c8c53f6..55773db72 100644 --- a/src/backend/langflow/template/frontend_node/base.py +++ b/src/backend/langflow/template/frontend_node/base.py @@ -18,6 +18,7 @@ class FrontendNode(BaseModel): name: str = "" display_name: str = "" custom_fields: List[str] = [] + output_types: List[str] = [] def process_base_classes(self) -> None: """Removes unwanted base classes from the list of base classes.""" @@ -36,6 +37,7 @@ class FrontendNode(BaseModel): "base_classes": self.base_classes, "display_name": self.display_name or self.name, "custom_fields": self.custom_fields, + "output_types": self.output_types, }, } diff --git a/src/backend/langflow/template/frontend_node/documentloaders.py b/src/backend/langflow/template/frontend_node/documentloaders.py index 501aa361e..ff9cac29f 100644 --- a/src/backend/langflow/template/frontend_node/documentloaders.py +++ b/src/backend/langflow/template/frontend_node/documentloaders.py @@ -19,6 +19,10 @@ def build_file_field( class DocumentLoaderFrontNode(FrontendNode): + def add_extra_base_classes(self) -> None: + self.base_classes = ["Document"] + self.output_types = ["Document"] + file_path_templates = { "AirbyteJSONLoader": build_file_field(suffixes=[".json"], fileTypes=["json"]), "CoNLLULoader": build_file_field(suffixes=[".csv"], fileTypes=["csv"]), diff --git a/src/backend/langflow/template/frontend_node/textsplitters.py b/src/backend/langflow/template/frontend_node/textsplitters.py index 03880379d..7e5f7a820 100644 --- a/src/backend/langflow/template/frontend_node/textsplitters.py +++ b/src/backend/langflow/template/frontend_node/textsplitters.py @@ -3,10 +3,14 @@ from langflow.template.frontend_node.base import FrontendNode class TextSplittersFrontendNode(FrontendNode): + def add_extra_base_classes(self) -> None: + self.base_classes = ["Document"] + self.output_types = ["Document"] + def add_extra_fields(self) -> None: self.template.add_field( TemplateField( - field_type="BaseLoader", + field_type="Document", required=True, show=True, name="documents", diff --git a/src/backend/langflow/template/frontend_node/vectorstores.py b/src/backend/langflow/template/frontend_node/vectorstores.py index 01b6bfe53..9903b13c2 100644 --- a/src/backend/langflow/template/frontend_node/vectorstores.py +++ b/src/backend/langflow/template/frontend_node/vectorstores.py @@ -252,7 +252,7 @@ class VectorStoreFrontendNode(FrontendNode): # when instantiating the vectorstores field.name = "documents" - field.field_type = "TextSplitter" + field.field_type = "Document" field.display_name = "Documents" field.required = False field.show = True diff --git a/src/frontend/src/types/api/index.ts b/src/frontend/src/types/api/index.ts index d54a8165c..91a3dcbc2 100644 --- a/src/frontend/src/types/api/index.ts +++ b/src/frontend/src/types/api/index.ts @@ -13,6 +13,7 @@ export type APIClassType = { template: APITemplateType; display_name: string; input_types?: Array; + output_types?: Array; [key: string]: Array | string | APITemplateType; };