Freshmate AI冰箱管家
- AI Product
- PWA
- Voice
- ESP32
- AI Coding
一套家庭食材管理产品,覆盖食材录入、建议处理日期、库存优先级、菜谱推荐、厨房语音交互和消耗后的库存更新。产品提供 PWA 与 ESP32 两种使用形态。
Fresh Mate 要解决的问题很具体:食材买回来以后容易在冰箱里被遗忘,等到真正准备做饭时,用户往往已经记不清现有库存,也不知道哪些食材应该优先处理。
产品范围据此覆盖六个阶段:录入、库存、日期判断、推荐、烹饪、消耗更新。Inventory 是整套系统的共享状态,文字输入、语音输入、日期判断、菜谱推荐和设备查询都读取或更新同一份库存数据。
01
产品范围:围绕食材从入库到消耗的状态变化
项目没有把功能边界放在“食谱内容”或“健康计划”上,而是沿着食材真实的状态变化展开。
PWA 负责完整的库存管理和决策,ESP32 设备用于厨房场景下的快速查看与免手操作。两端共用后端 Inventory,不维护独立数据。
Inventory Lifecycle
录入 → 库存 → 日期判断 → 推荐 → 烹饪 → 消耗更新 → 下一轮推荐
02
使用场景:冰箱前与做饭时采用不同交互
Fresh Mate 早期就把使用场景分成两段。冰箱前和做饭时的操作需求不同,界面与硬件形态也随之分开。
Fridge · 冰箱前
- 录入新食材
- 查看当前库存
- 查看建议处理时间
- 决定今天优先吃什么
由 PWA 承担
Kitchen · 做饭时
- 查看当前菜谱和步骤
- 查询库存
- 添加遗漏食材
- 开启计时 / 接收提醒
增加 ESP32 与语音输入
03
日期判断:模型给建议天数,业务代码算具体日期
食材录入后,系统需要给出建议处理时间。当前实现支持两种 Provider。
| Provider | 作用 |
|---|---|
| Storage Knowledge | 根据本地储存知识返回建议天数 |
| AI Provider | 根据食材、储存方式等信息返回 recommended_days |
具体日期由应用代码根据购买日期和 recommended_days 计算,用户可以手动修改。
AI Provider 的输出有范围校验;调用失败时回退到本地 Storage Knowledge。没有配置 AI API 时,日期功能也可以正常运行。
产品中统一使用“建议处理日期”,不将该结果作为食品安全结论。
04
菜谱推荐:先判断能不能做,再比较该先做哪一道
推荐目标是优先消耗现有库存,尤其是接近建议处理时间的食材。推荐策略由 Tier + Score 两部分构成。
Tier:控制可执行性
| Tier | 条件 |
|---|---|
| 0 | 核心食材齐全,可消耗 2 种及以上临期食材 |
| 1 | 核心食材齐全,可消耗 1 种临期食材 |
| 2 | 核心食材齐全,可以直接完成 |
| 3 | 缺 1 种核心食材 |
| 4 | 缺失较多,不进入推荐 |
需要额外采购较多核心食材的菜谱会直接降级或隐藏。
Score:同 Tier 内排序
| 指标 | 权重 | 作用 |
|---|---|---|
| Urgency Coverage | 50% | 覆盖多少临期库存 |
| Inventory Clearout Depth | 30% | 一次能消耗多少现有食材 |
| Supporting Utilization | 15% | 是否能顺带利用配菜 |
| Cooking Speed | 5% | 烹饪时间加分 |
推荐理由同样来自确定性规则,例如“核心食材已齐全,无需额外购买”或“可同时消耗两种建议优先食用的库存食材”。
05
AI 边界:日期、推荐、Intent、ASR 分开处理
Fresh Mate 没有使用一套通用 AI 逻辑覆盖所有任务。每一类能力单独定义输入、输出和 fallback。
AI 只返回建议天数,日期计算由业务代码完成。
确定性推荐引擎先生成真实候选,AI 只允许对候选 recipe_id 重新排序。
语音转写后进入结构化意图解析,异常时回退到规则解析。
Intent 目前支持
Intent Types
start_timer add_inventory query_inventory unknown
ASR 使用独立 Provider Contract。ESP32 与 Fresh Mate 后端之间保持固定 WebSocket 协议,更换识别服务时不修改设备侧协议。
Voice Path
ESP32 16 kHz PCM → WebSocket → ASR Provider → Intent → 业务逻辑
所有 Provider 都遵循结构化输出、结果校验和 fallback 约束。模型或服务可以替换,库存与推荐业务逻辑保持不变。
06
厨房设备:把高频操作从手机移到固定终端
软件版可以独立使用,硬件版基于 ESP32-S31-Korvo-1,连接 800×480 触屏、麦克风和扬声器。
设备侧主要保留厨房阶段需要的信息和操作,没有完整复刻 PWA。第一版语音范围控制在计时、查询库存和添加库存几类任务。
- ESP32-S31-Korvo-1
- 800×480 LCD
- Touch
- Microphone
- Speaker
- 3D Printed Case
07
库存更新:一次做饭会直接影响下一轮推荐
PWA、Voice 和 ESP32 共用同一份 Central Inventory。用户在菜谱页标记“吃完”后,对应库存记录会被更新;库存变化会触发推荐重新计算,首页的菜谱列表随之刷新。
这一机制把推荐和真实库存状态持续绑定在一起。
08
One Complete Meal:以鸡胸肉为例
录入后,Fresh Mate 根据购买日期和储存信息生成建议处理时间。随着优先级变化,相关菜谱在推荐中前移。用户选择番茄鸡胸肉后,可以在厨房设备上查看步骤并开启计时;完成后标记“吃完”,对应库存更新,下一轮推荐重新计算。
软件版与硬件版可以独立使用;薯条造型外壳单独维护。