Skip to content

Latest commit

 

History

54 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lulu's Fridge logo

Lulu's Fridge · 食光管家

让普通冰箱拥有一位持续工作的家庭餐厨 Agent

看见库存 · 记住变化 · 推荐菜谱 · 免手伴做 · 补齐缺料

简体中文 · English

官方网站 · lulufridge.me

iOS 17+ Swift 6 Python 3.10+ Vue 3 Physical AI Hackathon 2026

Lulu's Fridge iOS 页面总览

项目简介

Lulu's Fridge(食光管家)是一套端到端的家庭餐厨 Physical AI 系统。固定在冰箱内的视觉模块与噜噜 Master 持续维护可信库存;iPhone App 把库存、临期、家庭偏好与菜谱连接起来;Hermes 负责自然交互;确定性业务核心负责库存差分、过敏原过滤、缺料计算、伴做状态和高影响操作确认。

🌐 官方网站: lulufridge.me — 浏览 Lulu's Fridge 的产品理念、噜噜 Master,以及从冰箱感知到家庭烹饪的完整体验。

项目面向 香港 Physical AI Hackathon 2026 · Sense & Reason ·「贾维斯走进现实」,当前仓库包含可运行的板端服务、iOS 正式客户端、品牌官网、API 契约、设计资产、测试与物理部署脚本。

一句话闭环: 冰箱关门后自动看见变化,App 告诉你现在能做什么,噜噜陪你完成烹饪,并把真正缺少的食材整理成可确认的购物清单。

核心闭环

flowchart LR
    A["冰箱开关门 / 手动扫描"] --> B["相机连拍 + VLM 观测"]
    B --> C["库存协调器:新增 / 取出 / 数量 / 效期"]
    C --> D["可信库存与家庭档案"]
    D --> E["菜谱排序与过敏原硬过滤"]
    E --> F["语音伴做、计时与状态提示"]
    F --> G["完成记录、成就与偏好学习"]
    E --> H["净缺料清单"]
    H --> I["用户确认后跳转官方零售渠道"]
    G --> D
Loading

已实现能力

模块 能力
感知与库存 板载相机、VLM 结构化识别、置信度与证据、库存差分、待确认变化、临期提醒、持久化库存
iOS 冰箱 扫描、分区浏览、批次详情、手动 CRUD、36 个常用产品、10 个细分类、别名搜索与批量添加
菜谱决策 可直接做 / 补少量食材、份量缩放、临期优先、过敏与忌口硬过滤、导入食谱统一参与排序
噜噜伴做 “下一步 / 重复 / 计时”确定性指令、上下文问答、暂停恢复、绝对计时、本地通知、语音播报
记忆与个性化 家庭档案、烹饪历史、替代记录、口味偏好、多样性排序、版本化成就、XP 与连续日
购物清单 按份量与真实库存计算净缺料;逐项确认;美团、京东、HKTVmall 等官方搜索入口;零售报价沙箱
设备与连接 公开健康探测、短期凭证、Keychain 恢复、事件流、重试退避、ADB 本地链路与公网备用链路
品牌官网 Vue 3 + Vite 双入口站点、CSS 3D 冰箱、噜噜动画、产品闭环、Master 详情与响应式页面
交付工程 OpenAPI 契约、XcodeGen 工程、TestFlight 检查脚本、riscv64 source-only 部署与自动回滚

产品截图

iOS:噜噜、冰箱、菜谱与清单

iOS app overview

噜噜 Master:真实冰箱视角

Physical fridge camera capture

展开查看品牌官网与 Master 详情页

Lulu's Fridge landing page Lulu Master detail page

系统架构

