跳至主要內容
project.case-study

Stock Analyzer

股票分析工具

以 Flask 為核心的股票分析服務,整合 yfinance 即時行情、mplfinance 多時間區間 K 線圖與 OpenAI GPT-5(Responses API)。支援自備 K 線圖上傳、Server-Sent Events 串流分析,部署採 Gunicorn + Gevent 處理 I/O 密集型流量。

PythonFlaskOpenAI GPT-5yfinancepandasmplfinanceTailwind v3Gunicorn + Gevent

01 問題

個人投資需要整合即時行情、技術指標與 AI 解讀;坊間工具不是收費昂貴、就是無法將自有 K 線圖上傳給 AI 解讀,且預設 sync worker 在 I/O 密集場景(OpenAI / Yahoo Finance API)容易塞車。

02 解法

Flask 後端透過 yfinance 抓行情、pandas + mplfinance 產生 5/15/60 分 K 線;OpenAI Responses API 走 GPT-5 + SSE 串流逐字推送;Gunicorn 改 Gevent worker,預設 2 workers × 1000 connections + 120s timeout。非同步任務狀態支援 memory / SQLite / Postgres 三種儲存,可依部署環境(Render Free Tier 512MB / Supabase Pooler 等)切換。

03 成果

上線於 https://stock.zinzan.info;專案 README 量測 100 個並發請求下 sync 4 workers 需 750 秒、gevent 2 workers 僅 30 秒,達 25 倍效能提升。支援自備 K 線圖上傳給 AI 解讀。

04 功能特色

  • ▸ 即時行情與技術指標
  • ▸ AI 智慧分析(GPT-5 + SSE 串流逐字回覆)
  • ▸ 5 / 15 / 60 分 K 線圖(Base64)
  • ▸ 自備 K 線圖上傳給 AI 解讀
  • ▸ 非同步任務狀態 memory / SQLite / Postgres 三模式
  • ▸ Gunicorn + Gevent(100 並發從 750 秒降至 30 秒)