TraceStudio-dev/docs/server1.2/worker.md

79 lines
3.8 KiB
Markdown
Raw Normal View 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 节点系统的权威设计蓝本。