iT邦幫忙

2025 iThome 鐵人賽

DAY 29
0
自我挑戰組

從零開始的AI學習之路:非本科轉職的30天挑戰記系列 第 29

D29 | 我的Side Project 每拍呷--更新流程架構篇

  • 分享至 

  • xImage
  •  

雖然昨天已經部署完成,不過前一版的流程架構還沒更新,今天就來更新成正確的吧!

我的「每拍呷」專案主要使用了 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,風格是年輕有活力。

三種流程步驟:

步驟一:定義使用者旅程(User Journey)

用戶加入 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 最終的流程架構圖。
希望能清楚展示訊息從用戶發出、經過後端處理、再回到用戶手上的完整旅程。

https://ithelp.ithome.com.tw/upload/images/20250903/201779744bzW7p0Hb3.png

部署流程

➡️準備好程式碼main.py、requirements.txt、Dockerfile
➡️安裝 Google Cloud CLI
➡️終端機輸入gloud指令、推送到 Artifact Registry
➡️將各項金鑰存於環境變數
➡️部署到 Cloud Run 服務
➡️獲得服務網址(URL)
➡️設定為 LINE Webhook
➡️成功上線!

明天就是鐵人賽的最後一天了,到時候來分享做這個Side Project的心得,也很開心自己能在預計的時間內完成,甚至能做原本我以為做不來的資料庫;
希望跟我一樣正在第一次做Side Project的新手大大都能順利上線,收穫滿滿!


上一篇
D28 | 我的Side Project 每拍呷--部署篇
下一篇
D30 | 我用AI打造「每拍呷」LINE BOT的心路歷程
系列文
從零開始的AI學習之路:非本科轉職的30天挑戰記30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言