3.8 KiB
3.8 KiB
当然可以,以下是 TraceStudio v2.0 当前前后端设计框架与核心功能的总结,便于后续 AI 或开发者继续设计和扩展:
一、前端设计框架与核心功能
1. 节点编辑与可视化
-
节点主输入/主输出:所有主数据流通过连线传递,节点左侧为 InputSpec,右侧为 OutputSpec,前端不再显示输入映射选择。
-
参数面板(Inspector):仅显示 ParamSpec 控制参数,支持静态赋值、上下文引用、暴露端口(Expose Pin)。
-
上下文变量引用:参数可绑定全局或上游节点的 Context 变量,支持 $Global.xxx 和 $NodeID.xxx 格式。
-
节点形态:主流水线(1进1出)为主,聚合/分支节点支持多输入/多输出,线条粗细自动根据数据维度渲染。
-
交互逻辑
:
- 连线即输入,参数赋值支持静态/上下文/暴露端口三种模式。
- 支持节点暴露参数为端口,自动升级为输入端口。
- 支持节点上下文广播与全局变量提升。
2. 工作流与运行
- 节点运行状态:支持 pending、running、success、error 状态,前端可实时展示进度。
- 工作流递归执行:点击运行节点时,自动逆向递归依赖链,聚合节点自动收集多输入,数组节点自动批量执行。
- 缓存命中:节点执行前自动检查缓存,命中则直接返回缓存值。
二、后端设计框架与核心功能
1. 节点系统核心
- TraceNode 基类:明确 InputSpec、OutputSpec、ParamSpec、ContextSpec 四大属性,所有节点继承此基类。
- 节点注册与发现:通过 register_node 装饰器自动注册,支持动态加载与反射。
- 节点执行接口:process(inputs, context) 方法,所有主输入通过 inputs 传递,参数通过 self.get_param 获取,上下文通过 context 传递。
- 参数与上下文分离:参数仅面板赋值,主输入仅连线传递,上下文自动广播。
- 缓存机制:支持内存/磁盘缓存,缓存 key 由节点类型、参数、输入、上下文共同决定。
2. 典型节点实现
- 示例节点:如 AddNode(加法)、InputNode/OutputNode(IO)、ConcatNode(聚合)。
- 聚合/复合节点:支持多输入、批量处理、上下文聚合。
- 节点元数据与校验:支持节点元数据自动提取与校验(如 node_validator.py)。
3. 工作流执行器
- WorkflowExecutor:自动递归执行节点,处理依赖、聚合输入、缓存、状态管理。
- 支持批量与聚合:聚合节点自动收集多输入,数组节点自动批量执行下游节点。
4. 安全与扩展
- 节点代码安全校验:支持节点代码静态分析,禁止危险模块/函数,强制继承 TraceNode。
- 沙箱执行:预留沙箱接口,支持资源限制与超时控制。
三、交互与协议
- 节点元数据协议:前后端通过 InputSpec/OutputSpec/ParamSpec/ContextSpec 四大属性进行节点描述与渲染。
- 上下文命名空间协议:支持 $Global.xxx 和 $NodeID.xxx 两级上下文变量引用。
- 节点运行与状态协议:支持节点运行状态回调与进度上报,便于前端实时展示。
四、可扩展性与后续建议
- 支持自定义节点动态加载与热插拔。
- 支持节点类型扩展(如复合节点、条件节点、循环节点等)。
- 支持更细粒度的权限与安全控制。
- 支持分布式/异步执行与大规模数据流处理。
- 支持更丰富的前端交互(如节点模板、批量编辑、可视化调试等)。
如需详细代码结构、接口示例或具体扩展建议,可进一步补充。此总结可直接交付给下一个 AI 或开发者,作为 TraceStudio v2.0 节点系统的权威设计蓝本。