雖然昨天已經部署完成,不過前一版的流程架構還沒更新,今天就來更新成正確的吧!
我的「每拍呷」專案主要使用了 Google Cloud 提供的多項服務,它們各司其職,共同建構出一個完整的系統。
LINE Messaging API:這是 LINE 官方提供的介面,負責接收用戶訊息,並將其轉發到後端服務。
Google Cloud Run:這是我的後端服務。它是一個無伺服器(Serverless)的計算平台,能夠自動接收 LINE 的訊息,並執行我的程式碼。它最大的優點是「用多少、付多少」,在沒有請求時會自動縮減到零,我評估後覺得是現階段正在學習的我,最適合的降低成本選項。
Gemini 2.5 Flash:能夠同時理解文字和圖片。我的 LINE BOT 能正確辨識營養標示照片,都是它的功勞,甚至包裝有皺褶的狀況下也可以正確辨識,實在是很不錯!
Cloud Firestore:一個 NoSQL 文件資料庫,適合儲存結構化資料。我用它來儲存用戶的性別、身高、體重,這樣用戶就不用每次使用都要重新更新資訊。
Firebase Storage:一個雲端檔案儲存服務,適合儲存非結構化檔案。我的專案將 TTS(文字轉語音)生成的音檔存放在這裡,這樣後續才能轉URL讓LINE拿到。
Google Cloud Text-to-Speech (TTS):一個將文字轉換為自然語音的服務,為我的分析報告提供了生動的語音呈現,我選用的是女生的Leda,風格是年輕有活力。
用戶加入 LINE BOT。
⬇️
初次使用時更新個人資訊(性別、身高、體重)
⬇️
上傳營養標示照片。
⬇️
收到BOT回傳分析報告和語音檔。
⬇️
完成!
我的重點就是要簡單明瞭、介面友善,長輩也可以輕鬆使用!
用戶 ➡️ LINE Messaging API:用戶發送訊息給 LINE。
LINE Messaging API ➡️ Cloud Run:LINE 將訊息轉發給後端。
Cloud Run ➡️ Gemini API:後端呼叫 AI 服務。
Cloud Run ⬅️➡️ Firestore:後端與資料庫進行讀寫互動。
Cloud Run ➡️ TTS 服務:後端發送文字給 TTS 服務。
TTS 服務 ➡️ Firebase Storage:TTS 服務將生成的音檔存入檔案庫。
Firebase Storage ➡️ LINE Messaging API:後端取得音檔網址URL,並回傳給 LINE。
LINE Messaging API ➡️ 用戶:LINE 將最終結果和語音訊息傳送給用戶。
基本上就是讓Google一條龍服務了🤣
這是我的「每拍呷」LINE BOT 最終的流程架構圖。
希望能清楚展示訊息從用戶發出、經過後端處理、再回到用戶手上的完整旅程。
➡️準備好程式碼main.py、requirements.txt、Dockerfile
➡️安裝 Google Cloud CLI
➡️終端機輸入gloud指令、推送到 Artifact Registry
➡️將各項金鑰存於環境變數
➡️部署到 Cloud Run 服務
➡️獲得服務網址(URL)
➡️設定為 LINE Webhook
➡️成功上線!
明天就是鐵人賽的最後一天了,到時候來分享做這個Side Project的心得,也很開心自己能在預計的時間內完成,甚至能做原本我以為做不來的資料庫;
希望跟我一樣正在第一次做Side Project的新手大大都能順利上線,收穫滿滿!