SuperAPI AI 工具集

yaml-workflow-executor

数据与分析

查看项目

更新于 10-16 04:06

技能介绍

用途

YAML Workflow Executor 用于执行配置驱动的工作流:由 YAML 文件定义分析参数、数据源和执行步骤,工具负责加载、校验、路由到对应处理器并执行,最终产出结果。它适合运行分析管道、数据处理任务,以及用参数化配置实现重复性任务的自动化,并帮助构建可复现的工作流。

主要能力

  • 配置加载:通过 WorkflowConfig.from_yaml 从 YAML 文件读取 task、input、output、parameters、options 等字段,并支持 validate 校验必填项。
  • 任务路由:WorkflowRouter 按 task 名称将配置分发到已注册的处理器,未注册的任务会报错并列出可用任务。
  • 内置处理器示例:analyze_data(读取 CSV、按参数过滤、输出统计结果)、generate_report(生成报告)、transform_data(按配置执行 rename、filter、aggregate、sort 等转换)。
  • 多步骤工作流:task 为 pipeline 时,可通过 steps 定义多个步骤,并用 depends_on 声明依赖关系。
  • 命令行接口:支持传入配置文件路径、--override/-o 参数覆盖、--verbose/-v 详细输出、--dry-run 仅校验不执行。
  • 参数覆盖与编程调用:execute_workflow 支持 overrides 参数,也可在代码中加载并修改配置后调用 router.route。
  • 错误处理:提供 safe_execute_workflow 模板,覆盖配置缺失、YAML 语法错误、校验错误和执行错误等情形。

使用方式

  1. 编写 YAML 配置,例如:
task: analyze_data

input:
  data_path: data/raw/measurements.csv

output:
  results_path: data/results/analysis.json

parameters:
  filter_column: status
  filter_value: active
  1. 通过 Python 调用:
from workflow_executor import execute_workflow

result = execute_workflow("config/workflows/analysis.yaml")
print(f"Status: {result['status']}")
  1. 通过 CLI 执行:
python -m workflow_executor config/workflows/analysis.yaml --verbose
  1. 使用参数覆盖:
python -m workflow_executor config/workflows/analysis.yaml \
    --override filter_value=completed \
    --override date_range.start=2024-06-01
  1. 仅校验配置:
python -m workflow_executor config/workflows/analysis.yaml --dry-run
  1. 也可使用 Bash 包装脚本 scripts/run_workflow.sh 运行。

适用场景

  • 运行由 YAML 配置定义的分析任务。
  • 从配置执行数据处理管道。
  • 用参数化配置自动化重复性任务。
  • 构建可复现的工作流。
  • 通过配置变体处理多个场景。
  • 批量处理多个配置文件(遍历目录中的 *.yaml 逐个执行)。
  • 动态生成工作流配置(如为多个数据文件生成 pipeline 步骤)。

限制与注意事项

  • 资料未提供该工具的安装方式、依赖要求、收费模式、支持平台或性能基准,这些信息暂未提供。
  • 内置处理器(analyze_data、generate_report、transform_data)为示例实现,实际可用任务取决于已注册的处理器。
  • 使用前需确保配置文件存在且 YAML 语法有效,输入数据文件存在,输出目录可创建,且指定任务已注册。
  • 建议将配置放在 config/workflows/ 目录,使用描述性文件名,纳入版本控制,并在执行前用 --dry-run 校验。
  • 应避免硬编码绝对路径、跳过输入校验、将配置与实现混在一起、创建过度复杂的嵌套配置以及忽略错误处理。

相关技能

  • data-pipeline-processor:数据转换。
  • engineering-report-generator:报告生成。
  • parallel-file-processor:批量文件处理。