【生活娱乐】「晚上做啥吃」—— 菜厨厨,家庭主厨的做菜帮手

一、自我介绍

大家好,我是一名金融行业的测开工程师,工作本身和代码相关,但是工作之外,本人还喜欢尝试做各种风格的菜。以前用下厨房的时候,总是觉得搜菜谱又得回想冰箱有哪些食材的动作非常变扭,而又碰巧参加了这个比赛,于是乎就顺其自然的制作了这个简单的做菜小工具。


二、产品简介

一句话介绍:一个网页应用(手机网页端访问更佳),输入冰箱里现有的食材,AI 会智能推荐你能做的菜谱,以及会辅助你提升自己的厨艺。

面向谁:

  • 经常面对"剩菜不知道做什么"发愁的上班族
  • 想减少食材浪费的家庭主厨
  • 厨房新手,想要按难度筛选菜谱

完整的功能

食材管理界面

提供手动,语音,以及图像识别的方式录入食材。
20260808203806_rec_

此外,用户可以删除或者修改食材的过期时间(初始录入是会赋予一个随机时间)
点击食材卡片的右上角,可以删除。
长按食材卡片,可以修改食材过期时间。
轻点食材卡片,ai会帮你提供食材灵感,建议做菜以及食材的处理方法
20260808200520_rec_
在这个页面点击 一键生成今晚菜单 可以生成菜谱
或者点击大厨浮标的:cooking:按钮也可,大厨按钮的:wastebasket:按钮,点击可以清除当前所有食材
20260808205804_rec_
大厨按钮会有一个呼吸灯的特效,当这个特效出现的时候,说明这个页面有可交互的功能,欢迎大家实验:blush:

为你推荐

在推荐页面,提供了两种组合,一种就是单个菜谱推荐,一个是会两个菜组合。此外,如果本地菜谱不适合你,同样提供了ai联网搜索菜谱的功能,这里ai搜索只会出现两个菜。此外,提供了缺失食材的复制功能,可以单个或者多个。方便用户复制对应的菜后,去app粘贴搜索。
20260808210619_rec_

发现好菜

在发现页面中,你可以按照菜谱分类或者搜索寻找自己想要的菜谱。这里除了本地的菜谱,在推荐功能中,ai搜索的菜谱也会被记录下来。此外,如果你不想翻书,你也可以点击大厨按钮。大厨会给你按照特定分类推荐三个菜。菜谱的右上角是收藏键,点击后,可以在 我的 页面中找到你收藏的菜谱
20260808212906_rec_
在菜谱中,提供了大厨笔记和大厨总结。
大厨笔记是一个类似文档中批注的功能(文字弹幕功能:grin:),主要是基于当前菜谱,提出一些更细节的建议。而大厨总结是针对这道菜的做法,提供一些总结内容(类似美食作家王刚老师在视频最后会提到的内容)。此外,用户也可以点击最下方的按钮去bilibili查找这道菜的方法(这里如果是电脑网页端,则是在新的tab弹出url;如果是手机端浏览器,会调用bilibli的app,然后搜索。这里用的安卓手机的浏览器作为功能展示)
20260808213407_rec_
20260808220536_rec_
在菜谱最后的开始沉浸烹饪,是一个类似ppt的展示功能,按照步骤一步步做完后,日历会更新你的做菜记录。
无论是从为你推荐或者是从发现页面中的菜谱进入沉浸烹饪,只要沉浸烹饪的步骤完成,做菜日历都会更新做菜记录,这也是唯一更新做菜日历的方法。
20260809195122_rec_

做菜日历

日历主要是统计用户历史做菜记录以及月份统计功能,此外,在时间线页面中,点击大厨按钮,大厨会对你的做菜记录提出一些能力总结,以及做菜的建议
20260808220758_rec_

我的

