iT邦幫忙

2025 iThome 鐵人賽

DAY 27
0
Software Development

建構跨平台AI對話機器人:從LINE到Telegram實踐SDGs推廣的30天專案紀實系列 第 27

Day 27【部署實作】 從 Colab 搬家到雲端平台 - Google Cloud Run 部署教學

  • 分享至 

  • xImage
  •  

HI!大家好,我是 Shammi!😊

挑戰倒數三天!/images/emoticon/emoticon07.gif

這段時間我在 Colab 環境下打造的 SDGs 聊天機器人,已經越來越智慧了!在 Day 26,我深入思考了 Colab 的侷限性,並討論了將機器人「搬家」到更穩定雲端平台的重要性。今天,我將把這些理論付諸實踐,正式為我的 AI 聊天機器人找到一個真正的「家」!

我選擇的雲端平台是 Google Cloud Run。在今天的 Day 27,我將手把手地帶你了解,如何將我在 Colab 中開發的 Python AI 聊天機器人,實際部署到這個方便又強大的託管雲端平台上。這是一個讓我的機器人從「實驗品」正式走向「真實服務」的關鍵步驟!GOGOGO!

(嗯...我有保護好API key)

🌐 一、 為什麼選擇 Google Cloud Run?

在眾多雲端平台中,我選擇 Google Cloud Run 的原因有以下幾點:

  • 完全託管的無伺服器平台
    Cloud Run 是一個無伺服器(Serverless)平台,這意味著不需要管理底層伺服器、作業系統或軟體。只需要專注於程式碼本身,Cloud Run 會自動部署、擴展和維護等繁瑣的運維工作。
  • 依照用量付費
    Cloud Run 採用依照用量付費模式,這對於一個剛起步的聊天機器人來說非常經濟實惠。只有當有訊息進來時,服務才會被啟動並計費,如果沒有人使用,它會自動縮減到零,完全不產生費用。
  • 與 Google AI 服務的深度整合
    由於 Cloud Run 本身就是 Google Cloud 的一部分,它能與 Generative Language API (Gemini) 等服務深度整合。這確保了我在未來使用更多 Google AI 服務時,能夠獲得最佳效能和最低延遲。

🌐 二、 將我的 AI 機器人部署到 Cloud Run 的步驟規劃

接著就開始著手進行將 Python AI 機器人從 Colab 搬到 Cloud Run,讓整個過程將變得更為直觀與簡潔。

步驟 1:準備好機器人程式碼與檔案

在部署之前,請確保所有必要的檔案都在手邊,並且已經更新到最新版本:

  • 主程式碼 (main.py):
    • 使用完整 Python 檔案。這個主程式要包含 LINE Webhook 請求的 Flask 應用,以及為應對 API 限制所加入的指數退避重試機制
  • 依賴文件 (requirements.txt):
    • 建立一個 requirements.txt 檔案,列出機器人所依賴的所有 Python 套件。
    • 內容應包含:Flask, line-bot-sdk, google-generativeai, numpy, faiss-cpu, pypdf2, gunicorn
  • 知識庫檔案
    • 從 Colab 下載你已經生成好的 sdgs_faiss.indexstored_chunks.pkl

重要:請確保這些檔案都放在同一個資料夾中,這是部署所需要的。

步驟 2:準備 Google Cloud 環境

  1. 啟用 API:確認專案已經啟用了 Cloud Run APIGenerative Language API
  2. 安裝 gcloud CLI:請確保終端機中已經安裝了 Google Cloud Command-Line Interface (gcloud)。如果尚未安裝,請參考 Google Cloud 官方文件進行安裝。

步驟 3:使用 gcloud 進行部署

都準備好後,執行一個簡單的指令,將所有檔案部署到 Cloud Run 上。這個指令會自動打包你的程式碼、安裝依賴,並建立一個可以運行的服務。

  • 開啟終端機:依照部署流程,開始存放主程式 main.py 和其他檔案的資料夾。

  • 執行部署指令

    gcloud run deploy ami-line-bot \
        --image gcr.io/google-appengine/python \
        --platform managed \
        --region asia-east1 \
        --allow-unauthenticated \
        --set-env-vars GOOGLE_API_KEY='你的 Gemini API 金鑰',LINE_CHANNEL_ACCESS_TOKEN='你的 LINE 頻道存取金鑰',LINE_CHANNEL_SECRET='你的 LINE 頻道密鑰'
    
    
    • -image:使用 Google App Engine 的官方 Python 映像檔,這樣 Cloud Run 就知道如何運行你的 Python 應用。
    • -platform managed:這會確保服務運行在完全託管的無伺服器環境中。
    • -region asia-east1:這會將服務部署在亞洲的伺服器,能有效減少延遲。
    • -allow-unauthenticated:由於 LINE 的 Webhook 請求沒有身份驗證,我們需要開啟這個選項。
    • -set-env-vars:這是最關鍵的部分!它會安全地將你的金鑰設定為環境變數,而不會讓它們暴露在程式碼中。

步驟 4:設定 LINE Webhook URL

  1. 獲取服務網址:部署成功後,gcloud 會在終端機中回傳 Cloud Run 服務網址。這個網址會像這樣:https://ami-line-bot-xxxxxxx-an.a.run.app
  2. 設定 Webhook
    • 登入 LINE Developers Console
    • 進入機器人設定,將 Cloud Run 服務網址複製,並在後面加上 Webhook 路徑(/callback)。
    • 最終的 Webhook URL 會像這樣:https://ami-line-bot-xxxxxxx-an.a.run.app/callback
    • 將這個完整的 URL 貼到 Webhook URL 欄位中,然後儲存並記得開啟 Webhook 功能

總結

今天的 Day 27,我成功地將我的 SDGs 智慧聊天機器人從 Colab 搬家到了 Google Cloud Run!這不僅解決了 Colab 的運行限制,也讓我的機器人能 24/7 不間斷地為推廣 SDGs 貢獻心力。這次的部署實戰經驗,讓我對雲端服務有了更深、更實務的理解。


上一篇
Day 26【部署前考量】為什麼不永遠用 Colab? 現有的雲端平台整理。
下一篇
Day 28【日誌與監控】 機器人上線後的維護與管理:
系列文
建構跨平台AI對話機器人:從LINE到Telegram實踐SDGs推廣的30天專案紀實29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言