現在,陸續完成了 my-refrigerator 的核心功能:可以管理冰箱裡的食材、建立採買清單、查看食譜與收藏最愛食譜,也加入了「全聯特價食材」功能。到了今天,我們終於可以把這些資料真正串在一起,讓 AI 開始思考:
「我現在可以煮什麼?」
對喜歡下廚的人來說,最困擾的往往不是沒有食材,而是冰箱裡明明有很多東西,卻不知道今天到底可以煮什麼。
例如今天冰箱裡有雞蛋、番茄、雞胸肉和高麗菜,使用者可能完全不知道該怎麼搭配。但如果系統能夠根據目前的食材,自動推薦幾道料理,就能省下很多搜尋食譜的時間。
因此,今天要使用 Claude Code 實作 AI 食譜推薦功能。
這一次,我們會建立新的 AI Recommendation Skill。
如果 AI Vision Skill 負責「讓 AI 看懂圖片」,那麼 AI Recommendation Skill 的角色就是:
「規範 AI 應該如何根據資料進行推薦。」
推薦功能看起來只是把資料丟給 AI,但真正要做好,還需要思考推薦條件、資料來源、Prompt、輸出格式,以及推薦結果如何被使用者理解。
因此,在開始實作之前,可以讓 Claude Code 閱讀:
CLAUDE.md
Database Skill
Backend/Data Skill
Feature Skill
AI Vision Skill
AI Recommendation Skill
接著提出需求:
「請閱讀目前專案的 Context 與相關 Skill,設計 my-refrigerator 的 AI 食譜推薦功能。根據使用者目前的冰箱食材推薦適合的料理,並優先推薦能使用現有食材完成的食譜。請先分析推薦流程與 Prompt,不要立即修改檔案。」
這裡最重要的,就是先定義推薦依據。
最基本的條件可以是「目前冰箱裡有哪些食材」。
例如:
雞蛋
番茄
高麗菜
雞胸肉
AI 可以根據這些資料推薦:
🍳 番茄炒蛋
🍗 番茄雞胸肉
🥬 高麗菜炒蛋
但是,如果只做到這裡,還不算真正的個人化推薦。
我們還可以加入更多條件。
例如使用者收藏過哪些食譜?平常喜歡什麼料理?有哪些食材不喜歡?今天有哪些食材即將過期?最近哪些食材正在特價?
這些資料都可能影響推薦結果。
因此,AI Recommendation Skill 可以定義推薦優先順序,例如:
1. 優先使用冰箱現有食材
2. 優先使用即將過期的食材
3. 優先推薦使用者收藏或喜歡的料理
4. 優先搭配近期特價食材
5. 減少需要額外採買的食材
這樣 AI 的推薦就不只是「我想到什麼就推薦什麼」,而是有一套可以解釋的規則。
例如今天冰箱裡有雞蛋與番茄,而全聯目前番茄正在特價,系統就可以推薦:
番茄炒蛋
目前冰箱已有:雞蛋、番茄
需要額外購買:無
預估料理時間:15 分鐘
這種推薦對使用者來說會比單純顯示「番茄炒蛋」更有價值,因為它告訴我們:
為什麼推薦這道菜?
這也是 AI Recommendation Skill 很重要的一部分。
AI 的輸出也最好使用結構化格式,而不是單純回傳一大段文字。例如:
{
"recommendations": [
{
"recipe": "番茄炒蛋",
"reason": "目前冰箱已有雞蛋與番茄",
"missingIngredients": [],
"difficulty": "easy",
"estimatedMinutes": 15
}
]
}
如此一來,Vue 前端就可以把資料轉換成漂亮的推薦卡片,而不需要從一大段自然語言中猜測資料。
不過,這裡也要注意一個重要問題:
AI 推薦不代表 AI 可以任意捏造食譜。
如果我們已經有自己的 Recipe 資料庫,第一階段可以優先讓 AI 從現有食譜中進行推薦,而不是讓 AI 隨意生成一個不存在的食譜。
也就是:
冰箱食材
↓
取得可用食材
↓
查詢 Recipe
↓
AI 分析匹配程度
↓
排序
↓
推薦結果
這樣可以讓推薦結果更加穩定,也比較容易控制資料來源。
未來如果要進一步加入 AI 自動生成食譜,也可以在這個基礎上慢慢擴充。
另外,推薦結果也應該保留使用者操作的可能性。
例如:
❤️ 收藏食譜
🛒 加入採買清單
🍳 開始料理
這樣 AI Recommendation 就能再次和前面的功能串起來:
我的冰箱
↓
AI 食譜推薦
↓
選擇一道料理
↓
缺少食材?
↙ ↘
沒有 有
↓ ↓
開始料理 加入採買清單
這才是我們想打造的 my-refrigerator。
不是單純增加一個 AI 按鈕,而是讓 AI 真正參與使用者的生活流程。
完成今天的功能後,my-refrigerator 已經開始具備完整的 AI 應用雛形:
看懂食材 → 管理食材 → 掌握特價 → 推薦料理 → 規劃採買。
而 AI Recommendation Skill 也讓 Claude Code 不只是「幫我們呼叫 AI API」,而是開始遵循一套完整的推薦邏輯。
接下來,我們就要進入專案的品質與工程化階段。
使用 Claude Code 進行 Test、Debug 與 Refactoring,讓目前已經完成的 my-refrigerator 不只是「可以動」,而是變得更加穩定、可靠,也更容易維護。