吃,是一门学问
轻量级智能厨房管理工具,支持 AI 生成菜谱、食材库存追踪、今日菜单规划。内置多用户系统和家庭共享。
- AI 一键生成菜谱(输入菜名 → 自动填入食材和步骤)
- AI 微调修改("换牛肉"、"减少用油")
- 手动录入,支持标签分类、评分、搜索
- 20 种预设标签,AI 生成时自动选用,避免标签散乱
- 记录最近制作日期
- 10 个分类(蔬菜、肉类、蛋奶、调料等)
- 智能匹配可制作的菜品,标注缺失食材
- 模糊匹配:「鸡胸肉」自动匹配库存里的「鸡胸肉」
- 做完菜后库存归零自动清理
- 采购清单:汇总所需食材,标注已有/缺货
- 做完自动扣减库存,标记制作日期
- 支持逐道确认或一键全部做完
- 累计次数、菜品数、本月次数和连续下厨天数
- 年度日历热力图、常做菜排行和标签分布
- 个人/家庭记录隔离,家庭记录显示操作者
- 可撤销误记的烹饪记录(不会自动恢复库存)
- 悬浮入口打开厨房问答助手,支持连续追问
- 可智能参考当前个人/家庭库存,也可直接咨询食材做法
- 支持“现在能做什么”“鱼有哪些做法”“推荐一道新菜”等开放问题
- 对话不会自动修改库存或保存菜谱,回答确认后再由用户操作
- 个人/家庭双模式,数据完全隔离
- 邀请码加入,成员共同编辑菜谱和库存
- 单个菜谱或批量同步到对面范围
- 注册登录,bcrypt 加密
- 新密码至少 8 位;登录和注册接口带有基础频率限制
- 默认仅允许创建首个管理员账号;已有部署如需临时开放注册,可设置
OPEN_REGISTRATION=1 - 管理员可重置他人密码
- 数据 JSON 导入导出
# 1. 安装 Bun
curl -fsSL https://bun.sh/install | bash
# 2. 启动
bun run server.ts
# 3. 打开
open http://localhost:3000首次启动自动创建数据库。停止按 Ctrl+C,重启不会丢失数据。
单位换算和烹饪足迹功能使用非破坏性迁移。升级启动时会新增
ingredient_unit_conversions、cook_history、schema_migrations、app_metadata 表,并为库存增加用于并发保护的
version 列。现有菜谱和库存记录不会删除;历史上误存成 1个 + 个 的库存会安全规范化为 1 + 个。
# 1. 在旧服务仍运行时也可生成一致的 SQLite 备份
sqlite3 data.db ".backup 'data-before-upgrade.db'"
# 2. 更新项目文件(需要包含新增的 unit-conversion.ts)
# 3. 重启;新表会自动创建
bun run server.ts旧菜谱中的 200g、2个 等文本会在扣减时即时解析,因此无需批量改写历史数据。
首次升级会把每份菜谱现有的 cooked_dates 逐条复制到 cook_history,原字段保持不变;迁移带版本记录,重复启动不会重复导入。
家庭范围的旧记录无法可靠判断当时由哪位成员完成,因此会显示为“历史记录”,之后的新记录会显示实际操作者。
旧备份中没有换算规则或足迹表时也可正常导入;新备份会一并包含已保存的食材换算规则和烹饪足迹。
备份导入采用单事务的安全合并:相同 ID 更新、新 ID 添加,其他现有数据保留,失败时全部回滚。
生产环境建议设置固定的 JWT_SECRET。未设置时,服务会在数据库中生成并持久化一个密钥,后续重启继续复用,避免用户会话每次重启都失效。
建议通过管理员流程或短时设置 OPEN_REGISTRATION=1 添加家庭成员,完成后移除该环境变量并重启服务。
AI 服务地址默认要求使用 HTTPS,且会阻止本机、私网和链路本地地址,避免把部署服务器当作内网代理。确实需要连接本机 HTTP 模型服务时,需同时显式设置 ALLOW_INSECURE_AI_URLS=1 ALLOW_LOCAL_AI_URLS=1,但不建议在公网部署时开启。
JWT_SECRET='请替换为足够长的随机字符串' bun run server.ts- 注册账号(第一个用户自动成为管理员)
- 设置中填入 API Key(默认 DeepSeek 接口)
- 菜谱库新建菜谱,或输入菜名让 AI 生成
- 库存中添加家中食材
- 菜谱卡片点「加入菜单」,切换到今日菜单查看采购清单
- 做完点「做完了」,库存自动扣减
knowingre/
├── index.html # 主页面
├── login.html # 登录/注册
├── app.js # 前端逻辑
├── styles.css # 样式
├── server.ts # Bun 后端
├── reset-password.ts # 命令行重置密码
└── data.db # SQLite 数据库(自动生成)
HTML + CSS + Vanilla JS · Bun + SQLite · JWT + bcrypt · OpenAI 兼容 API
本项目由 DeepSeek V4 Pro 生成