flowchart TB
    subgraph IOS["Lulu's Fridge · iOS 17+"]
        UI["SwiftUI 功能页面"]
        MODEL["AppModel / Router"]
        REPO["Typed Repositories"]
        STORE["Keychain + Local Stores"]
        UI --> MODEL --> REPO
        MODEL --> STORE
    end

    subgraph MASTER["噜噜 Master · riscv64 / Linux"]
        API["/v1 Board API + Event Stream"]
        CORE["Inventory / Recipe / Cooking / Profile / Achievement"]
        ADAPTER["ASR · TTS · VLM · LLM Adapters"]
        CAMERA["Camera / Door / Button"]
        API --> CORE --> ADAPTER
        CAMERA --> ADAPTER
    end

    subgraph WEB["品牌官网"]
        VUE["Vue 3 + Vite"]
    end

    REPO <-->|"HTTPS / Bearer / revision / idempotency"| API
    ADAPTER --> EDGE["端侧模型"]
    ADAPTER -. "可选受控代理" .-> CLOUD["兼容模型服务"]
Loading

关键设计原则

  1. 确定性核心,模型负责感知与表达。 库存变化、过敏过滤、份量、缺料与确认门控由可测试规则处理。
  2. 板端是家庭数据事实源。 iOS View 不伪造业务成功;库存、食谱、伴做、档案和成就经 Repository 与 Board API 同步。
  3. 事件驱动而非持续上传视频。 关门或按钮触发短时观测;图像尽量在端侧处理,业务层保存结构化事实。
  4. 高影响操作必须确认。 对外分享、库存争议与零售动作遵循“复述 → 确认 → 执行”。
  5. 官方渠道完成结算。 系统负责净缺料、匹配和确认,不保存商超账号或支付凭证。
  6. 连接可恢复。 短期凭证保存在 Keychain,状态使用 revision、幂等键、事件序列和退避重试保持一致。

仓库结构

HKPhysical26/
├── jarvis-kitchen/            # 板端 Agent、业务核心、/v1 API、适配器、语音与部署脚本
├── ShiguangKitchen-iOS/       # iOS 17+ SwiftUI App、测试、设计系统、品牌与发布配置
├── landing-page/              # Vue 3 + Vite 官网与 Master 详情页
├── 食光管家-iOS交接/          # OpenAPI / BLE / REST 契约与技术交接
├── 家庭餐厨管家-项目计划书/    # LaTeX 计划书及 PDF
├── 食材识别图片库/             # VLM 食材识别评测图片与审核记录
├── 0803识图/                  # 10 类基础蔬菜、250 张固定拆分与重建脚本
├── Transparent/              # 三组透明底家常菜图标素材
├── research/                  # 模型、语音与 Physical AI 调研
├── docs/images/               # README 使用的脱敏精选截图
└── *.md                       # 参赛方案、深度方案、平台跳转与赛前规划

快速开始

1. 板端核心(Python)

核心业务刻意以 Python 标准库为主,便于在 riscv64 设备上运行。

git clone https://github.com/qybaihe/HKPhysical26.git
cd HKPhysical26/jarvis-kitchen

python3 -m unittest discover -s tests -v
python3 tests/test_pipeline.py
python3 scripts/smoke_http.py
python3 main.py --script demo

本地模型服务或云端兼容接口通过环境变量注入:

cp .env.example .env
# 仅编辑本机 .env;该文件不会进入 Git
JARVIS_LLM=cloud JARVIS_VLM=cloud python3 main.py --script demo

2. iOS App

要求:macOS、Xcode、iOS 17+ Simulator;如需重建工程,先安装 XcodeGen。

cd ShiguangKitchen-iOS
xcodegen generate --spec project.yml
open ShiguangKitchen.xcodeproj

命令行构建示例:

xcodebuild test \
  -project ShiguangKitchen.xcodeproj \
  -scheme ShiguangKitchen \
  -destination 'platform=iOS Simulator,name=iPhone 16 Pro'

默认运行正式 Composition Root;Mock 与 Preview 必须显式选择,详见 ShiguangKitchen-iOS/README.md

3. 品牌官网

cd landing-page
pnpm install
pnpm dev
# 生产验证
pnpm build
pnpm preview
  • /:品牌 Landing Page
  • /master/:噜噜 Master 产品详情

36 个常用产品目录

手动添加页提供 36 个可检索产品,但目录本身只是选择元数据;用户确认并成功写入 Board API 后才成为真实库存。

