diff --git a/__init__.py b/__init__.py index fbeb4d9..700292d 100644 --- a/__init__.py +++ b/__init__.py @@ -14,7 +14,7 @@ from dotenv import load_dotenv from .nodes.agent import CreateAgent, ExpandAgent, RunAgent from .nodes.audio_drivers import gtUIOpenAiAudioTranscriptionDriver from .nodes.audio_nodes import gtUILoadAudio -from .nodes.combine_nodes import MergeTexts, ToolList +from .nodes.combine_nodes import MergeTexts, RulesList, ToolList from .nodes.config_nodes import ( gtUIAmazonBedrockStructureConfig, gtUIAnthropicStructureConfig, @@ -125,6 +125,7 @@ NODE_CLASS_MAPPINGS = { "PromptImageVariationTask": gtUIPromptImageVariationTask, "TextSummaryTask": gtUITextSummaryTask, "Rule": gtUIRule, + "RulesList": RulesList, "EnvironmentConfig": gtUIEnv, "gtUILoadAudio": gtUILoadAudio, } @@ -139,6 +140,7 @@ NODE_DISPLAY_NAME_MAPPINGS = { "PromptImageGenerationTask": "Griptape Create: Image from Text", "PromptImageVariationTask": "Griptape Create: Image Variation", "Rule": "Griptape Create: Rules", + "RulesList": "Griptape Create: Rules List", "gtUIOpenAiAudioTranscriptionDriver": "Griptape Driver: OpenAI", "gtUIAmazonBedrockStableDiffusionImageGenerationDriver": "Griptape Driver: Amazon Bedrock Stable Diffusion", "gtUIAmazonBedrockTitanImageGenerationDriver": "Griptape Driver: Amazon Bedrock Titan", diff --git a/nodes/combine_nodes.py b/nodes/combine_nodes.py index f6b0cf0..a528c42 100644 --- a/nodes/combine_nodes.py +++ b/nodes/combine_nodes.py @@ -47,6 +47,57 @@ class MergeTexts: return (concatenated_string,) +class RulesList: + """ + Griptape Lists of Rules + """ + + def __init__(self): + pass + + @classmethod + def INPUT_TYPES(s): + return { + "optional": { + "rules_1": ("RULESET",), + "rules_2": ("RULESET",), + "rules_3": ("RULESET",), + "rules_4": ("RULESET",), + "rules_5": ("RULESET",), + "rules_6": ("RULESET",), + } + } + + RETURN_TYPES = ("RULESET",) + RETURN_NAMES = ("RULESET",) + FUNCTION = "create" + + CATEGORY = "Griptape/Agent Helpers" + + def create( + self, + rules_1=None, + rules_2=None, + rules_3=None, + rules_4=None, + rules_5=None, + rules_6=None, + ): + rule_list = [ + rule[0] + for rule in [ + rules_1, + rules_2, + rules_3, + rules_4, + rules_5, + rules_6, + ] + if rule is not None + ] + return (rule_list,) + + class ToolList: """ Griptape Tool List