这个界面主要是一些设置,以及内容的编写部分。提供了消耗食材记录,以及经常会补充的菜。方便提醒用户闲暇时光下单,以不至于等到做菜的时候才去买菜。此外,用户也可以看到自己收藏的菜谱。在:round_pushpin:里面的数字代表这个菜的做菜次数。
20260808221359_rec_
此外,厨师管理页面中,默认提供了一个大厨笔记,笔记的内容就是上面大厨笔记的类似文档中批注的功能。除了默认的内容外,用户也可以按照自己对于这道菜的经验,写出总结以及步骤经验。在用户写完之后,ai会对用户的内容进行一定的润色。注意,同一个菜最多显示三个大厨的笔记,如果超过3个,则按照大厨的优先级排列展示前三。并且在笔记页面中用户也可以自己给菜谱添加tag,以方便快捷搜索。
20260808221555_rec_
此外,在这里加入了过敏源和饮食偏好的筛选。假如你不吃辣或者对食材过敏,那在推荐菜谱中,就会屏蔽所有的辣菜,并且在本地菜谱中,标记出辣菜或者过敏源。
20260808222102_rec_

相比初赛 Demo 的升级

维度 初赛 Demo 复赛成品
冰箱页面 食材录入 食材录入\食材保质期修改
为你推荐 固定两个菜 单双菜谱组合推荐\ai菜谱搜索\购物清单\ 优化了推荐逻辑
发现 菜谱展示 菜谱展示\历史记录以及菜谱精选(基于推荐算法)\大厨推荐(三种特定分类的菜谱)
菜谱 菜谱收藏\沉浸做菜功能 菜谱收藏\沉浸做菜功能\大厨笔记(针对菜谱)\大厨总结(针对菜谱)\食材清单标记
日历 时间线展示以及日历展示 更美观的时间线展示,以及日历交互\大厨总结(针对做菜历史记录)
我的 设置 设置\美化了收藏页面\新增厨房用具以及调料\厨师管理\饮食偏好和过敏源管理的自定义功能\内置数据的创作者模式(连点版本号5下,有些页面会多一个演示按钮)

三、产品演示视频

0.07 复制打开抖音,看看【摸鱼海豹的作品】菜厨厨作品介绍 # vibecoding # TR… https://v.douyin.com/k6xEoKwUq84/ :7pm Q@x.Fh 05/06 JVL:/

四、 产品创作历程

灵感来源

源于我每次在地铁上的哲学三问:早上吃什么,中午吃什么,晚上吃什么。
在我每次打开冰箱,看着零散的食材(半颗西兰花、几只虾、一点五花肉),都发愁能凑出什么菜。要么想吃的菜食材不够,要么食材很多毫无头绪。

演进过程

  1. 起点(初赛 Demo):一句话: “帮我做一个网页,他可以根据食材生成一个菜谱”
  2. 关键转折一:最开始的菜谱,是只有一个大类的,而且所有的菜谱是通过rag搜索出来的。这里出现了两个问题,一个是搜索的过程非常的慢,二是搜索的结果经常不准。这里当时琢磨了好久,最后决定老实洗数据,把markdown和各种格式的菜谱,统一处理成了json,并且把菜谱的食材,单独提出来,做成了类似metadata的内容。加快了搜索速度,也提高了推荐出来的结果
  3. 关键转折二:关于推荐内容的优化,最开始我只给了固定的两个菜,后来找人体验了后发现,两个菜非常呆板,而且有时候用户觉得本地的菜谱数量太少,不能满足个人做菜的需求。于是这里后面加上了ai搜素的功能,以及新增了联网搜索的历史记录。
  4. 从初赛到复赛冲刺:大部分时间都在新增功能和修改缺陷。在这个过程中发现了很多的缺陷,也放弃了很多计划的功能。比如最开始我希望把大厨skill做成一个可用的agent,但是工时计算下来确实不够,当时主要的迭代时间都集中在周末,或者希望能早点下班。而且每次更新后我都要对所有功能做一个回归。这里主要都是人工测试,发现问题后记录发给trae,提供验收标准。整个流程非常的耗时。此外最初写的agent以及搜索推荐的结果的效果非常的差,所以这里干脆就放弃了agent。改成在初赛中,用了静态内容占坑。在复赛中,又借用了笔记批注的功能间接的完成了这个功能,然后更多的时间在优化搜索的逻辑。还有app,app有个一键买菜的功能,是借用安卓的无障碍服务,去调动app的点击功能,达到直接在买菜app上(比如盒马)搜索,加入购物车的功能。但是在迁移的过程中,遇到了很多网页端没有,但是app端很严重的bug。最后也是干脆放弃了app的开发,以完成网页端内容为主要方向。

