iT邦幫忙

2026 iThome 鐵人賽

DAY 30
0
ChatGPT & Codex

AI 時代的輕量化開發:ChatGPT 打造 LINE 多模態記帳與續訂預警 Agent系列 第 30

[Day 30] 30 天後,我真的做出了一個 AI Agent|SubWise 鐵人賽最終章

  • 分享至 

  • xImage
  •  

前言

三十天前,我在 ChatGPT & Codex 賽道寫下了這篇系列的標題:

「AI 時代的輕量化開發:ChatGPT 打造 LINE 多模態記帳與續訂預警 Agent」

以及那句我當時其實也不太確定能不能做到的簡介:

「不需要雲端伺服器,也能打造真正好用的智慧生活應用嗎?」

「30 天將構想化為真正能上線使用的 AI Agent。」

那時候的我只有一個想法:如果不打造複雜的雲端系統,只靠 LINE、AI 和幾個輕量化服務,有沒有可能真的做出一個「可以使用」的智慧生活應用?

於是,SubWise 就這樣開始了。一開始,它只是一個還不會做什麼事情的 LINE Bot。今天,它已經可以透過自然語言幫我記帳、辨識發票、查詢消費、分析支出、管理訂閱,甚至處理修改、刪除與扣款提醒。而今天,是第 30 天,也是這場鐵人賽的最後一天——是時候回頭看看,當初寫下的那句標題,到底有沒有兌現。


從一句「你好」開始

回頭看這 30 天,其實最有感的不是最後完成了多少功能,而是可以清楚看到 SubWise 一步一步長出來。

最開始,我先讓 Flask Backend 跑起來。接著串上 LINE Webhook,讓 LINE 的訊息真的可以進入自己的 Python 程式。然後加入 Google Sheets,讓 Bot 不只是回覆訊息,而是真的可以保存資料。

再往後,Gemini 加入了。這時候 SubWise 才開始有了「理解人話」的能力。使用者不需要學習固定指令,只要說「午餐 120」,SubWise 就可以把它理解成一筆消費資料。

這也是我覺得這次專案最有趣的地方:不是讓使用者學會怎麼操作系統,而是讓系統學著理解使用者。


從記帳,到真正的生活管理

如果只有「記帳」,SubWise 其實還只是一個 AI 版的輸入工具。所以後面的開發開始往「管理」前進。

可以查詢消費,可以分析本月支出,可以知道哪個分類花最多,可以知道最高單筆消費是多少。甚至可以進一步找出「哪一天花最多錢?」——這也是後來加入「最高單日消費」的原因,因為最高單筆和最高單日其實是完全不同的事情:一筆花很多錢,不代表那一天花最多。

當這些分析慢慢加入之後,SubWise 才開始從「幫我記帳」變成:「幫我理解自己的消費。」


然後,我讓它開始管理訂閱

生活中的固定支出,除了日常消費之外,還有另一個很容易被忽略的東西:訂閱

Netflix、Spotify、YouTube Premium、ChatGPT Plus……平常每個月可能只扣幾百元,但服務一多,很容易忘記自己到底訂了什麼。因此 SubWise 後來又加入了訂閱管理。使用者可以直接說「我訂閱了 Notion,每月 150 元,下次扣款是 9 月 10 日」,系統就可以建立訂閱資料,接著還可以查詢目前有哪些訂閱,以及檢查近期是否有即將扣款的服務。

這時候 SubWise 的定位也慢慢變得更清楚:它不只是記帳工具,而是一個放在 LINE 裡面的智慧生活管理管家。


甚至,它開始看得懂發票

這是這次專案中,我自己很喜歡的一個部分。

以前記帳最麻煩的事情之一,就是看到發票之後還要自己輸入日期、金額、分類、品項……所以後來我加入 Gemini 的圖片理解能力,使用者直接把發票或收據丟給 SubWise,AI 負責從圖片中找出消費資訊,再轉換成記帳資料。

今天的最終驗收中,我也實際測試了發票辨識。一張消費圖片送進去後,SubWise 成功辨識「手搖飲,NT$60」並完成記帳。這一刻其實很有成就感,因為它已經不是單純的聊天機器人,它開始可以「看」資料、理解資料,再替使用者完成工作。


30 天後,SubWise 已經能做什麼?

