TraceStudio-dev/docs/server1.2/worker.md
2026-01-09 21:37:02 +08:00

3.8 KiB
Raw Blame History

当然可以,以下是 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/OutputNodeIO、ConcatNode聚合
  • 聚合/复合节点:支持多输入、批量处理、上下文聚合。
  • 节点元数据与校验:支持节点元数据自动提取与校验(如 node_validator.py

3. 工作流执行器

  • WorkflowExecutor:自动递归执行节点,处理依赖、聚合输入、缓存、状态管理。
  • 支持批量与聚合:聚合节点自动收集多输入,数组节点自动批量执行下游节点。

4. 安全与扩展

  • 节点代码安全校验:支持节点代码静态分析,禁止危险模块/函数,强制继承 TraceNode。
  • 沙箱执行:预留沙箱接口,支持资源限制与超时控制。

三、交互与协议

  • 节点元数据协议:前后端通过 InputSpec/OutputSpec/ParamSpec/ContextSpec 四大属性进行节点描述与渲染。
  • 上下文命名空间协议:支持 $Global.xxx 和 $NodeID.xxx 两级上下文变量引用。
  • 节点运行与状态协议:支持节点运行状态回调与进度上报,便于前端实时展示。

四、可扩展性与后续建议

  • 支持自定义节点动态加载与热插拔。
  • 支持节点类型扩展(如复合节点、条件节点、循环节点等)。
  • 支持更细粒度的权限与安全控制。
  • 支持分布式/异步执行与大规模数据流处理。
  • 支持更丰富的前端交互(如节点模板、批量编辑、可视化调试等)。

如需详细代码结构、接口示例或具体扩展建议,可进一步补充。此总结可直接交付给下一个 AI 或开发者,作为 TraceStudio v2.0 节点系统的权威设计蓝本。