Coloring's picture
feat: add Flow component
176823e
import os
from modelscope_studio.components.Flow import (
FlowSchemaDict, NodeSchemaAttributeDict, NodeSchemaAttributeListDict,
NodeSchemaAttributeRequiredDict, NodeSchemaDict, NodeSchemaPortsDict,
NodeSchemaTemplateDict)
def resolve_assets(relative_path):
return os.path.join(os.path.dirname(__file__), "../../resources",
relative_path)
schema = FlowSchemaDict(nodes=[
NodeSchemaDict(max=1,
min=1,
addable=False,
show_toolbar=False,
name="start",
title="Start",
ports=NodeSchemaPortsDict(source=['right'], target=[])),
NodeSchemaDict(
icon=resolve_assets('./bot.jpeg'),
name="agent",
title="Agent Node",
description="Agent Flow Node",
ports=NodeSchemaPortsDict(source=[], target=['left']),
attrs=[
NodeSchemaAttributeDict(name="prompt",
title="Agent Prompt",
type='textarea',
required=NodeSchemaAttributeRequiredDict(
message="Agent Prompt is required")),
NodeSchemaAttributeDict(name="tool",
title="Tools",
type="select",
props={
"mode":
"multiple",
"options": [{
"label": "Wanx Image Generation",
"value": "image_gen"
}, {
"label": "Code Interpreter",
"value": "code_interpreter"
}, {
"label": "Web Browsing",
"value": "web_browser"
}]
}),
NodeSchemaAttributeDict(
name="condition",
title="Jump Condition",
list=NodeSchemaAttributeListDict(
min=1, ports=NodeSchemaPortsDict(source=['right'])),
accordion=False)
],
template=NodeSchemaTemplateDict(attrs=dict(condition=[''])))
])