前言:為什麼要自己做 LINE 記帳機器人?
系統架構與運作流程
使用者端:在專屬的 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
前往 Google AI Studio 登入 Google 帳號。點擊 Get API Key ,建立並複製專屬的 API 金鑰。
開發過程與 AI Studio 除錯實戰
1. 為什麼選擇 Gemini 1.5 Flash?
回應速度快 :相較於 Pro 版本,Flash 的延遲極低,非常適合聊天機器人即時回應。視覺辨識能力強 :無需手動撰寫複雜的正規表達式(Regex),即可精準辨識發票上的日期、消費明細與總金額。免費額度充裕 :AI Studio 提供非常慷慨的免費額度,完全能滿足個人日常記帳需求。
2. 遇見 API 版本錯誤(404 / Model Not Found)
解決方式 :讓 AI Studio 寫了一段簡單的「診斷工具」程式碼(呼叫 ListModels API),列出目前 API Key 支援的所有可用模型清單,確認當前支援的最新名稱(如 gemini-1.5-flash-latest 或預覽版本)後替換即可正常運作。
3. 流量過大(High Demand)的使用者友善提示
原本系統會直接噴出冰冷的錯誤程式碼,讓使用者一頭霧水。 我請 AI 修改 try-catch 區塊,將錯誤訊息改為溫馨提示: 「系統現在有點忙碌,請 10 秒後再試一次,或檢查一下輸入格式!」
4. 解決年份記憶偏差與擴充「付款方式」
日期校正 :AI 有時會受到模型訓練切點影響,預設為過去的年份。因此在 GAS 送出 Prompt 時,務必直接將**當前系統日期(Current Date)**動態代入 Prompt 中,讓 AI 有明確的時間基準。擴充付款方式 :後續只要跟 AI 說:「我想加入付款方式(現金、信用卡、LINE Pay、iPASS Money 等)」,AI 就會自動更新 Prompt 與解析格式,並重新給出完整的 GAS 程式碼。
實測成果展示
1. 文字隨手記
輸入 :買早餐 80元LINE 回應與寫入 :類型:支出 分類:餐飲 項目:早餐 金額:80 付款方式:現金
2. 圖片拍照即記(發票 / 收據)
發票實測 1(威秀影城) :直接拍下兩張電影票與刷卡簽單,AI 自動辨識為「支出 / 娛樂 / 威秀影城(希望:末日水戰電影票) / 金額 222 / 信用卡」。收據實測 2(醫院看診單) :拍下新竹馬偕醫院回診收據,AI 自動抓出「支出 / 醫療 / 新竹馬偕紀念醫院看診費 / 金額 570」。
3. 試算表統計分頁
實用小技巧
LINE 聊天室置頂 :將這個記帳機器人聊天室在手機端「設為置頂(Pin)」,買完東西拿起手機花三秒鐘打個字或拍張照,從此不再忘記記帳!善用完整程式碼提示 :如果對程式碼不熟悉,當 AI 提供片段修改時,可以直接告訴它:「請給我完整的程式碼 」,直接全選複製貼上到 GAS,避免手動拼接出錯。
檔案下載: 彰化一整天_LINE結合Gemini自動記帳助理 https://imingho.nekoweb.org/file.htm?pid=190 相關教學: 【教學】如何取得 LINE User ID 並透過 Google 試算表自動發送訊息 https://www.youtube.com/watch?v=waTwmM8LfVM