提供饱腹与核心营养
解决员工在职场的基本能量与营养摄入需求,是餐饮服务的主体。
健康基础上的轻量补给
在健康优先的前提下,适度满足员工对解渴、解馋和能量提振的需求,作为正餐之间的补充。
· 水果 300 g / 人 / 天(两件)
所有办公地必须覆盖
保证全球员工都能获得一致的零食基线体验。
- 饮料 + 零食:免费提供,且尽可能提高健康选项比例
- 综合坚果 (Mixed Nuts)
- 基础水果:苹果、香蕉、柑橘类
因地制宜,尊重本地特点
不对交付模式做刚性标准化,允许适度调整以提升员工满意度与感知价值。
- 具体品牌与 SKU:根据当地偏好与可及性选配
- 配送与运营模式:适应当地市场实践与管理成本
- 额外丰富度:在核心品类外加入本地特色
2 × 330 ml × P(饮料) + 20 g × P(薯片) + 20 g × P(零食棒)
+ 3 × 零食棒
+ 20 g 坚果
+ 20 g 薯片 + 20 g 零食棒
ZenRowsr.jina.aiSerper
__NEXT_DATA__ / JSON-LD ld+json / Apollo / Redux preloaded state),
拿不到再让 Ark 大模型 按 schema 解析 HTML 切片,输出 {name, price, weight, url, thumbnail}。
__NEXT_DATA__ld+jsonArk AI · schema
weight regexSPA skeleton guardper-100g / per-330ml
Supabaseweekly refreshaudit trail
对每个(国家 × 类目),用
site:retailer.com 关键词
调 Serper API 先定位候选页,再用 ZenRows/r.jina.ai 抓渲染后的 HTML。
零售商优先级:大型连锁线下超市 ≻ 主流电商 C 端 ≻ 备选。
先从页面里提取
__NEXT_DATA__、ld+json、Apollo/Redux preloaded state;
取不到再丢给 Ark 大模型按 JSON schema 解析切片。这一步把无结构的 HTML 变成干净的字段。
Schema 约束让模型只能输出被允许的键,避免乱造数据。
L1 多语种克重正则(中文"克 / 公斤 / 毫升"、英文 g/kg/ml/l、欧语 "gr / grammes" 等); L2 根据 SKU 标题判断"按重量计价 vs 按件计价"; L3 类目中位数估算兜底,并打
~估算 徽章让后续人工可审。
置信度低的 SKU 会进入"Fix missing weights"批处理任务由人工复核。
每条记录按
(国家, 类目, 品牌) 去重,保留最新一条,旧记录做版本追溯。
"标准生成"页把价格库里每个品牌的 (raw_price / weight) × item.grams 做算术平均,再累加成零食篮总预算。
所有 Run 都有 sourceRunId,点进去能看到最原始的零售商页面 URL。
服务端每周自动触发一次全量扫描,失败的任务进
Retry failed 队列。
当数据超过 60 天未刷新 UI 会黄色提醒,超过 180 天红色阻断生成。
价格采样口径说明
受限于数据可得性,本网页上的价格均为当地大型连锁商超数据 / 大型电商 C 端数据。 由于 C 端零售价格和 B 端采购价格可能存在差异,我们会在每次 RFI 阶段向供应商收集食材报价, 并且沉淀出一套各个国家的 B 端 / C 端价格转化系数,让最终的餐标计算越来越接近供应商"真实的花费"。
其中 k国家 = 历次 RFI 供应商报价 ÷ 同时点 C 端零售价 · 滚动均值