给 CGE 四号模板交付一条「状态流水线」

小小龙家最近接了一个工程:把 CGE 四号模板的交付流程从"群里吼一句、表格里改状态"升级到脚本化流水线。模板本身不难,难的是流程里有三个环节互相不信任:出图的机器会超时,送审的人在填表和截图之间来回切,机器人要按状态自己推报告。

专属插画
给 CGE 四号模板交付一条「状态流水线」

给 CGE 四号模板交付一条「状态流水线」

小小龙家最近接了一个工程:把 CGE 四号模板的交付流程从"群里吼一句、表格里改状态"升级到脚本化流水线。模板本身不难,难的是流程里有三个环节互相不信任:出图的机器会超时,送审的人在填表和截图之间来回切,机器人要按状态自己推报告。

以前这三件事靠记忆串联。出事了翻聊天记录,翻完了发现两边说的状态对不上——机器显示"已完成",人工手里那张表还写着"待审批"。

这次做的事不复杂:把每一步的产物都写进同一个状态文件,机器读完再走下一步。

状态文件是唯一事实

现在的流程:提交 → 出图 API 返回 URL → 写入 state.json;机器从 state.json 取状态发送审;人工审批通过后写回 `approved`;机器人看到 `approved` 自动渲染报告并推送。

每一步只读上一步写入的字段,不信截图,不信群消息。上周"出图"环节 API 超时,脚本按设计重试。坑在于前一次重试把半截结果(只有外框、没有数字的两张图)写进了 state.json,报告环节拿到后照常渲染,几乎发出去一张半成品。

后来加的规则:出图环节只有当响应里明确带 `completed: true` 时才更新输出字段,超时的重试一律不碰已有记录。

「已完成」有两个定义

业务方嘴里"做完了"常有两种意思:机器口径是图出了、报告排版完;人工口径是客户签字了。

这两个"完成"用不同的字段。state.json 里现在有 `machine_done` 和 `human_approved` 两个 key,报告推送只看后者。上周差点把一张"机器视角已完成、人工还没签字"的报告发出去,校验脚本检查 `human_approved` 为空才拦下来。

硬件设施上记住这句话:**报告文件可以随时重新渲染,签字不行。**

AI 画模板的那次翻车

有一次 AI 生成的模板图把"质保三年"渲染成了"三月质保"。源码和文字都没错,是字体渲染让"三"登上了另一个字的样子。配图和文字一起看,字数对,数字位置对,完全看不出来。客户问了一句"三个月?"才发现。

这条被写进了送检清单:模板里出现的承诺性数字(质保、交期、赔付),渲染出来之后要么人工确认图像,要么走 OCR 校验文本。一个流程里两步都做最好,只做一步也行,但一步都做的不行。这一步不放进自动化——自动化给它添加的自动化故障风险,比它排除的风险更大。

超时重试要拉长间隔

模板 API 周五下午高峰会超时。第一批脚本设的是"超时重发、间隔 30 秒",卡了两次之后手动重启服务才通。重试的间隔重新算过:固定间隔在高峰期只是制造更多干扰。改成 90 秒起步、重试上限从 3 次加到 6 次。

第二周同个时间段跑同一批任务,没有再手动重启过一次。

这周带走的东西

1. **参数校验挡在提交前。** 客户名、规格、交期错一次要重跑一个周期,脚本先过一遍必填项,挡的是低值错误。

2. **状态文件高于聊天记录。** 两个系统里"做完了"定义不一致,几乎是时间戳对不上导致的。

3. **同一份数据只出一张报表。** 两个系统各出一张对账表,必然有划痕。

4. **AI 交付物的人工关口不能省。** "审批认签字"不是玄学,是工程定义。

5. **重试间隔逐次拉长。** 固定间隔在高峰时段只是噪声。

下周的一个小工程:把参数与模板字段的映射规则写成文档,让下一位接手指明 CLI 和配置文件之间的边界——只在文件里留注释,三个月后没人记得为什么这么写。

留言区

欢迎分享你的想法!

发表留言

0/500

加载留言中…