一個結合 LINE Bot、AI 聊天、股票查詢/預測、RAG 智能檢索的 Flask 專案。
- LINE Bot 互動(文字、輪播、快速選單)
- AI 聊天(Google Gemini、本地 LLM)
- 股票即時查詢、智能預測(多種 ANN 策略)
- RAG(檢索增強生成)自動網路搜尋與摘要
- 多用戶狀態管理
- 圖片、圖表自動產生與回傳
SuSuNoYes/
│
├── app.py # 主入口,Flask + LINE Bot Webhook
├── requirements.txt # Python 依賴套件
├── Dockerfile # Docker 部署設定(如有)
├── .env # 環境變數(API 金鑰、資料庫等)
├── .env.example # 環境變數範例(API 金鑰、資料庫等)
├── README.md # 專案說明文件
│
├── config/
│ └── ai_character_settings.py # AI 角色個性設定
│
├── src/
│ ├── handlers/ # LINE Bot 各功能處理器
│ │ ├── ai_chat_handler.py
│ │ ├── fetch_stock_data_handler.py
│ │ ├── intelligent_prediction_handler.py
│ │ ├── postback_handler.py
│ │ └── Deemo_carousel_template.py
│ │
│ ├── intelligent_prediction_strategies/ # 智慧預測模型
│ │ ├── ANN_OHLCV_output5_intelligent_prediction.py
│ │ ├── ANN_OHLCV_output2_intelligent_prediction.py
│ │ ├── ANN_3DayKbar_output5_intelligent_prediction.py
│ │ └── ANN_3DayKbar_output2_intelligent_prediction.py
│ │
│ ├── services/ # 外部/AI服務整合
│ │ ├── google_ai.py
│ │ ├── google_search.py
│ │ ├── local_ai.py
│ │ ├── rag_ai_chat.py
│ │ └── WebCrawler_MIS_TWSE.py
│ │
│ ├── utils/ # 工具模組
│ │ └── get_https_url.py
│ │
│ └── validators/ # 狀態/權限驗證
│ ├── allow_validator.py
│ ├── conversation_validator.py
│ └── training_validator.py
│
├── static/
│ └── images/ # 所有圖片資源
│
└── tests/ # 測試程式
-
安裝依賴
pip install -r requirements.txt
-
設定環境變數
- 複製
.env範例,填入你的 LINE、Google、資料庫等金鑰。
- 複製
-
啟動 Flask 伺服器(建議用 gunicorn)
- 開發測試時,請用 python app.py 啟動(Windows 下用 Flask 內建 server)。
python app.py
- 若要用 gunicorn,請在 Linux、WSL、Docker(建議)等環境下執行。
gunicorn -b 0.0.0.0:5000 app:app
-
(選用)本地測試 LINE Webhook
- 使用 ngrok 內網穿透
ngrok http 5000
- 將 ngrok 產生的 https 網址填入 LINE Developers Webhook URL
- 使用 ngrok 內網穿透
.env:存放所有敏感金鑰與連線資訊(LINE、Google、Ollama、本地/雲端 PostgreSQL)config/ai_character_settings.py:AI 角色個性、稱謂設定static/images/:所有 LINE Bot 用到的圖片、圖表
app.py:主入口,註冊所有 webhook 路由與事件處理src/handlers/:各種 LINE Bot 指令與互動邏輯src/services/:AI、搜尋、爬蟲等外部服務整合src/intelligent_prediction_strategies/:各種股票預測模型src/validators/:用戶狀態、權限、訓練流程驗證src/utils/get_https_url.py:產生 HTTPS 圖片連結
- 若需 Docker 部署,請參考
Dockerfile。 - 圖片請放於
static/images/,程式會自動產生 HTTPS 連結。