From 9e4a4f4c81995ed2bda4041c168f1e1c636b7467 Mon Sep 17 00:00:00 2001 From: freedeaths Date: Wed, 10 Apr 2024 13:34:21 +0800 Subject: [PATCH 1/3] add description and examples fields for block and add a example in llm --- api/api_schemas.py | 2 ++ api/application.py | 2 ++ blocks/llm.py | 3 ++- resolver/resolver.py | 6 +++++- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/api/api_schemas.py b/api/api_schemas.py index c123ae2..f2795a8 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: str + examples: 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..fa2896a 100644 --- a/blocks/llm.py +++ b/blocks/llm.py @@ -10,7 +10,8 @@ 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..a7f0bb4 100644 --- a/resolver/resolver.py +++ b/resolver/resolver.py @@ -196,13 +196,15 @@ 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: str = None, description: str = "", examples: str = ""): """ 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 +217,8 @@ def decorator(cls): "category": "block", "dir": kind, "class": cls, + "description": description, + "examples": examples, } ) return cls From d4cba40109e4885d759d4cc59385eeb4804a23d1 Mon Sep 17 00:00:00 2001 From: freedeaths Date: Wed, 10 Apr 2024 13:36:52 +0800 Subject: [PATCH 2/3] fmt --- blocks/llm.py | 9 +++++++-- resolver/resolver.py | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/blocks/llm.py b/blocks/llm.py index fa2896a..d27f5c0 100644 --- a/blocks/llm.py +++ b/blocks/llm.py @@ -10,8 +10,13 @@ from .base import BaseBlock -@block(name="LLM", kind="llm", description="""test -test new line""", examples="""this is a text""") +@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 a7f0bb4..1e6a7b4 100644 --- a/resolver/resolver.py +++ b/resolver/resolver.py @@ -196,7 +196,9 @@ def outport(self, name: str) -> Optional[type]: return signature.return_annotation -def block(name: str, kind: str, alias: str = None, description: str = "", examples: str = ""): +def block( + name: str, kind: str, alias: str = None, description: str = "", examples: str = "" +): """ Decorator for registering a block class. Args: From ce7bcaefbc27b1475367bffeb1ad0534912caa5d Mon Sep 17 00:00:00 2001 From: freedeaths Date: Wed, 10 Apr 2024 14:02:25 +0800 Subject: [PATCH 3/3] consistency --- api/api_schemas.py | 4 ++-- resolver/resolver.py | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/api/api_schemas.py b/api/api_schemas.py index f2795a8..b91c5a3 100644 --- a/api/api_schemas.py +++ b/api/api_schemas.py @@ -96,8 +96,8 @@ class BlockInfo(BaseModel): slots: List[Parameter] inports: List[Parameter] outport: str # the output class name - description: str - examples: str + description: Optional[str] + examples: Optional[str] class ApplicationBlocksResponse(APIModel): diff --git a/resolver/resolver.py b/resolver/resolver.py index 1e6a7b4..93e26a3 100644 --- a/resolver/resolver.py +++ b/resolver/resolver.py @@ -197,7 +197,11 @@ def outport(self, name: str) -> Optional[type]: def block( - name: str, kind: str, alias: str = None, description: str = "", examples: str = "" + name: str, + kind: str, + alias: Optional[str] = None, + description: Optional[str] = None, + examples: Optional[str] = None, ): """ Decorator for registering a block class.