关键问题与解决思路

Q1:冰箱有豆干+芹菜+猪肉+辣椒,为什么不推"香干芹菜炒肉"? A:后端食材的归一化 缺"香芹→芹菜"“蒜头→蒜”"香干→豆干"等别名,导致菜谱核心食材大面积误判缺失,该菜被误判降低权重最后惩罚沉底。最后补全同义词归一化后正常命中。

Q2:有猪肉没有鱼却推荐"红烧鲤鱼"? A:红烧鲤鱼这个菜,其中的食材包含猪肉。这里猪肉的作用主要是提供风味但是并不是主要食材,由于当时没有对菜谱中的食材做主次分类,导致了所有食材的权重一致,推荐内容就出现了很奇怪的结果,越复杂做法的菜越能看出问题。最后对食材做了主次的权重加成,在没有主要食材的前提下,不会推荐这个菜。

Q3:冰箱有豆干、芹菜、猪肉、辣椒,凭什么推荐红烧肉而不是香干芹菜炒肉? A:红烧肉这道菜把糖、姜、葱、蒜这些调料全算成"核心食材",看起来核心食材全凑齐了。但它其实只有"肉"算真食材,却靠菜名含"红烧肉"三个字拿到额外加分。我们对这种"拿调料充数"的菜取消加分,香干芹菜炒肉就能排回第一。

Q4:明明改了打分规则,为什么推荐结果还是没变? A:因为后端先返回的菜会直接跳过新规则,只有后端没返回的菜才走新打分。等于新规则只管"新补进来的菜",老菜还用旧分。改成后端返回的菜也要重新打分,大家同一个标准比,结果就对了。

五. TRAE 实践过程

5.1 使用 TRAE 完成产品开发的完整流程

菜厨厨(caichuchu-chef)是一款基于 AI 的智能菜谱推荐应用,核心功能是根据冰箱现有食材智能推荐可做的家常菜。整个产品从设计到上线完全在 TRAE 中完成,经历以下五个阶段:

阶段一:项目初始化与架构搭建

  • 使用 TRAE 搭建前后端分离架构:前端纯 HTML/CSS/JS(无框架依赖),后端 Python FastAPI + RAG 向量检索
  • 菜谱数据集 362 道家常菜,含完整食材列表、核心食材标记、烹饪步骤、营养描述
  • 双端部署:Hugging Face Spaces(后端)+ vercel(前端)

阶段二:核心推荐引擎开发

  • 后端 RAG 向量检索 + 规则评分双引擎:先语义召回 150 候选菜谱,再用规则评分精排
  • 前端 localItemMatches 三层食材匹配:严格相等 → CanonicalMap 归一 → INGREDIENT_CLASS_MAP 主类匹配
  • 构建食材归一化体系: INGREDIENT_SYNONYM_GROUPS 18 组同义词等价类(豆干=香干、芹菜=香芹、猪里脊=里脊肉等),后端 ALIAS_MAP + EQUIVALENCE_GROUPS 双向同步

阶段三:推荐质量深度调优(核心攻坚战)

  • 用户反馈"冰箱有豆干+芹菜+猪肉+辣椒,却推荐红烧鲤鱼/徽派红烧肉"的问题
  • 在 TRAE 中使用 SearchCodebase 定位根因,发现四个叠加 bug:后端归一化缺失、水产菜未硬淘汰、伪核心菜骗加分、前端 supplementExactMatches 跳过后端返回的菜
  • 四层修复后本地实跑 362 菜谱验证:香干芹菜炒肉 #1 (238分)、红烧鲤鱼 :no_entry:淘汰

