APP UI SPEC · 软件交互设计稿

食光 App 高保真交互稿

一个以「语音 + AI」为第一交互的家庭食材管家。本稿覆盖 五大 Tab / 14 屏 App 界面 + 1 屏食光贴设备端 UI, 并单列一章拆解 AI 营养师「小食」的对话状态机、流式回复 UI、兜底策略与人格尺度 —— 这是本产品体验成败的真正分水岭。

15 屏完整走查 画布 375×812 5 大 Tab · 语音优先 AI 角色 小食 · 唤醒词「你好小食」 纯离线单文件 · 图标全内联 SVG
Design Rationale · 设计说明

为什么这个 App 长这样

厨房是一个「手是湿的、注意力是碎的、停留是短的」场景。传统 App 的表单式录入在这里必然失败。 我们把交互重心从「点」挪到「说」,把 App 的角色从「记账本」改成「会接话的搭子」。

信息架构 · 五大 Tab

底部导航固定五项,中间「小食」做凸起处理 —— 它不是一个平级的 Tab,而是贯穿全站的能力入口, 在任意界面长按也可唤起。

冰箱
库存 / 分区
临期看板
灶台
菜谱 / 周计划
采购清单
小食
AI 营养师
语音优先
健康
成员档案
三环闭环
我的
设备 / 会员
商城
AI 优先的五条交互原则
1
语音是入口,视觉是确认层用户说完,屏幕只负责「让他一眼确认对不对」。所有语音结果必须有可视化回执,且 3 秒内可改。
2
AI 说的每句话都要能变成一个动作回复末尾恒定挂 1–3 个可执行 chips(排进计划 / 加采购单 / 存食谱),拒绝「说完就完」的聊天机器人。
3
不确定就问一句,绝不硬猜置信度 <0.75 一律走「二选一确认」,不用开放式提问 —— 在厨房里,让用户组织语言是一种惩罚。
4
AI 的所有写操作可撤销凡是 AI 主动改了库存 / 计划 / 清单,屏幕底部弹 10 秒撤销条。信任来自「随时能反悔」。
5
只做膳食,不做诊断涉及用药、确诊、剂量一律拒答并给出转真人营养师入口。边界越清楚,专业感越强。
状态色语义(全站强制)
  • 新鲜 · 绿 #0E9F6E —— 剩余保质期 > 7 天
  • 临期 · 琥珀 #E08A00 —— 剩余 ≤ 3 天,进入首页优先流
  • 已过期 · 红 #DC3F45 —— 只提供「丢弃 / 已吃掉」两个动作,不推荐入菜
  • 运动 · 蓝 #2F6FED / 睡眠 · 紫 #7357E6 —— 仅用于健康 Tab,不进入食材语境
三条录入通道的分工
  • 语音(主) —— 冰箱贴端 + App 端,采购归家时批量说,一次进 5–10 项
  • 拍照(辅) —— 一次识别 ≤20 项,适合外卖买菜到货开箱
  • 扫码 / 手动(兜底) —— 预包装食品扫条码带出品名与保质期
  • 三者共用同一个「待确认暂存区」,用户只需要确认一次
本稿的绘制约定
  • 画布 375×812,外框圆角 44px、深色边框 10px,含灵动岛与 Home Indicator
  • 所有食材名 / 菜名 / 数值均为可推敲的真实内容,无占位块
  • 图标 100% 内联 SVG path,无外部 CDN、无图片文件
  • 数字为演示用估算值,正式版需接真实营养数据库校准
A · Design System

设计规范条

assets/css/tokens.css 完全同源。App 端字号阶梯独立于文档端,移动端最小可读字号锁定 10px(仅用于角标/日历格)。

色板 · 语义色卡
PRIMARY
保鲜绿 / 新鲜#0E9F6E
WARNING
琥珀 / 临期 ≤3 天#E08A00
DANGER
红 / 已过期#DC3F45
MOTION
运动蓝#2F6FED
SLEEP
睡眠紫#7357E6
CTA
暖橙 / 转化#F26B22
SURFACE
米白 / 页面底#F7F4EC
INK
墨绿黑 / 主文字#12211B

规则:一屏之内状态色最多同时出现 3 种;红色只用于「已过期」与「删除」,不得用于营销强调(营销用暖橙)。

App 端字号阶梯
20 / 780页面大标题 冰箱
17 / 750区块标题 今日临期
15 / 700卡片主文 番茄牛腩煲
13.5 / 400正文 剩余 2 天,建议今晚用掉
11.5 / 600辅助 / 标签 冷藏 · 300g · 08-04 入库
10 / 680角标 / 日历格(最小可读下限)
圆角阶梯
6 · 角标
10 · 小控件
14 · 按钮
20 · 卡片
28 · 弹层
999 · 胶囊
44 · 屏幕
组件示例
按钮 BUTTON
状态标签 TAG
新鲜 9 天 明天到期 已过期 1 天
运动 睡眠 会员专享 冷冻
输入 & 控件 INPUT
搜索食材、菜谱
番茄
临期语音播报 儿童模式
食材卡片 CARD
三文鱼
三文鱼
冷藏 · 300g · 08-04 入库
明天到期
B · Screen Gallery

15 屏完整走查

按信息架构分组呈现。每屏均为 375×812 真实排版,无占位块;下方标注设计意图与关键交互点。 灰底表示可滚动区域被外框裁切 —— 这是真实滚动位,不是缺内容。

