VWCG-1217 · 技术开发设计评审

AI 菜品分类与 100g 组分匹配

结论:现有系统已经具备 100g 归一化,主要缺口是 AI 分类白名单、服务端规则校验、未匹配项保留和异常配方保存门禁。只改提示词无法满足验收。

版本 V0.1 · 2026-08-19 · 待产品 / 研发 / 测试评审

需求状态

云效状态
待处理 / 高优先级
目标仓库
store
当前阶段
DEFINE / PLAN
代码状态
未编码
评审状态
有 4 个开发前阻断项

已验证事实

  • 新增与编辑共用 addCuisine.vue
  • 页面默认单位重量为 100g。
  • 手工分类仍包含“调味品及其他”,应继续保留。
  • AI 当前可选择全部分类,返回后无服务端白名单。
  • 食材匹配失败时当前代码会直接删除该项。
  • AI 生成器同时被批量导入和定时同步复用。

改造范围

模块当前问题设计动作
AI 分类禁选分类仍在候选集,返回不校验候选集过滤、父子一致性校验、最多一次纠偏重试
100g实现已有,但提示、测试、Apifox 样例漂移统一为 100g 成品可食部分,组分总重 100.00
食材匹配错配、漏配、未匹配被删除标准映射、菜名消歧、保留原词并标记 pending
配方检查没有整体一致性校验糖醋无醋、凉皮无主料、主食仅调味项生成 BLOCK
前端只认 code=0,没有草稿质量门禁显示 issues / match_status,BLOCK 或 pending 时禁用保存
批量/定时复用同一生成器,但没有人工处理面遇 pending 时整道菜失败并记录原词,不允许删项入库

开发前必须确认

  1. 凉菜口径:按菜名关键词、AI 新字段、现有分类,还是新增字段判定?
  2. 生状态语义:是否确定将菜品顶层 raw_flag 从熟改为生?该字段会改变营养计算分支。
  3. 保存策略:BLOCK 是否任何人都不可越过,还是管理员二次确认后可保存?
  4. 标准大蒜:“大蒜白皮鲜”在每个门店食物库中的唯一标准名称是什么?

当前系统截图

当前新增菜品页面
新增菜品页:AI一下、默认 100g 和食物组成表。
当前手工分类选项
手工分类包含“调味品及其他”,本需求不应删除。