diff --git a/api/api_schemas.py b/api/api_schemas.py index c123ae2..b91c5a3 100644 --- a/api/api_schemas.py +++ b/api/api_schemas.py @@ -96,6 +96,8 @@ class BlockInfo(BaseModel): slots: List[Parameter] inports: List[Parameter] outport: str # the output class name + description: Optional[str] + examples: Optional[str] class ApplicationBlocksResponse(APIModel): diff --git a/api/application.py b/api/application.py index 5f65c2e..0cd7bfd 100644 --- a/api/application.py +++ b/api/application.py @@ -147,6 +147,8 @@ def blocks(self) -> ApplicationBlocksResponse: slots=self.resolve_params(self.resolver.slots(name)), inports=self.resolve_params(self.resolver.inports(name)), outport=self.resolver.relookup(self.resolver.outport(name)), + description=self.resolver.lookup(name, "description"), + examples=self.resolver.lookup(name, "examples"), ) ) diff --git a/blocks/llm.py b/blocks/llm.py index 49b16a4..d27f5c0 100644 --- a/blocks/llm.py +++ b/blocks/llm.py @@ -10,7 +10,13 @@ from .base import BaseBlock -@block(name="LLM", kind="llm") +@block( + name="LLM", + kind="llm", + description="""test +test new line""", + examples="""this is a text""", +) class LLMChain(BaseBlock): """ LLMChain render template with given text and pass the result to llm model. diff --git a/resolver/resolver.py b/resolver/resolver.py index 935042e..93e26a3 100644 --- a/resolver/resolver.py +++ b/resolver/resolver.py @@ -196,13 +196,21 @@ def outport(self, name: str) -> Optional[type]: return signature.return_annotation -def block(name: str, kind: str, alias: str = None): +def block( + name: str, + kind: str, + alias: Optional[str] = None, + description: Optional[str] = None, + examples: Optional[str] = None, +): """ Decorator for registering a block class. Args: name: The name of the block. kind: The kind of the block (e.g., 'input', 'output'). alias: An optional alias for the block name. + description: The description of the block. + examples: Examples about the usage of the block. Returns: The decorated class. """ @@ -215,6 +223,8 @@ def decorator(cls): "category": "block", "dir": kind, "class": cls, + "description": description, + "examples": examples, } ) return cls