夜雨聆风学习资料网

ARTICLE · 1065226

我做了个 AI 厨子

我做了个 AI 厨子

一、先从最烦的那件事说起

我跟着网上菜谱做饭没什么障碍,障碍在饭后。鸡胸一块是 150 克还是 300 克,"油少许"是一勺还是半锅,热量能差出一倍。减脂期想记账,得打开热量 App 一样样搜、一样样填克重,我从来没坚持到第四天。
我想要的东西其实就一句话:拍张照或者说句话,给我一张能照着做的菜谱,每样食材标克重,做完告诉我这顿吃了多少,而且那个数字得真的算过。
这次用的模型是 Seed-2.1-pro 的 0915 版本,即 Seed-2.1-pro-0915。选它的原因很具体:这个 demo 要同时用两块能力,看懂照片的视觉理解,和老老实实走工具调用的 Agent 能力,正好都是这次升级的主打方向。
正式在 TRAE 里写代码之前,我先在豆包里把想法聊了一遍:丢给它一张菜的照片,让它报食材、给克重、算营养。单轮聊下来答案挺像那么回事,但多问两遍就露馅了——克重每次给的不一样,热量是它凭感觉报的,也没有人帮我把关识别对错。这轮验证反而帮我定了产品形态:看图和写菜交给模型,确认和算数必须放到它外面。这也是后来两条关卡的由来。
所以在工作时间之余,在 TRAE 里在花了点时间,把这个东西做了出来,名字很土,叫灶台军师。先上成品,各位客官体验下
关注
重播 分享

二、三个入口,一条流水线

入口只有三个,都是做饭时真会遇到的情况:拍一道外面吃到的菜复刻;说一句话,比如"减脂、20 分钟、有鸡胸和西兰花";拍一眼冰箱清库存。
后台做的事比"把图丢给模型等回答"要绕一些。拍照的情况下,模型先看图、报出它识别到的菜品和食材,我勾选确认之后,它才被允许开始写菜谱。菜谱生成是一个最多五轮的工具循环:信息不够就反问,需要营养数字就调计算工具,最后交结构化终稿。终稿到了服务端,还有一道本地核算:拿食材克重去查一份约 150 种中式食材的营养库,重新算一遍,把模型自己填的数字全部覆盖。

三、两道关卡

第一道是确认。模型看图之后不能直接动手,必须先给我一张清单,我把看错的、我不想吃的勾掉,把漏掉的补上。提示词里写死了:没确认和被剔除的食材,不许当作"家里有"。
                           
                           
第二道是算数。大模型报营养数据基本靠胆子,586 大卡这种数字张口就来。我的处理是把它的权限切开:菜怎么搭、步骤怎么写归它;数字一律不许它报。它交终稿,我用本地营养库按克重算,库里没有的食材单列进 unknown 明示,没标克重的调料归到 unquantified 不进合计。
还有个小测试,这里还是让我震惊了,故意上传一个北京市区地图截图,还是识别出来了!!
这次升级有个数据我挺有共鸣:工具调用可靠性的专项得分从 38.4% 提到 64.8%,方向是让模型先调工具取证、等真实结果回来再开口。我在架构里做的事差不多,只是更极端一点,把取证这步焊死在管道里。它就算想编,也没有填数字的口子。

四、跑出来的数字

一次生成 30 秒上下。菜谱出来之后,卡片底部有一条决策轨迹,写着它实际走过的工具调用和轮次,带模型名,不是装饰。演示的时候这个区块比菜谱本身还吸引人,因为一眼能看出背后是个 Agent,不是套了层皮的对话框。这里还有每道菜的克重、做法,贴心啦。

五、顺手做了个记饭的功能

起因是内人使用鲨鱼记账,每次消费都记录下,我看过鲨鱼记账的UI,相当不错;所以本DEMO部分借鉴了鲨鱼记账的形式,3 秒钟记一笔的体验很顺。我把同一套逻辑搬到了吃饭上:菜谱卡底部点"记一顿",选早中晚、日期、份数,营养按每人份乘份数自动带进去。记录页顶部是当天总热量的大数字,下面按三餐分组。数据只在浏览器本地。
单顿健不健康意义有限,一天的总量才有意义,这是我做它的原因。

六、就到这

这个项目后端是零依赖的 Node 函数,前端原生 HTML/CSS/JS,没有框架。今天做下来,真正花时间的不是写代码,是定边界:哪些事放心交给模型,哪些事必须我自己兜住。

以上实现都基于这个项目里真实发生的工程现象,不是参数复述:

  • 1. Function Calling 可当系统接口用 ——强制工具调用、JSON 不腐、一轮交稿,对照"两年前要写正则猜输出";

  • 2. VLM 过了可用线,但问题是"过度自信"不是看错 ——对应我们真实做的`confident` 字段 + 人工确认闸门;

  • 3. 约束要字段级、可验证才有效 ——"nutrition 留空由系统覆盖"比"注意健康"管用,呼应数字剥离;

  • 4. 多轮改菜超出预期 ——复合意图理解 + 主动试算;

  • 5. 短板讲透 :30 秒延迟、提示词漂移(要当代码做版本管理/回归)、thinking 按需开关的成本权衡;

  • 6. 收尾一句: 模型当推理引擎,确定性代码当最终权威 ,正好把全文观点收成技术立场。

Demo 在这里【链接/二维码】,手机打开就能拍照试,欢迎拿奇怪的冰箱来刁难它。

http://111.228.29.183

相关学习资料