分类 示例
叶菜 菠菜、生菜、小白菜、大白菜
根茎 土豆、胡萝卜、洋葱、红薯、莲藕
瓜果蔬菜 番茄、西兰花、黄瓜、红椒、青椒
菌菇 香菇、金针菇
肉蛋豆 鸡蛋、豆腐、鸡胸肉、牛腩、猪里脊
水产 虾仁、三文鱼
乳品 牛奶、酸奶、芝士
水果 苹果、香蕉、橙子、柠檬、葡萄
主食干货 大米、面条、面包
葱姜调味 大蒜、生姜

目录支持中英文 ID、常用别名和分类搜索,例如“西红柿”“娃娃菜”“鲑鱼”“番薯”。

Board API 概览

GET    /v1/health
GET    /v1/device
GET    /v1/snapshot
GET    /v1/events
POST   /v1/scans
GET    /v1/inventory
POST   /v1/inventory/items
PUT    /v1/inventory/items/{id}
DELETE /v1/inventory/items/{id}
GET    /v1/recipes
POST   /v1/cooking-sessions
POST   /v1/cooking-sessions/{id}/commands
POST   /v1/cooking-sessions/{id}/assistant/messages
GET    /v1/cooking-history
GET    /v1/household/profile
GET    /v1/achievements
POST   /v1/recipe-import/generate
POST   /v1/recipe-import/analyze-images

完整契约见 食光管家-iOS交接/contracts/board-api.openapi.yaml

配置与密钥

仓库默认采用“本地可运行、远端不含凭证”的配置方式:

  • 本机 jarvis-kitchen/.env 保持原有配置并被 Git 忽略;远端只提交空值模板 .env.example
  • iOS 客户端不包含模型供应商密钥;模型调用通过板端受控代理完成。
  • Debug 临时 token 从进程环境注入,成功鉴权后进入 Keychain;Release 不读取环境 token。
  • .pem.key、构建归档、测试结果、模型缓存、相机原始输出和本地运行数据均不进入版本库。
  • 提交前使用 Gitleaks 扫描 Git 历史与待提交内容。

如需增加新配置,请只在模板中提交变量名与说明,不提交真实值。

测试与验证

# Python 单元与业务闭环
cd jarvis-kitchen
python3 -m unittest discover -s tests -v
python3 tests/test_pipeline.py
python3 scripts/smoke_http.py

# Landing Page 生产构建
cd ../landing-page
pnpm build

# iOS
cd ../ShiguangKitchen-iOS
xcodegen generate --spec project.yml
xcodebuild test -project ShiguangKitchen.xcodeproj -scheme ShiguangKitchen \
  -destination 'platform=iOS Simulator,name=iPhone 16 Pro'

仓库同时包含物理 riscv64 部署、健康检查、回滚、公网隧道、Keychain 重启恢复和 TestFlight 产物检查脚本。运行产生的证据保留在本地 TestResults/,不会推送到远端。

本次推送前的本地回归结果:Python unittest 46/46、业务闭环 9/9、HTTP smoke 61/61;iOS 单元/契约 61 executed、60 passed、1 个显式外部集成 skip、0 failed;Landing Page 生产构建通过。

文档索引

当前进度

  • 相机 / VLM → 库存差分 → 持久化事实
  • iOS 库存、菜谱、伴做、清单、设备与个人档案
  • 36 产品 / 10 分类手动库存目录
  • 食谱导入、上下文助手、历史、成就与家庭硬约束
  • /v1 API、鉴权、事件、幂等与 OpenAPI 契约
  • riscv64 source-only 部署、测试与回滚
  • Vue 品牌官网与 Master 详情页
  • 持续扩充真实冰箱场景 VLM 基准
  • 完成更多端侧模型性能与功耗测量
  • App Store / Skill Store 正式发布流程

让噜噜住进你的冰箱,把每天“吃什么”变成一件轻松的小事。

About

Lulu's Fridge(噜噜的冰箱)— 家庭餐厨 Physical AI 助手:冰箱感知、库存管理、食谱推荐、语音伴做与 iOS 联动。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages