iT邦幫忙

2025 iThome 鐵人賽

DAY 10
0
AI & Data

AI 營養師 + Web3 數位健康護照系列 第 10

Day10. Hugging Face Spaces 部署實作 Ep. 2:用 Google Colab 串接 Hugging Face API (+ Gradio)

  • 分享至 

  • xImage
  •  

只想讓 AI 幫忙查美食熱量、回覆健康問題,不一定要把專案公開部署到 Hugging Face Spaces!也可以考慮用 Google Colab 串接 Hugging Face API,私下訓練模型、一樣可以取得推論結果。

示意流程圖

https://ithelp.ithome.com.tw/upload/images/20251013/201292202bKUFk5zpI.jpg
(由 Perplexity 協助生成圖片)

本日重點

  • 介紹 Hugging Face API 與 Google Colab 串接的實作流程
  • 運用 Colab 實現線上推論與模型部署
  • Gradio 結合 Hugging Face API,快速打造互動式 DEMO
  • 專案程式碼結構示範及注意細節
  • 實務上的串接技巧與分享錯誤排除

一、Colab 雲端開發,專案全程私有

只要在 Colab 完成訓練、測試、推論流程,所有模型檔案、敏感程式都不會外流,不用擔心資安的問題。方便初學者利用免費 GPU 資源跑 AI 應用。

1. 建立 app.py 檔案

可以參考以下的方式:

(1) 串接 Hugging Face 預訓練模型 API

這段程式碼的目的是透過 Python 來呼叫 Hugging Face Inference API,可以使用 Hugging Face 上託管的模型來進行推理(Inference):

# 匯入 requests 模組,用於發送 HTTP 請求(例如 POST、GET 等)
import requests 

# 定義 HTTP 請求的 headers(標頭)。
# 請將 (hf_api) 換成自己的 Hugging Face API Token。
headers = {"Authorization": f"Bearer {hf_api}"}

# 使用 requests.post() 方法向 Hugging Face Inference API 發送 POST 請求
response = requests.post(

    # API 的端點 URL,請將 {your-model-id} 替換為自己的模型 ID
    "https://api-inference.huggingface.co/models/{your-model-id}",
    
    # 傳遞之前定義的 headers(包含 API Token)
    headers=headers,
    
    # 傳遞 JSON 格式的資料作為請求的內容(payload)
    # "inputs" 欄位是要傳送給模型處理的文字(例如問題)
    json={"inputs": "請問珍奶熱量多少?"}
)

# 將 API 回傳的 JSON 格式響應內容解析並印出來
# response.json() 會將 JSON 字串轉換為 Python 字典/列表
print(response.json())

此時的模型檔 (.pt) 或推論結果 (CSV/JSON) 能直接下載備份,無需開放給外部用戶

# 模型安全保存
model.save("./my_nutrition_model.pt") 

# 結果保存本地
pred.to_csv("./result.csv") 

2. 也可將檔案下載,再上傳到 Hugging Face Spaces

(1) 可以用最傻瓜的方式,從「file」上傳

https://ithelp.ithome.com.tw/upload/images/20250923/20129220WTSOGxvyYE.jpg

step 1. 選擇「Contribute」清單中的「Upload files」

https://ithelp.ithome.com.tw/upload/images/20250923/20129220w0HDUu31sM.jpg

step 2. 上傳 app.py & requirements.txt 檔案,記得按下「Commit changes to main」

https://ithelp.ithome.com.tw/upload/images/20250923/201292206fCeTrVEG4.jpg

檔案上傳後,就會看到上方有個「Building」,就是 Hugging Face Space 在自動部署

https://ithelp.ithome.com.tw/upload/images/20250923/20129220sslpyjlyxA.jpg

(2) 或是使用 Git 上傳檔案

請參閱:
Day30. 練習用 Git 將專案上傳到 GitHub吧~


二、安全保存 API Key,避免寫在程式碼裡面

1. 在 Google Colab 的開發階段時:

使用 .env 文件或是 Colab 的環境變數隱藏敏感資訊(例如 Hugging Face Token)

import os

# 讀取 .env 檔案,不用寫死於程式
from dotenv import load_dotenv

# env檔存於Google Drive個人空間
load_dotenv('your_env.env')  

hf_api = os.environ.get("HF_API_KEY")

2. 到了 Hugging Face 的開發階段時:

在 Hugging Face Spaces 中,為了安全起見,敏感資訊(例如 API 金鑰)應該儲存為「Secrets」,而不是直接寫在程式碼中。

https://ithelp.ithome.com.tw/upload/images/20250923/20129220qjmPw9wpoe.jpg

進入 Settings 頁面,找到設定 Secrets 的地方,點擊「New secret」

https://ithelp.ithome.com.tw/upload/images/20250923/20129220MdWwVsNe11.jpg

欄位說明

  • Name: 輸入 GOOGLE_API_KEY (這必須與 app.py 中讀取的環境變數名稱完全一致)。
  • Value: 貼上 Google AI API 金鑰。
  • 點擊「Save」後,返回 App 選項。

三、Hugging Face Space 自動部署完成

1. 部署成功!!

https://ithelp.ithome.com.tw/upload/images/20250923/20129220N9miI33tTV.jpg

2. 手動測試一下 AI 營養顧問的諮詢頁面

https://ithelp.ithome.com.tw/upload/images/20250923/201292203l0iF774gg.jpg

  • 如果想要設定自動測試,請參考:

Day26. 手動測試已經測到厭世了嗎?這次就請 AI 幫忙測~練習用 Chrome DevTools MCP 自動測試


3. 攝取營養建議

https://ithelp.ithome.com.tw/upload/images/20250923/20129220hQEqgl8hfW.jpg

4. 可以下載建議

https://ithelp.ithome.com.tw/upload/images/20250923/201292204nGev7qFxB.jpg


四、延伸閱讀


上一篇
Day9. Hugging Face Spaces 部署實作 Ep. 1:Gradio Chatbot
下一篇
Day11. 嘔心瀝血寫的程式碼,卻是別人眼中的亂碼?快用 VS Code 幫它穿上專業戰袍!
系列文
AI 營養師 + Web3 數位健康護照34
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言