返回 Skill 列表
extension
分类: 开发与工程无需 API Key

excel-flow-matching

当用户上传 Excel 文件并描述处理需求(如生成正态分布图、柱状图、统计报表、CPK 报表)时,根据文件结构特征与需求语义匹配 Top5 处理流程,经用户确认后执行数据清洗、图表生成与结果输出。不适用于纯文本数据、CSV 文件或用户仅询问 Excel 操作方法而非实际处理文件的场景。 ---

person作者: WIFifeihubModelScope

Excel 数据处理与流程匹配执行引擎

铁律(Top Rules,违反即失败)

  1. 禁止自写代码处理数据:数据清洗/统计/出图一律走 flows/ 下 YAML 定义的步骤,由 executor 顺序执行。不得自行用 pandas/python 处理用户数据。
  2. 弹窗 label 必须照抄:所有流程名与匹配度一律来自 workbuddy_adapter.py --match-only 输出的 JSON,原样复制,禁止自己计算或编造。
  3. 未确认不执行:用户未在弹窗中选择流程前,禁止执行任何数据处理步骤。
  4. 报错先诊断:任何步骤报错 → 先运行 check_env.py,按其输出处理,禁止盲目重试、乱改代码或臆测原因。
  5. 通道判断只看两条:用户消息含需求描述文字 → 通道A;只上传文件无描述 → 通道B。

使用场景 (When)

Use this skill when:

  • 用户上传了 .xlsx/.xls 文件,并描述了明确的处理需求(如"生成正态分布图""画柱状图""输出 CPK 报表")。
  • 需要根据文件结构自动匹配最合适的处理流程并执行。

Do NOT use this skill when:

  • 用户未上传 Excel 文件,仅询问 Excel 操作方法或公式。
  • 用户上传的是 CSV/纯文本文件(应提示用户转为 Excel 后再处理)。
  • 用户只是查看数据,不涉及图表生成或统计报表输出。

输入与输出 (What)

Input:

  • file: Excel 文件路径(.xlsx/.xls)
  • requirement: string # 用户的处理需求描述

Output:

  • matchedFlows: object[] # Top5 匹配流程列表,含流程名、匹配度、简介
  • selectedFlow: string # 用户最终确认的流程 ID
  • outputFiles: string[] # 生成的输出文件路径(Excel/图表 PNG 等)
  • previewUrl?: string # 结果预览链接(可选)
  • errorMessage?: string # 失败时的错误信息

执行步骤 (How)

0. 通道判断(确定性规则,勿自行发挥)

| 用户消息 | 通道 | 动作 | |----------|------|------| | 文件 + 需求文字(如"生成正态分布图") | A | 直接进入步骤 1 | | 只上传文件、无需求文字 | B | 先弹窗①图类型、弹窗②输出格式,再进入步骤 1 |

通道B 弹窗选项来源(无需自己造):

  • 弹窗①图类型:workbuddy_adapter.py --match-only 输出的 JSON 中 chart_types
  • 弹窗②输出格式:JSON 中 output_formats(图片 / Excel / PPT)

1. 提取特征 + 匹配(用 CLI,不自己算)

运行:python workbuddy_adapter.py <文件> --match-only [--query "需求"]

  • 输出 JSON:文件特征 + Top5 流程(flow_id / flow_name / score / score_pct)
  • 通道A 传 --query;通道B 把弹窗①+②的选择拼成查询词(如"箱线图 PPT")
  • 多文件时若满足某流程的 dual_file 要求(如 MES 数据 + 公差文件),自动配对成一个任务;否则按单个文件处理

2. 弹窗确认(label 照抄 JSON)

使用 AskUserQuestion 单选,选项最多 Top5:

  • label = JSON 中 flow_name + "(匹配度 {score_pct}%)",原样复制,禁止手算
  • 通道B 映射命中的流程置顶并标注「✓ 匹配您的选择」
  • 用户未选择(关闭/跳过)→ 终止,不执行任何处理

3. 流程执行

  1. 读取所选流程 YAML(flows/<flow_id>.yaml)拿到 processing.steps
  2. 若选中 MES 流程 → 先读 references/mes_flow.md,严格按其步骤执行(双文件配对、公差识别、确认弹窗)
  3. 调用 executor 执行:
    • python workbuddy_adapter.py <文件> --flow <flow_id> -o <输出目录>(推荐,全自动)
    • 或按 YAML steps 顺序调用 steps/ 注册函数
  4. 严格按 steps 顺序执行,不得跳过/替换/发明步骤;遵守 constraints(如 must_use_jmp、forbid_python_plot)

4. 结果输出

  • 生成文件列表 → 用 present_files 呈现
  • 任务目录自动 24h 清理,无需手动处理

失败策略 (On Failure)

  • 任何报错 → 先跑 python check_env.py(检查 venv/依赖/JMP/模板/flows),按输出处理
  • 详细错误处理细则见 references/failure.md
  • 文件格式不支持:提示用户转为 .xlsx 后重试
  • 匹配度均低于阈值(0.3):返回"未找到匹配流程",建议调整需求或在 flows/ 新增流程
  • 用户未在弹窗中选择流程:终止执行,不进行任何数据处理
  • JMP 未安装但流程依赖 JMP:提示安装 JMP,或将流程配置中的 JMP 步骤替换为 Python 绘图步骤

已内置流程

  • QMS_Measurement_Data_Normal_Distribution_Plot:QMS系统量测数据生成正态分布图。适用文件:第 1 行标题含"机种、品名、料号",第 2-4 行为规格,第 5 行起为测量数据。输出:过程能力分析图(PNG)。
  • MES_Measurement_Data_Normal_Distribution_Plot:MES系统量测数据生成正态分布图。适用文件:第 2 行标题含 SERIAL_NUMBER 和 FAI 量测列,第 3 行起为测量数据;需额外提供尺寸公差文件。输出:过程能力分析图(PNG)。
  • QMS_PPT_Report:QMS量测数据生成PPT报告(单点位正态分布,多点位箱线图)。在 QMS 流程基础上追加 CPK统计与PPT报告:自动分组尺寸(FAI/D+数字)、多点位取min(PPK)、按 ≥1.33 / 1.0~1.33 / <1.0 分类统计、填PPT模板并生成饼图;FACA详情页单点位插正态分布图、多点位插箱线图。输出:PNG+PPT。
  • QMS_Measurement_Data_Boxplot:QMS系统量测数据生成箱线图。适用文件:同 QMS 流程。按尺寸分组生成箱线图,输出 箱线图数据.xlsx(Sheet1点位明细+Sheet2尺寸汇总)与箱线图 PNG。输出:PNG+Excel。
  • QMS__PPT_Boxplot_Report:QMS量测数据生成PPT报告(箱线图)。统计/明细表与 QMS_PPT_Report 相同,FACA 详情页所有尺寸(含单点位)均插入箱线图。输出:PNG+PPT。
  • QMS__PPT_Plot_Report:QMS量测数据生成PPT报告(正态分布图)。统计/明细表与 QMS_PPT_Report 相同,FACA 详情页所有尺寸均插入正态分布图,多点位将该尺寸全部点位图纵向堆叠(>6 点改用三列网格)、自动缩放插入。输出:PNG+PPT。

扩展新流程

flows/ 下新增 YAML 配置文件,定义模板特征、处理步骤序列和输出类型;若用到新的原子操作,在 steps/ 中添加函数并注册,无需修改引擎。新增后 --match-only 的 chart_types 会自动出现新图类型。

技术支持

  • 版本:1.1(弱模型鲁棒性优化)
  • 作者:BU4-NPI