周三上午10点,扫码进店页的客人看到的,还是去年那张泛黄的航拍图。

耶加镇的露点抬升了0.9℃,而我们的页面还卡在雨季前

ET-YG-20260603-087批次号是凌晨4:12发来的。烘焙曲线刚压完,磨盘还在调第三档,官网故事页却还停在「高原雨季前采摘」这句里。

没人改它。

也没人想到要改。

可耶加镇此刻湿度68%,露点抬升0.9℃,果皮正缓慢回软——酸质变圆润了。和处理法无关。和日晒时长无关。和杯测员当天睡没睡好也无关。顾客舌头尝得出来。网页却像失语了一样。

我们把天气塞进页脚,当装饰。当氛围感。当一句“我们很用心”的注脚。

那天在「山隅」咖啡馆调试yh blog插件,正把杯测数据往GEO故事页里塞,一位穿灰西装的客人放下杯子,盯着屏幕上的“余韵4.2秒”问:“从咽下去开始计?还是等柑橘调散开、只剩黑巧尾韵那会儿?”——我愣了两秒才反应过来,这数字根本没标基准点,连我们自己喝的时候都靠感觉掐表。

他没笑。只是用指尖点了点杯测表右下角那个小时间戳。

那一秒我意识到:风味不是修辞练习。它是气候、海拔、动线、采收时刻、甚至当日地表反照率共同签发的凭证。

不是形容词堆出来的,是设备录下来的。

barista using AI tablet cupping notes

填两组坐标,AI就自己读懂杯测表了

在yh blog后台打开GEO感知模式,只用填两个坐标:门店(东经121.478°,北纬31.230°),产地(东经39.652°,北纬7.207°)。

上传杯测表PDF的瞬间,yh-blog-ai@v2.3.1就启动OCR+风味本体模型。它不靠模板,也不等你点“解析”按钮。

它直接把“柑橘调明显、蔗糖甜感中等、余韵4.2秒”拆成字段。不是猜测。是识别。是理解“蔗糖甜感”和“焦糖甜感”在杯测语境里的分界线在哪,是知道“明亮酸质”和“尖锐酸质”在SCAA术语库里的向量距离。

{"acidity": "bright", "sweetness": "medium", "aftertaste_seconds": 4.2}

上周试过人工录入。三个杯测员对着同一份PDF核对47分钟。漏了两处小数点,改了三次单位。

这次插件跑完,咖啡师顺手把PDF拖进钉钉群,AI已经标好所有风味锚点——连“余韵4.2秒”里的小数点,都带上了毫秒级时间戳。

它没写一行JSON Schema。没翻API文档。没敲curl命令。它只是认得杯测语言。

像老焙手听一耳朵豆子爆裂声就知道脱水期过了没那样自然。

换掉天气API那天,我们第一次听见天气开口说话

上个月用公开天气API,把哥伦比亚蕙兰Buku产区的晨雾凝露报成“晴间多云”。数据没错。错在粒度太粗——宏观预报管不到那片坡地的露点浮动。

换掉API后,系统直连当地气象站,拿到的是日均温差6.3℃、露点13.1℃这种数字。

更关键的是:它比我们先发现这支耶加雪菲的酸质收敛快了1.7秒。原因不是烘焙曲线偏移,而是昨夜辐射冷却减弱,果肉细胞壁水合作用延迟了。

这个结论来自三组数据交叉验证:土壤湿度传感器+红外地表温度+本地气象站露点趋势。没有模型拟合。只有物理观测链闭环。

天气不再是背景板。

它成了风味描述的主语。“这支豆子酸质更圆润,因为露点抬升0.9℃”,而不是“这支豆子酸质更圆润,适合搭配司康”。

句子主谓宾变了,信任感就出来了。

urban office building entrance crowd heatmap

午休前15分钟,网页突然浮起一行字

国金中心南塔B2层闸机、恒生银行大厦1号门、世纪大道步行圈内三个打卡点的数据,在11:42同步跳变。

人流上升27%的信号触发时,GEO页顶部浮起一行提示:

手冲档期余2席|推荐搭配冷萃冰滴

背后调用的是城市级POI热力API v3.1。但真正干活的是过滤逻辑:它不查“陆家嘴商圈”这种虚名,只认真实出入口的物理动线。闸机刷卡频次、门禁通行时长、步行热力叠加——三组数据交叉验证后,才敢把“27%”推到用户眼前。

每张杯测页底部生成的溯源二维码,扫出来是农场实时直播流。所有天气、人流、烘焙时间戳都带yh-blog-signature@v1.0.4轻量区块链签名。

顾客点一下就能核验:数据是否被篡改?是否超时失效?

技术藏得越深,信任越往前走。

做咖啡的人不用写代码。

但得清楚每一行时间戳从哪台设备来,每一度露点由哪个气象站报出,每一个“余韵4.2秒”背后有没有可追溯的测量协议。

手冲豆包装袋上印着埃塞俄比亚古吉的经纬度,但客人扫码看到的,是昨夜那场微雨如何让日晒床延迟翻动三小时——这页内容,压根没打算喂给搜索引擎爬虫。

是给人看的。