阶段四:UI/UX 设计与迭代

  • 菜谱图片双层 fallback:loremflickr 真实图搜索 → pollinations.ai AI 同步生成 → emoji 兜底

  • 做菜日历时间线对齐修复、B 站视频跳转、购物清单复制、大厨笔记标签系统等功能迭代
    阶段五:测试与部署

  • 构建前端单元测试框架 debugLocalRecipeRanking :4 个场景,Console 自动打印得分明细和断言结果

  • 创作者模式:5 次点击标题解锁,一键加载演示场景

  • 每次修复后 git push origin main && git push hf main 双端同步部署

5.2 开发关键步骤截图和关键任务 Session ID

新增大厨笔记的功能

.3300052071368056:74cfeb9832c682c287e10295710c2b5e_6a31618735dffd51ff32e2db.6a64b18e0a4fa4144e182fe0.6a64b18ae16a153b4b6a1534:Trae CN.T(2026/7/25 20:52:30)

菜谱中的大厨笔记和大厨总结功能

.3300052071368056:c7e97cbb5afc37832e4837272c03f457_6a31618735dffd51ff32e2db.6a64c3250a4fa4144e183232.6a64c325e16a153b4b6a1537:Trae CN.T(2026/7/25 22:07:33)

大厨总结功能的修复

.3300052071368056:e3b8f901ced5eb0b8fc249096c8370b7_6a31618735dffd51ff32e2db.6a657eda0a4fa4144e18339a.6a657ed9e16a153b4b6a153a:Trae CN.T(2026/7/26 11:28:26)

统一笔记的归属


.3300052071368056:e3b8f901ced5eb0b8fc249096c8370b7_6a31618735dffd51ff32e2db.6a657eda0a4fa4144e18339a.6a657ed9e16a153b4b6a153a:Trae CN.T(2026/7/26 11:28:26)

做菜总结的需求

.3300052071368056:41f6816b9b3d7fd33d726192a1dc6dbd_6a31618735dffd51ff32e2db.6a676f06221e8d3c704f4dc7.6a676f064746daaa9cef1686:Trae CN.T(2026/7/27 22:45:26)

修改菜谱中,缺失步骤的缺陷,以及笔记中的错位问题

.3300052071368056:f6b77607371f0ce55da16e1a043c914d_6a31618735dffd51ff32e2db.6a68c958221e8d3c704f5af6.6a68c9584746daaa9cef168b:Trae CN.T(2026/7/28 23:23:04)

六:技术方案分享

技术栈 :

  • 前端:原生 HTML/CSS/JS,无框架依赖;LXGW WenKai + Noto Serif SC 字体组合
  • 后端:Python FastAPI + RAG 向量检索(sentence-transformers 嵌入 + 余弦相似度)
  • 数据:362 道家常菜谱 JSON,含 coreIngredients / requiredIngredients / seasonings 三级食材分层
  • 部署:Hugging Face Spaces(后端)+ GitHub Pages(前端)
  • AI:OpenAI SDK 代理调用大模型生成菜谱推荐 + pollinations.ai 图片生成
    关键实现思路 :
  1. 三级食材分层模型 :coreIngredients(核心主料,决定菜能否做)/ requiredIngredients(全部所需)/ seasonings(调料,默认已有),评分时分别加权,核心缺失扣分最重
  2. 食材归一化双端同步 :前端 INGREDIENT_SYNONYM_GROUPS 18 组等价类 + 后端 ALIAS_MAP + EQUIVALENCE_GROUPS ,确保"豆干=香干"“芹菜=香芹”"猪里脊=里脊肉"等别名双向打通,解决同一食材不同叫法导致的匹配失败
  3. 伪核心惩罚机制 :菜谱 coreIngredients 中非调料占比 ≤25% 时,取消家常菜关键词加成,防止"把调料塞进核心食材列表骗高分"(如徽派红烧肉 6 个核心中 5 个是调料)
  4. 水产硬淘汰规则 :冰箱无水产食材时, recipe.category==aquatic 的菜谱直接 return None,不进入推荐队列(解决"没鱼却推荐红烧鲤鱼")
  5. supplementExactMatches 覆盖替换 :后端 RAG 返回的菜也必须走前端 Tier-A 新评分,保证比较公平(解决"后端高分菜跳过新规则")
  6. 图片双层 fallback :loremflickr 真实图搜索(按菜名+关键词)→ pollinations.ai AI 同步生成 → emoji 兜底,FNV-1a 稳定种子保证同一菜每次显示同一图