C · AI Interaction

AI 交互专项 · 「小食」的设计纪律

食光机的差异化不在模型,而在交互纪律:语音优先、每次回答都通向一个动作、不确定就确认、所有 AI 写入都可撤销、不做医疗诊断。下面四块是落到像素上的硬规则。

① 小食的多轮对话状态机

一次「帮我安排今晚」背后是七八个状态在跳转。关键是低置信度必须回到澄清、绝不能猜,以及任何产出动作前先经过「可执行」这一关—— 它决定要不要弹撤销条。

小食多轮对话状态机 空闲 唤醒 / 聆听 理解意图 工具调用 流式生成 可执行动作 ≥.75? 需澄清 确认 / 撤销
主流程(确认 / 工具调用 / 流式生成) 低置信度分支 · 回退澄清 动作完成后回到空闲

② 流式回复的五个 UI 状态

LLM 的输出是「流」不是「页」。用户从提问到看到完整答案之间,至少有五段可设计的等待—— 每段都要给确定性反馈,否则会被理解为「卡了」。

0理解中 · 思考骨架tool · 0.4s
先亮骨架再填字,比白屏等待少 1.2s 的「失联感」。
1流式生成 · 打字中128 字 · 3s
今晚建议先做清冰箱版味噌烤三文鱼:三文鱼明天到期,用味噌腌 10 分钟,配西蓝花同烤。王秀兰那碗换成糙米
光标即「还在写」,用户可中断、可中途改需求。
2引用卡片 · 有据可查
依据 · 食材库 & 膳食指南
三文鱼 · 明天到期 · 冷藏生鲜盒
西蓝花 · 还有 8 天 · 富含维生素 C
娃娃菜 · 已过期 · 已排除出方案
每条建议都能点回「它为什么这么说」。
3建议气泡 · 下一步
要我顺手把这几步都办了吗?
排进今晚菜单 生成采购清单 存食材 问真人营养师
把「再说一句」变成「点一下」,缩短决策链。
4撤销条 · 可反悔
小食准备执行的动作:
把「味噌烤三文鱼」排进 今晚 18:30 · 通知全家
已写入 · 10 秒内可撤销
AI 写操作一律给 10s 后悔期,错误成本趋近于零。

③ 兜底与错误态 · 体面是设计出来的

语音家庭的失败率天然高:听不清、说错、断网、问到医疗边界。这些不是「异常分支」,而是每天都要走到的主路径,必须设计得比成功路径更体面。

没听清 → 复述引导
「没太听清~您是想问『今晚吃什么』,还是『牛奶还能放几天』?」
不回「请重说」这种废话。给两个最可能意图让用户点,把澄清成本从「重新组织语言」降到「点一下」。
不确定 → 二选一
置信度 0.6–0.75 时,给选项而非猜测:「您说的是『西红柿』还是『番茄』?我按番茄记了。」
阈值 0.75 以下一律不替用户拍板。宁可多问一句,也不把错的写进库存。
断网 → 本地命令词
离线仍响应:「今天吃什么」「还有几天过期」走本地规则;其余引导联网。
设备端预存高频命令词的本地答案,冰箱前那次对话不能因没网而失败
医疗边界 → 不诊断
「我不能诊断疾病。您母亲的血糖我先记下来,要不要转真人营养师?」
异常只提醒 + 留痕 + 转人工。任何治疗 / 用药建议一律交 RD,守住合规底线。

④ 拟人化尺度 · 小食的人格规格

「有温度」不等于「卖萌」。小食的人格是克制、专业、可依赖—— 像一位住在冰箱上的营养师邻居,而不是客服机器人或二次元偶像。

角色定位
懂营养的家庭膳食助手;不是医生,也不是搜索引擎
称呼口吻
自称「小食」,用「咱们 / 您」拉近距离;不过度卖萌、不堆 emoji、不叫「宝子」。
知识边界
只给食养建议,不诊断疾病;涉及用药 / 治疗一律引导真人营养师。
主动与克制
只在临期、异常、计划空缺时主动提醒;不每天推送、不制造焦虑
出错时
明说「我不确定」,给可撤销动作,绝不假装笃定
情绪温度
用户焦虑(如血糖异常)先共情再给方案,不冷读一串数字
维度
❌ 反面(会掉好感)
✅ 正面(小食做法)
确诊暗示建议说成诊断
「你这是糖尿病,得少吃糖」
「这道菜升糖慢,更适合控糖期;具体怎么调请问真人营养师」
过度热情卖萌堆 emoji
「宝子~今天也要好好吃饭鸭💕」
「今晚有 3 样临期,要先帮您安排吗?」
假装确定替用户拍板
「牛奶绝对不能喝了,我帮你扔了」
「我不太确定,按开封 3 天算还剩 1 天,您看要扔吗?」
推锅免责冷冰冰甩锅
「仅供参考,吃出问题我不负责」
「这条我先帮您记上,10 秒内可撤销」
小食交互五律(落到评审表)
语音优先—— 录入与对话都能靠嘴完成,老人小孩零门槛。
每答皆动作—— 每次回答都通向「排菜单 / 打标签 / 加采购」中的一个。
不确定就确认—— 置信度 <0.75 不猜,给二选一或复述。
写入可撤销—— 所有 AI 写操作给 10 秒后悔期。
不诊断—— 医疗边界只提醒、留痕、转真人。