Tai Truong
fix readme
d202ada
from langflow.template.field.base import Input
from langflow.template.frontend_node.base import FrontendNode
from langflow.template.template.base import Template
DEFAULT_CUSTOM_COMPONENT_CODE = """from langflow.custom import CustomComponent
from typing import Optional, List, Dict, Union
from langflow.field_typing import (
AgentExecutor,
BaseChatMemory,
BaseLanguageModel,
BaseLLM,
BaseLoader,
BaseMemory,
BasePromptTemplate,
BaseRetriever,
Callable,
Chain,
ChatPromptTemplate,
Data,
Document,
Embeddings,
NestedDict,
Object,
PromptTemplate,
TextSplitter,
Tool,
VectorStore,
)
class Component(CustomComponent):
display_name: str = "Custom Component"
description: str = "Create any custom component you want!"
def build_config(self):
return {"param": {"display_name": "Parameter"}}
def build(self, param: Data) -> Data:
return param
"""
class CustomComponentFrontendNode(FrontendNode):
_format_template: bool = False
name: str = "CustomComponent"
display_name: str | None = "CustomComponent"
beta: bool = False
legacy: bool = False
template: Template = Template(
type_name="CustomComponent",
fields=[
Input(
field_type="code",
required=True,
placeholder="",
is_list=False,
show=True,
value=DEFAULT_CUSTOM_COMPONENT_CODE,
name="code",
advanced=False,
dynamic=True,
)
],
)
description: str | None = None
base_classes: list[str] = []
class ComponentFrontendNode(FrontendNode):
_format_template: bool = False
name: str = "Component"
display_name: str | None = "Component"
beta: bool = False
legacy: bool = False
template: Template = Template(
type_name="Component",
fields=[
Input(
field_type="code",
required=True,
placeholder="",
is_list=False,
show=True,
value=DEFAULT_CUSTOM_COMPONENT_CODE,
name="code",
advanced=False,
dynamic=True,
)
],
)
description: str | None = None
base_classes: list[str] = []