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