iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0
ChatGPT & Codex

AI 時代的輕量化開發:ChatGPT 打造 LINE 多模態記帳與續訂預警 Agent系列 第 2

[Day 02] ChatGPT 引導建立 Python 本地環境,SubWise 第一支 Flask 後端誕生

  • 分享至 

  • xImage
  •  

前言

昨天完成了 LINE Developers 與 Gemini API Key 的申請後,今天開始正式撰寫 SubWise 的第一支 Python 程式。

今天的目標很簡單:建立一個可以正常運行的 Flask 後端,方便之後串接 LINE Webhook、Gemini AI 與 Google Sheets 。


為什麼需要 Flask?

SubWise 未來的資料流程會是:
https://ithelp.ithome.com.tw/upload/images/20260803/201785276rovpFAlFI.png
Flask 可以視為整個系統的「中控站」。當使用者在 LINE 傳送文字、照片或查詢指令時,所有請求都會先送到 Flask,再由 Flask 決定要交給 Gemini 分析,還是寫入 Google Sheets。今天的目標,就是先讓這個「中控站」成功運作。


建立 Python 虛擬環境

首先建立專案專屬的虛擬環境:

python -m venv venv

接著啟動虛擬環境(Windows PowerShell):

.\venv\Scripts\Activate.ps1

成功後,Terminal 前面就會多出 (venv),代表目前安裝的套件都只會存在這個專案,不會影響其他 Python 專案。


安裝 Flask 與 dotenv

今天只需要安裝兩個套件:

pip install flask python-dotenv

其中:

  • Flask:建立 Python Web Server
  • python-dotenv:安全讀取 .env 中的 API Key

最後再利用:

python -m pip freeze > requirements.txt

產生 requirements.txt,方便之後部署到 Render。


建立 .env

今天也建立了 .env

LINE_CHANNEL_ACCESS_TOKEN=xxxxxxxx
GEMINI_API_KEY=xxxxxxxx

之後所有敏感資訊都放在 .env,而不是直接寫進程式碼。另外也建立了 .gitignore

venv/
.env
pycache/
*.pyc

避免 API Key 被誤傳到 GitHub。


第一支 Flask 程式

今天完成的 Flask 程式非常簡單:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route("/")
def home():
    return jsonify({
        "status": "success",
        "message": "SubWise Backend is running!"
    })

if __name__ == "__main__":
    app.run(debug=True)

雖然只有短短十幾行,但它已經是一個真正的 Web API。


Flask 是怎麼運作的?

今天最大的收穫,是開始理解 Flask 的運作流程。當瀏覽器輸入 http://127.0.0.1:5000,整個流程其實是:

瀏覽器
  │
  ▼
http://127.0.0.1:5000
  │
  ▼
Flask (app.py) → home() → jsonify()
  │
  ▼
JSON 回傳

未來串接 LINE Bot 時,也只是把「瀏覽器」換成「LINE Platform」而已。


今日實作實錄:建立 Flask 開發環境踩坑過程

1. 新開的 Terminal 找不到 pip
執行 pip freeze 時出現 pip : 無法辨識 'pip'。後來才發現,原來每次開新的 Terminal,都需要重新啟動虛擬環境,重新執行 .\venv\Scripts\Activate.ps1 後就恢復正常。

2. 開錯網址
第一次測試時,打開的是專案資料夾而不是 Flask Server,畫面只顯示 venvapp.py。後來確認網址應該是 http://127.0.0.1:5000,終於成功看到 API 回傳結果。
https://ithelp.ithome.com.tw/upload/images/20260803/20178527lhPeZxUaiw.png


明日預告

今天順利把 Flask 後端建置完成,也理解了「接收請求 → 執行程式 → 回傳結果」的運作邏輯!
明天 Day 03,我將把這個本機專案部署到 Render,讓 SubWise 從只能在自己電腦上執行,變成任何人都能透過網址存取的線上服務,也為後續串接 LINE Webhook 做好準備。我們明天見!


上一篇
[Day 01] 打造 LINE 記帳管家:專案構想與 API Key 申請實錄
下一篇
[Day 03] 從本地走向雲端!Git 版本控制與 Flask API 成功部署 Render 實錄
系列文
AI 時代的輕量化開發:ChatGPT 打造 LINE 多模態記帳與續訂預警 Agent3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言