今天進入後端程式碼實作階段。完成的項目包含:
venv) — 隔離專案套件,提供 Mac 與 Windows 跨平台開發時一致的執行沙盒。requirements.txt) — 定義 Flask、Google GenAI SDK、gTTS 等核心依賴套件。app.py) — 建立 ping 端點,驗證 JSON 回傳機制與網路連線狀態。在多模態 AI 與 Web 後端開發時,常需要安裝許多第三方套件。直接安裝在系統全域容易引發套件版本衝突,且將專案從 Mac 轉移到 Windows 時會遇到環境相容性問題。
Python 內建的 venv 模組能為 PrescriptionVLM 建立獨立的運行沙盒。搭配 requirements.txt,無論 Mac 或 Windows 環境,只需執行單一指令就能還原所有依賴套件。
開啟 Terminal (Mac) / PowerShell (Windows)
建議使用 Visual Studio Code 開發,其內建終端機能自動切換目錄並載入虛擬環境。
🔗 https://code.visualstudio.com/Download
❗️開啟終端機後要確保路徑在 PrescriptionVLM 資料夾❗️
進到VSCode裡,打開 PrescriptionVLM 資料夾,開啟底下的終端機建立虛擬環境:
📌(Ctrl+~可以啟動終端機)
python3 -m venv venv
python -m venv venv
啟動虛擬環境:
source venv/bin/activate
venv\Scripts\activate
啟動後,終端機提示字元前方出現 (venv) 即代表成功進入獨立環境。
requirements.txt 並批量安裝在專案根目錄下新建 requirements.txt 檔案,寫入開發所需的核心套件:
Flask==3.0.3
google-genai==1.75.0
gTTS==2.5.1
python-dotenv==1.0.1
requests==2.32.3
Pillow==10.4.0
於終端機執行批量安裝(雙平台通用):
pip install -r requirements.txt
app.py)在專案根目錄下新建 app.py 檔案,撰寫服務啟動與 Health Check 端點邏輯:
from flask import Flask, jsonify
# 初始化 Flask 應用程式
app = Flask(__name__)
@app.route('/', methods=['GET'])
def index():
"""根目錄健康檢查端點"""
return jsonify({
"status": "success",
"message": "Welcome to PrescriptionVLM Backend API!"
}), 200
@app.route('/ping', methods=['GET'])
def ping():
"""提供前端測試網路連線的輕量化 API 端點"""
return jsonify({
"status": "online",
"service": "PrescriptionVLM Engine",
"version": "1.0.0"
}), 200
if __name__ == '__main__':
# 開發環境下啟動於 5000 埠口,並設定 debug=True 便於即時排錯
app.run(host='0.0.0.0', port=5000, debug=True)
在啟動虛擬環境的狀態下執行(雙平台通用)(Ctrl+C 可取消執行app.py):
python app.py
開啟瀏覽器或 Postman 訪問 http://127.0.0.1:5000/ping 或 http://localhost:5000/ping 得到以下 JSON 回應,代表後端 RESTful API 伺服器已成功運行:
{
"service": "PrescriptionVLM Engine",
"status": "online",
"version": "1.0.0"
}
將新增與修改的程式碼提交至 GitHub:
git add .
git commit -m "保留雙引號 改填寫自己要記錄的標記 ex.鐵人賽第三天"
❗️第一次推送至遠端要打這串❗️
git push -u origin main
之後要推送改打這串即可(本章節暫時無需執行此指令)
git push
今天完成 Python 後端跨平台開發環境建置,並運行第一個 Flask API 端點。
明天(Day 04),整合 Google Gemini API Key,在 Python 端實作 Google VLM 多模態視覺語言模型的調用邏輯,驗證傳入藥袋照片並讓 AI 解析文字內容。
若你使用的開發設備為學校實驗室或公用電腦,為避免覆蓋全域 Git 設定,可使用 --local 參數進行專案區域設定:
git config --local user.name "保留雙引號 打你的GitHub名稱"
git config --local user.email "保留雙引號 打你的GitHub郵件"
若推送時遇到舊帳號憑證衝突(403 Permission Denied),亦可將 remote URL 強制指定帳號:
git remote set-url origin https://<YOUR_USERNAME>@[github.com/](https://github.com/)<YOUR_USERNAME>/<YOUR_REPO>.git