每個功能建立獨立的 App,導致:
AI 解析邏輯可應用到多種功能,降低開發成本
所有資料在同一系統,跨功能分析更便利
API 金鑰等設定只需配置一次,所有功能共用
單一專案更新,所有功能同時受益
核心設計模式:策略模式 (Strategy Pattern)
class AIProvider:
def __init__(self, provider, api_key, model):
self.provider = provider # 'openai' 或 'google'
self.api_key = api_key
self.model = model
def generate_content(self, prompt, system_instruction=""):
if self.provider == 'openai':
return self._call_openai(prompt, system_instruction)
elif self.provider == 'google':
return self._call_gemini(prompt, system_instruction)
generate_content(),系統自動選擇正確的 AI 服務!
當外部服務不可用時,系統會自動降級處理:
OpenWeatherMap 失敗 → 使用 AI 查詢
RSS 抓取失敗 → 使用 AI 生成摘要
支援 OpenAI / Gemini 雙平台切換
AI 解析失敗 → 仍建立基礎記錄
遵循「高內聚、低耦合」原則:
| 路由 | 功能 | HTTP 方法 |
|---|---|---|
| /api/chat | AI 對話與智慧指令 | POST |
| /api/expenses | 記帳 CRUD | GET/POST/PUT/DELETE |
| /api/calendar | 行事曆 CRUD | GET/POST/PUT/DELETE |
| /api/news | 新聞查詢 | GET |
| /api/movies | 電影推薦 | GET |
| /api/stocks/analysis | 股票分析 | POST |
科技紫藍主題,所有元件使用相同設計語言
記帳與行事曆介面設計相同,降低學習成本
成功/失敗/載入中都有清晰的視覺提示
友善的錯誤提示,引導使用者修正