目前主要功能可以整理成:

功能 說明
💰 智慧記帳 透過自然語言記錄消費
📷 AI 發票辨識 從發票、收據圖片中辨識消費資訊
🔎 消費查詢 查看目前消費紀錄、總支出與最高單筆消費
📊 消費分析 分析今天、本週、本月的支出狀況
🔥 消費洞察 找出最高支出類別、最高單筆與最高單日消費
✏️ 修改消費 修改分類、金額與消費項目
🗑️ 刪除消費 透過自然語言刪除指定紀錄
🔔 訂閱管理 建立與查詢週期性訂閱服務
⏰ 扣款提醒 檢查近期即將扣款的訂閱
🛡️ AI 錯誤處理 針對 Gemini API 的異常狀況提供友善提示

而這些功能,最後都串在同一個 LINE Bot 裡。

1|SubWise 完整功能總覽截圖

https://ithelp.ithome.com.tw/upload/images/20260831/201785270swl9VXJVB.png
https://ithelp.ithome.com.tw/upload/images/20260831/20178527x8MhfaO4YY.png
https://ithelp.ithome.com.tw/upload/images/20260831/20178527OTIqC4qXig.png

2|發票辨識實測畫面

https://ithelp.ithome.com.tw/upload/images/20260831/20178527y1W40Uxa65.png

3|GitHub Commit 歷史或專案結構總覽

https://ithelp.ithome.com.tw/upload/images/20260831/20178527hRJIxsG3w4.png


這 30 天,我真正學到的不是某一個 API

這次鐵人賽最讓我意外的,是最後發現:我原本以為自己是在學怎麼做一個 LINE Bot,但實際上,我學到的是怎麼把一個模糊的想法,慢慢拆成可以完成的小問題。

不知道怎麼串 LINE?先讓 Webhook 跑起來。
不知道怎麼保存資料?先接 Google Sheets。
不知道怎麼理解自然語言?交給 Gemini。
不知道圖片怎麼辨識?加入 Vision。
不知道功能怎麼驗證?一個一個從使用者角度測試。

遇到錯誤,也不是一次把所有東西推倒重來,而是定位問題、修改、重新測試。

這也是我這次使用 Vibe Coding 最深的體會:**AI 並沒有代替我完成專案。**它比較像是一個一直坐在旁邊的開發教練——我提出想法,AI 幫我拆問題、解釋程式、找錯誤、提出修改方式,然後我自己實際執行、測試,再把結果帶回來。一次又一次,30 天之後,這些小步驟最後真的累積成了一個可以運作的東西。


30 天,終於走到了這裡

如果把第一天和第三十天放在一起看:

Day 01:「我想做一個智慧記帳與訂閱管理 Bot。」

Day 30:「它真的可以記帳、看發票、查詢、分析、管理訂閱,還能處理修改、刪除與提醒。」

中間隔著的,不只是 30 天,而是 30 天的嘗試、錯誤、修改、測試與重新開始。

也許 SubWise 現在還不是一個完美的產品,甚至還有一些地方需要繼續改善。但對我來說,這已經足夠了。因為這次鐵人賽真正完成的,不只是 SubWise,而是讓我第一次很具體地感受到:一個原本只存在腦中的想法,真的可以一步一步變成可以使用的程式。


鐵人賽,Day 30 完成。

30 天前,我開始寫下第一行程式。30 天後,我把最後一次驗收跑完。這場鐵人賽到這裡正式結束,而 SubWise 的故事,或許才剛開始。

謝謝這 30 天,讓我真的做了一次。


後記

如果未來還要繼續開發 SubWise,下一階段可能會是:

  • 更精準的 AI 意圖判斷
  • 更完整的訂閱分析
  • 更好的 LINE UI
  • 更完善的錯誤與例外處理
  • 更完整的自動提醒
  • 更進一步的 AI 消費洞察

但那些,就留給下一個版本的 SubWise。這一次,我想先好好替這 30 天畫上一個句點。

SubWise v1.0,完成。


上一篇
[Day 29] 不是所有 API 都會乖乖工作:SubWise 的 API 防呆與錯誤處理
系列文
AI 時代的輕量化開發:ChatGPT 打造 LINE 多模態記帳與續訂預警 Agent30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言