🔧 fix(base.py): add output_types field to FrontendNode class to support specifying output types
🔧 fix(documentloaders.py): add_extra_base_classes method to set base_classes and output_types for DocumentLoaderFrontNode 🔧 fix(textsplitters.py): add_extra_base_classes method to set base_classes and output_types for TextSplittersFrontendNode 🔧 fix(vectorstores.py): change field_type to "Document" for documents field in VectorStoreFrontendNode 🔧 fix(index.ts): add output_types field to APIClassType interface The changes were made to add support for specifying output types in the FrontendNode class and its subclasses. This allows for more flexibility in defining the behavior and capabilities of the frontend nodes in the application.
This commit is contained in:
parent
d371a08d9e
commit
db17aceb3b
5 changed files with 13 additions and 2 deletions
|
|
@ -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,
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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"]),
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ export type APIClassType = {
|
|||
template: APITemplateType;
|
||||
display_name: string;
|
||||
input_types?: Array<string>;
|
||||
output_types?: Array<string>;
|
||||
[key: string]: Array<string> | string | APITemplateType;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue