Mood Spirits


2025

Mood Spirits 是一个 AI 侍酒师:你不用先知道自己想喝什么,只要表达此刻的心情、所在的场景和手边有什么酒,它就把这些模糊的输入转译成一杯能解释、也做得出来的鸡尾酒。个人独立完成的产品定义、推荐策略、交互和前端实现。

把模糊情绪转成可计算标签

我没有用一组冷冰冰的单选按钮问用户「你想喝酸的还是甜的」,改用 Mood Index:从 Melancholy、Lonely、Stressed 到 Relaxed、Confident、Romantic 的连续滑杆。滑杆背后不直接绑定某杯酒,先把心情映射成风味倾向和场合倾向--Romantic 偏 Sweet、Floral、Complex,适合 Date;Melancholy 偏 Bitter、Strong、Smoky,适合深夜独酌。

规则选酒,AI 讲氛围

酒单推荐不是随机,也不是让 AI 临场编酒谱。系统先从本地酒单库中逐杯打分:基酒和材料是强约束(用户说了家里有什么就必须尊重现实库存),场景、心情、天气、时间分别影响风味方向,最后选出最符合当前情境的一杯。规则负责选酒,AI 负责把这杯酒讲得专业、有情绪。

但 AI 的输出不能飘,所以 Prompt 本身被当成设计对象来写,让模型在受限空间里发挥:

  • 内嵌 IBA 官方标准:Old Fashioned、Martini、Negroni 等经典必须遵守官方配方比例,不许乱改经典结构
  • 内嵌 Sour 2:1:1 黄金比例:无经典配方时按「2 份基酒 : 1 份甜 : 1 份酸」兜底,保证口感平衡
  • 内嵌本地图库酒单:Prompt 明确要求优先返回本地有高清图的酒款英文名,让 AI 输出能命中 backup 图库
  • 字段兜底:AI 漏返 ABV / 适饮温度时用默认值补齐,结果页徽章永不空白

让推荐结果可解释,而不是黑箱

结果页的 Why this drink 来自打分过程留下的证据链,不是文案装饰。比如「匹配你选择的基酒 Gin」「适合 Date 场景」「风味贴近 Romantic:Sweet / Floral」「与当前天气氛围相符」。当匹配度较低或自定义材料没有命中时,系统也会诚实提示这是接近推荐,不会假装精准。

  • 基酒命中:Gin 更容易推荐 Martini、Gin Tonic、Negroni、Gimlet、Aviation
  • 材料命中:Tonic 匹配汤力水,Coffee 匹配 espresso,自定义的椰汁关联到 coconut
  • 低置信度兜底:条件太特殊时展示 Close,而不是假装精准

把环境变成入口氛围

天气在 Mood Spirits 里会真实参与推荐,不是只挂在首页的角标。系统通过多 provider IP 定位加 Open-Meteo 获取天气并缓存结果。首页的今日推荐则根据当前时间筛选候选:早晨偏 Mimosa、Bloody Mary、French 75,午后偏 Highball、Gin Tonic,晚上偏 Martini、Negroni、Manhattan,深夜偏 Old Fashioned、Sazerac。

把推荐变成一次微醺

推荐算法只是起点,Mood Spirits 花了更多功夫在「怎么把这杯酒端到用户面前」上。视觉、听觉、触感和转场都围绕一杯酒该有的氛围来设计,让「选什么喝」这件事在手机上多停留几秒:

  • 流体液面动画:酒杯内液面随酒体颜色动态波动,SVG 正弦波模拟液面张力
  • 陀螺仪倾斜:手机倾斜联动杯中液面,交互可取消
  • MusicCard 黑胶唱片:按推荐酒单的音乐流派匹配,一键跳转网易云音乐深链播放
  • 配方弹窗 180° 翻转:首页推荐卡到配方详情的 3D 翻转过渡
  • 氛围文案 vibe quote:每杯酒配一句中英双语诗意短句,强化情绪共鸣

Metadata

Last Updated
Dimensions
Characters