前言:為什麼要自己做 LINE 記帳機器人?
過去我曾使用過 AppSheet 等工具來打造個人記帳系統,功能雖然齊全,但每次要記帳都必須特地打開 App、點選表單、手動輸入數字與項目,久了難免覺得繁瑣、容易偷懶中斷。
我不禁思考:「能不能直接在每天都在用的 LINE 裡面,隨手傳一句話(例如『早餐 80 元』)或是直接拍一張收據發票照片,就讓 AI 自動辨識並幫我寫入資料庫?」
為了實現這個想法,我請 Google AI Studio 協助撰寫 Google Apps Script(GAS),串接 Gemini 1.5 Flash 模型與 LINE Messaging API,成功打造出這款隨傳隨記的「AI 記帳小幫手」!
系統架構與運作流程
整個自動化記帳的運作邏輯如下:
使用者端:在專屬的 LINE 官方帳號/聊天室中傳送純文字或消費明細/收據照片。
LINE Webhook:將訊息推送到部署好的 Google Apps Script(GAS)。
Gemini AI 辨識:GAS 將文字或圖片送到 Google AI Studio(Gemini API) 進行自然語言理解與圖片文字辨識(OCR),萃取出「日期、收支類型、項目分類、消費項目、金額、付款方式」等結構化資料。
寫入試算表:解析完成的資料自動追加到 Google 試算表(Google Sheets) 的最新一列。
事前準備工作(三大要素)
在開始撰寫程式碼之前,需要先備妥以下三項資源:
1. 建立 Google 試算表
新增一張空的 Google 試算表,記錄網址中的 試算表 ID(Spreadsheet ID)。
在第一行(標頭)依序設定欄位:
日期|分類(收/支)|項目|金額|付款方式|記帳時間|備註
2. 申請 LINE Developers Messaging API
前往 LINE Developers 註冊並建立一個新的 Provider 與 Messaging API Channel。
在「Messaging API」設定頁籤中,發行並複製 Channel Access Token(長期憑證)。
重要提醒:記得在 LINE Official Account Manager 後台關閉「自動回應訊息」,並開啟「Webhook」,避免 LINE 預設的自動回應干擾機器人。
3. 取得 Google Gemini API Key
開發過程與 AI Studio 除錯實戰
透過 Google AI Studio 生成程式碼雖然快速,但在實際串接時難免會遇到環境與版本變更的問題。以下是我在與 AI 對話互動、除錯時的實務經驗:
1. 為什麼選擇 Gemini 1.5 Flash?
回應速度快:相較於 Pro 版本,Flash 的延遲極低,非常適合聊天機器人即時回應。
視覺辨識能力強:無需手動撰寫複雜的正規表達式(Regex),即可精準辨識發票上的日期、消費明細與總金額。
免費額度充裕:AI Studio 提供非常慷慨的免費額度,完全能滿足個人日常記帳需求。
2. 遇見 API 版本錯誤(404 / Model Not Found)
在測試初期,原本程式碼調用的模型名稱過舊,出現了 API 報錯。
解決方式:讓 AI Studio 寫了一段簡單的「診斷工具」程式碼(呼叫 ListModels API),列出目前 API Key 支援的所有可用模型清單,確認當前支援的最新名稱(如 gemini-1.5-flash-latest 或預覽版本)後替換即可正常運作。
3. 流量過大(High Demand)的使用者友善提示
當免費版 API 瞬間請求過多時,可能會出現 HTTP 429 或 503 繁忙錯誤。
原本系統會直接噴出冰冷的錯誤程式碼,讓使用者一頭霧水。
我請 AI 修改 try-catch 區塊,將錯誤訊息改為溫馨提示:
「系統現在有點忙碌,請 10 秒後再試一次,或檢查一下輸入格式!」
4. 解決年份記憶偏差與擴充「付款方式」
日期校正:AI 有時會受到模型訓練切點影響,預設為過去的年份。因此在 GAS 送出 Prompt 時,務必直接將**當前系統日期(Current Date)**動態代入 Prompt 中,讓 AI 有明確的時間基準。
擴充付款方式:後續只要跟 AI 說:「我想加入付款方式(現金、信用卡、LINE Pay、iPASS Money 等)」,AI 就會自動更新 Prompt 與解析格式,並重新給出完整的 GAS 程式碼。
實測成果展示
完成 GAS 部署並將 Webhook 網址填回 LINE Developers 後,實際測試效果非常驚豔:
1. 文字隨手記
輸入:買早餐 80元
LINE 回應與寫入:
類型:支出
分類:餐飲
項目:早餐
金額:80
付款方式:現金
2. 圖片拍照即記(發票 / 收據)
發票實測 1(威秀影城):直接拍下兩張電影票與刷卡簽單,AI 自動辨識為「支出 / 娛樂 / 威秀影城(希望:末日水戰電影票) / 金額 222 / 信用卡」。
收據實測 2(醫院看診單):拍下新竹馬偕醫院回診收據,AI 自動抓出「支出 / 醫療 / 新竹馬偕紀念醫院看診費 / 金額 570」。
3. 試算表統計分頁
所有透過 LINE 傳送的資料都會即時寫入試算表第一頁;另外建立第二張統計工作表,透過公式彙整每月在餐飲、水電、交通、醫療等各類別的總支出與總收入,每個月的財務狀況一目了然!
實用小技巧
LINE 聊天室置頂:將這個記帳機器人聊天室在手機端「設為置頂(Pin)」,買完東西拿起手機花三秒鐘打個字或拍張照,從此不再忘記記帳!
善用完整程式碼提示:如果對程式碼不熟悉,當 AI 提供片段修改時,可以直接告訴它:「請給我完整的程式碼」,直接全選複製貼上到 GAS,避免手動拼接出錯。
沒有留言:
張貼留言