iT邦幫忙

2026 iThome 鐵人賽

DAY 25
0
Claude AI

跟 Claude Code CLI 變成好朋友系列 第 25

【Day25】使用 Claude 串接 AI:拍照辨識冰箱食材

  • 分享至 

  • xImage
  •  

「我的冰箱」、「採買清單」、「食譜」與「最愛食譜」等核心功能完工後。現在回頭想想,還是有一個需求沒有解決:

難道每次把食材放進冰箱,都要自己一個一個打字輸入嗎?

如果今天剛買了一袋青菜、幾顆雞蛋、一些番茄和雞胸肉,要全部手動輸入名稱、數量與分類,其實還是有點麻煩。

這也是 my-refrigerator 最希望解決的問題之一。

因此,今天要開始加入 AI,讓使用者可以直接使用手機拍攝冰箱或食材照片,再由 AI 協助辨識照片中的食材,將辨識結果轉換成可以加入「我的冰箱」的資料。

這一天,我們會建立新的 AI Vision Skill

如果 Feature Skill 是規範「一個功能應該怎麼開發」,那麼 AI Vision Skill 就可以專門規範「AI 圖像辨識功能應該怎麼設計與使用」。

例如可以規定 AI Vision 注意流程應該是:

圖片輸入
↓
AI Vision 分析
↓
辨識食材
↓
結構化輸出
↓
使用者確認
↓
寫入冰箱

這裡有一個非常重要的觀念:

不要讓 AI 辨識完就直接修改資料庫。

例如使用者拍了一張照片,AI 判斷裡面可能有:

雞蛋
番茄
高麗菜
雞胸肉

這些結果應該先顯示給使用者確認:

AI 辨識結果

🥚 雞蛋

🍅 番茄

🥬 高麗菜

🍗 雞胸肉

[確認加入冰箱]

確認之後,才真正寫入 Supabase。

這樣做非常重要,因為 AI Vision 並不是百分之百正確。

照片中的食材可能被遮住、光線不足,也可能有相似的食材。例如 AI 可能把青江菜判斷成小白菜,或者無法確定照片裡到底有幾顆雞蛋。

因此,我們應該把 AI 定位成:「協助輸入資料的助手」;而不是:「永遠正確的資料來源」。

接著,可以讓 Claude Code 使用 AI Vision Skill 協助我們規劃整個功能。

例如:

「請閱讀 CLAUDE.md、Feature Skill 與 AI Vision Skill,設計 my-refrigerator 的『拍照辨識食材』功能。使用者可以從手機拍照或選擇圖片,交給 AI Vision 辨識食材,回傳結構化資料,讓使用者確認後再加入冰箱。請先提出架構與資料流程,不要修改檔案。」

這時候 Claude Code 可以協助我們思考圖片上傳、AI API、資料格式以及錯誤處理。

AI 的輸出最好不要只是:

雞蛋、番茄、高麗菜

而是要求 AI 回傳結構化資料,例如:

{
  "items": [
    {
      "name": "雞蛋",
      "category": "蛋類",
      "confidence": 0.95
    },
    {
      "name": "番茄",
      "category": "蔬菜",
      "confidence": 0.91
    }
  ]
}

這樣程式就比較容易處理,也方便我們在畫面上顯示辨識結果。

另外,AI API Key 也不能直接放進 Vue 前端。

因為 GitHub Pages 是公開的靜態網站,如果把 API Key 寫在前端程式碼中,任何人都有可能取得。因此比較安全的方式,是讓前端將圖片交給後端服務,再由後端呼叫 AI API。

整體流程可以變成:

手機拍照
   ↓
Vue
   ↓
後端 / Edge Function
   ↓
AI Vision
   ↓
辨識食材
   ↓
回傳結構化結果
   ↓
使用者確認
   ↓
Supabase PostgreSQL

這也是今天另一個重要的學習:AI 功能不只是呼叫一個 API。

我們還需要思考 Prompt、輸出格式、錯誤處理、權限、安全性,以及 AI 判斷錯誤時使用者該怎麼修正。

在完整思考完架構定案後,一樣可以直接接續請 Claude 開始實作功能,

等待完成後,my-refrigerator 開始真正具備「智慧冰箱」的雛形了!

以前需要:

看到食材 → 打開 App → 手動輸入 → 儲存

現在可以變成:

拿起手機 → 拍照 → AI 辨識 → 確認 → 加入冰箱。

這就是 AI 真正融入產品流程的地方。

而 AI Vision Skill 也會成為之後 AI 功能的重要基礎。未來如果要辨識購物發票、食材包裝、保存期限,甚至分析料理照片,都可以在這套 Skill 上繼續擴充。

下一步,我們可以讓 AI 不只「看懂冰箱裡有什麼」,還能進一步思考:

「根據我現在冰箱裡的食材,我今天可以煮什麼?」

我們將使用 Claude 建立**「全聯特價食材」**功能,讓 my-refrigerator 能夠整合外部特價資訊,幫助使用者更方便地掌握近期優惠食材,並安排採買計畫。


上一篇
【Day24】使用 Claude 建立食譜與最愛食譜功能
系列文
跟 Claude Code CLI 變成好朋友25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言