Excel 数据处理与流程匹配执行引擎
铁律(Top Rules,违反即失败)
- 禁止自写代码处理数据:数据清洗/统计/出图一律走
flows/下 YAML 定义的步骤,由 executor 顺序执行。不得自行用 pandas/python 处理用户数据。 - 弹窗 label 必须照抄:所有流程名与匹配度一律来自
workbuddy_adapter.py --match-only输出的 JSON,原样复制,禁止自己计算或编造。 - 未确认不执行:用户未在弹窗中选择流程前,禁止执行任何数据处理步骤。
- 报错先诊断:任何步骤报错 → 先运行
check_env.py,按其输出处理,禁止盲目重试、乱改代码或臆测原因。 - 通道判断只看两条:用户消息含需求描述文字 → 通道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. 流程执行
- 读取所选流程 YAML(
flows/<flow_id>.yaml)拿到 processing.steps - 若选中 MES 流程 → 先读
references/mes_flow.md,严格按其步骤执行(双文件配对、公差识别、确认弹窗) - 调用 executor 执行:
python workbuddy_adapter.py <文件> --flow <flow_id> -o <输出目录>(推荐,全自动)- 或按 YAML steps 顺序调用
steps/注册函数
- 严格按 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
微信扫一扫