七:商业化和社会价值分析

菜厨厨解决的核心痛点是"冰箱里有食材但不知道能做什么菜"。:

  • 减少食材浪费 :临期食材自动加分推荐,优先消耗
  • 降低烹饪门槛 :独居年轻人、忙碌上班族无需翻菜谱,扫码录入食材即可获得推荐
  • 减少外卖依赖 :鼓励在家做饭,促进健康饮食
  • 饮食包容性 :支持自定义饮食偏好(不吃辣、素食等)和过敏原硬过滤

目标用户画像

  • 核心用户 :25-40岁都市白领、新手厨娘/厨夫,有做饭意愿但不擅长搭配
  • 次级用户 :注重健康的家庭主妇、健身减脂人群、独居青年
  • 潜在用户 :老年人群体(需简化交互)、大学生宿舍党

盈利模式

模式 描述 **可行性 **
食材电商导流 推荐菜谱时关联缺失食材,跳转京东到家/盒马/叮咚买菜,抽取CPS佣金 ★★★★★ 最契合核心场景
高级订阅 月度会员解锁:营养分析、AI大厨无限次推荐、个性化饮食方案、专属大厨笔记云同步 ★★★★☆
品牌广告合作 调味品品牌(海天、李锦记)、厨具品牌(苏泊尔、美的)原生植入菜谱详情页 ★★★★☆
菜谱付费内容 知名大厨/IP联名菜谱包、地域菜系专题、节日主题菜单 ★★★☆☆
B端授权 食材归一化算法、推荐引擎授权给生鲜平台/智能冰箱厂商 ★★★☆☆ 长期价值高

核心竞争壁垒

  • 食材归一化引擎 :18组同义词等价类 + 三层匹配机制,竞品难以快速复制
  • 推荐算法精度 :核心命中加分 + 伪核心惩罚 + 水产硬淘汰,确保推荐合理性
  • 临期食材优先 :直接击中"减少浪费"痛点,形成用户粘性

市场空间

  • 中国家庭烹饪市场规模超万亿,生鲜电商2025年预计突破8000亿
  • 直接竞品(下厨房、豆果美食)以"搜索菜谱"为主,缺少"冰箱驱动"反向推荐
  • 差异化定位:“告诉你能用现有食材做什么"而非"教你怎么做某道菜”

八:产品迭代规划

  1. 新增用户登陆界面 :真正意义上的一个app,而非网页一样展示所有的功能
  2. 大厨笔记 :后面希望做成真的一个agent。如果把做菜比做开车的话,那这个agent就是一个导航的功能。可以在你做到某个步骤,或者快到某个步骤的时候,提前给出提醒或者操作手法。我比较希望把笔记也归到agent的内容中。提供文字指导和语音指导。
  3. 家庭组 :多用户模式下,提供家庭组,家庭组可以共享笔记以及所有的并集功能
  4. 季节性推荐 :加上时令食材调整推荐权重,以及更多风味菜谱(比如贵州菜)
  5. 社区分享 :用户上传自定义菜谱,自定义做法,丰富菜谱库和笔记功能