Initial commit: Daily News App

企業內部新聞彙整與分析系統
- 自動新聞抓取 (Digitimes, 經濟日報, 工商時報)
- AI 智慧摘要 (OpenAI/Claude/Ollama)
- 群組管理與訂閱通知
- 已清理 Python 快取檔案

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
donald
2025-12-03 23:53:24 +08:00
commit db0f0bbfe7
50 changed files with 11883 additions and 0 deletions

225
確認事項.md Normal file
View File

@@ -0,0 +1,225 @@
# 每日報導 APP - 需要確認事項
> 建立日期2025-01-27
---
## 🔴 重要:資料表設計不一致
### 問題 1訂閱功能資料表
**現況:**
- Checklist 中**未選擇** `subscriptions訂閱表`
- 但 SDD 中明確提到「讀者可自行訂閱感興趣的群組」
**需要確認:**
- [ ] 訂閱功能是否需要獨立的 `subscriptions` 資料表?
- [ ] 還是使用其他方式實現(如 users 表的 JSON 欄位)?
- [ ] 如果不需要獨立表,如何記錄用戶訂閱關係?
**建議:** 訂閱功能是核心功能,建議建立 `subscriptions` 表以支援多對多關係。
---
### 問題 2收藏與標註功能
**現況:**
- Checklist 中**未選擇** `favorites收藏表``annotations標註表`
- SDD 中標註為「未來擴充」
**需要確認:**
- [ ] 收藏功能是否在第一階段實作?
- [ ] 標註功能是否在第一階段實作?
- [ ] 如果第一階段不實作,資料表設計是否預留?
---
## 🟡 環境變數配置需要補充
### 需要確認的環境變數清單
#### 1. 資料庫連線(✅ 已確認)
- [x] `DB_HOST` - mysql.theaken.com
- [x] `DB_PORT` - 33306
- [x] `DB_NAME` - db_A101
- [x] `DB_USER` - A101
- [x] `DB_PASSWORD` - Aa123456
- **連線狀態:** ✅ 測試連線正常
#### 2. Redis 連線(需要確認)
- [ ] `REDIS_HOST` - Redis 主機位址預設localhost
- [ ] `REDIS_PORT` - Redis 埠號預設6379
- [ ] `REDIS_PASSWORD` - Redis 密碼(如有)
- [ ] `REDIS_DB` - Redis 資料庫編號預設0
#### 3. Celery 設定(需要確認)
- [ ] `CELERY_BROKER_URL` - 訊息佇列 URLRedis 或 RabbitMQ
- [ ] `CELERY_RESULT_BACKEND` - 結果儲存位置(通常與 broker 相同)
#### 4. SMTP 設定(需要確認)
- [ ] `SMTP_HOST` - SMTP 伺服器位址
- [ ] `SMTP_PORT` - SMTP 埠號預設587
- [ ] `SMTP_USERNAME` - SMTP 帳號
- [ ] `SMTP_PASSWORD` - SMTP 密碼
- [ ] `SMTP_FROM_EMAIL` - 寄件者 Email
- [ ] `SMTP_FROM_NAME` - 寄件者名稱(預設:每日報導系統)
- [ ] `SMTP_USE_TLS` - 是否使用 TLS預設True
#### 5. AD/LDAP 設定(需要確認)
- [ ] `LDAP_SERVER` - LDAP 伺服器位址
- [ ] `LDAP_PORT` - LDAP 埠號預設389
- [ ] `LDAP_BASE_DN` - LDAP Base DN
- [ ] `LDAP_BIND_DN` - LDAP 綁定 DN如有
- [ ] `LDAP_BIND_PASSWORD` - LDAP 綁定密碼(如有)
- [ ] `LDAP_USER_SEARCH_FILTER` - 用戶搜尋過濾器(預設:`(sAMAccountName={username})`
#### 6. LLM API Keys需要確認
- [ ] `GEMINI_API_KEY` - Google Gemini API Key
- [ ] `OPENAI_API_KEY` - OpenAI API Key
- [ ] `OLLAMA_ENDPOINT` - Ollama 端點 URL預設http://localhost:11434
#### 7. Digitimes 帳號(需要確認)
- [ ] `DIGITIMES_USERNAME` - Digitimes 登入帳號
- [ ] `DIGITIMES_PASSWORD` - Digitimes 登入密碼
#### 8. 應用程式設定(需要確認)
- [ ] `SECRET_KEY` - 應用程式密鑰(用於加密)
- [ ] `JWT_SECRET_KEY` - JWT 簽章密鑰
- [ ] `APP_ENV` - 環境development/staging/production
- [ ] `DEBUG` - 除錯模式預設False
---
## 🟡 功能實作細節需要確認
### 問題 3台灣行事曆 API
**現況:** SDD 提到「使用台灣行事曆 API 判斷工作日」
**需要確認:**
- [ ] 使用哪個台灣行事曆 API
- [ ] 政府資料開放平台
- [ ] 第三方 API如 holiday.tw
- [ ] 自行維護假日清單
- [ ] API 連線失敗時的備援機制?
- [ ] 是否需要快取假日資料?
---
### 問題 4關鍵字過濾機制
**現況:** SDD 提到「關鍵字過濾後自動審核」
**需要確認:**
- [ ] 關鍵字清單由誰維護?(系統管理員?)
- [ ] 過濾規則:
- [ ] 包含特定關鍵字 → 需要審核
- [ ] 不包含特定關鍵字 → 自動通過
- [ ] 其他規則?
- [ ] 過濾後的留言狀態:
- [ ] 標記為「待審核」
- [ ] 直接隱藏
- [ ] 其他處理方式?
---
### 問題 5Email 批次發送細節
**現況:** SDD 提到「批次發送(每批 10 封)」
**需要確認:**
- [ ] 批次間隔時間?(如每批間隔 1 秒)
- [ ] 發送失敗的重試機制?
- [ ] 是否使用 Celery 背景任務處理?
---
### 問題 6初步摘要機制
**現況:** SDD 提到「當新聞內容超過模型 token 限制時,先進行初步摘要再送 LLM」
**需要確認:**
- [ ] 初步摘要使用哪種方法?
- [ ] 簡單的文字截斷(保留前 N 字)
- [ ] 使用較小的 LLM 模型先摘要
- [ ] 使用規則式摘要(提取關鍵句)
- [ ] 初步摘要的目標長度?(如縮減至 50%
---
### 問題 7PDF 中的新聞連結
**現況:** SDD 提到「相關新聞列表(標題 + 連結)」
**需要確認:**
- [ ] PDF 中的連結格式?
- [ ] 完整 URLhttps://...
- [ ] 短連結(需要短連結服務)
- [ ] QR Code需要 QR Code 生成)
- [ ] 如果新聞來源需要登入(如 Digitimes連結如何處理
---
## 🟢 建議補充的規格
### 1. 環境變數管理章節
建議在 SDD 中新增「環境變數配置」章節,列出所有需要的環境變數。
### 2. 資料庫 Schema 詳細設計
建議補充:
- 各資料表的完整欄位定義
- 外鍵關係
- 索引設計
- 預設值與約束條件
### 3. API 端點規格
建議補充:
- RESTful API 端點清單
- 請求/回應格式
- 認證方式
- 錯誤碼定義
### 4. 部署架構圖
建議補充:
- 系統架構圖
- 資料流圖
- 部署架構圖
---
## 📝 待您提供的資訊
1. **資料庫連線資訊**(✅ 已提供)
- DB_HOST: mysql.theaken.com
- DB_PORT: 33306
- DB_NAME: db_A101
- DB_USER: A101
- DB_PASSWORD: Aa123456
- **狀態:** ✅ 測試連線正常
2. **Redis 連線資訊**(需要確認)
- REDIS_HOST
- REDIS_PORT
- REDIS_PASSWORD如有
3. **SMTP 設定**(需要確認)
- SMTP_HOST
- SMTP_USERNAME
- SMTP_PASSWORD
- SMTP_FROM_EMAIL
4. **LDAP 設定**(需要確認)
- LDAP_SERVER
- LDAP_BASE_DN
- 其他 LDAP 參數
5. **其他 API Keys**(需要確認)
- GEMINI_API_KEY 或 OPENAI_API_KEY
- DIGITIMES_USERNAME 和 PASSWORD
---
## ✅ 下一步行動
1. 請確認上述問題的答案
2. 提供資料庫連線資訊
3. 確認其他環境變數設定
4. 決定訂閱功能的資料表設計方式
---
**最後更新:** 2025-01-27