企業內部新聞彙整與分析系統 - 自動新聞抓取 (Digitimes, 經濟日報, 工商時報) - AI 智慧摘要 (OpenAI/Claude/Ollama) - 群組管理與訂閱通知 - 已清理 Python 快取檔案 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
11 KiB
每日報導 APP - 技術確認清單
建立日期:2025-01-27
最後更新:2025-01-27
狀態:🟡 進行中
📋 使用說明
- ✅ 已確認
- 🟡 待確認
- ❌ 已取消/不適用
- 📝 備註欄位可填入補充說明
1. 前端技術架構
1.1 前端框架選擇
狀態: 🟡 待確認
問題: 前端應使用哪個框架?
- [V] React
- Vue.js
- Angular
- 純 HTML/CSS/JavaScript(無框架)
- 其他:________________
備註:
1.2 前端與後端通訊方式
狀態: 🟡 待確認
問題: 前端如何與後端 API 通訊?
- [V] RESTful API
- GraphQL
- WebSocket(即時更新)
- 混合方式:________________
備註:
1.3 前端渲染方式
狀態: 🟡 待確認
問題: 前端是否需要服務端渲染(SSR)?
- 純 SPA(單頁應用)
- SSR(服務端渲染)
- SSG(靜態網站生成)
- [V] 混合模式
備註:
2. 新聞抓取技術細節
2.1 Digitimes 登入狀態管理
狀態: 🟡 待確認
問題: 如何處理 Digitimes 的登入狀態?
- 每次抓取都重新登入
- [V] 維持 session,定期檢查有效性
- [V] 使用 Cookie 持久化
- 其他方式:________________
備註:
2.2 爬蟲實作技術
狀態: 🟡 待確認
問題: 使用哪種爬蟲技術?
- Selenium(處理 JavaScript 渲染)
- [V] Scrapy(高效能爬蟲框架)
- BeautifulSoup + Requests(簡單靜態頁面)
- Playwright(現代瀏覽器自動化)
- 混合使用:________________
備註:
2.3 新聞去重機制
狀態: 🟡 待確認
問題: 如何避免重複抓取同一篇新聞?
- 比對標題 + URL
- [V] 比對標題 + 發布時間
- 使用內容 hash 值
- 資料庫唯一索引
- 組合方式:________________
備註:
2.4 新聞結構化提取
狀態: 🟡 待確認
問題: 需要提取哪些新聞欄位?
- [V] 標題(必填)
- [V] 正文內容(必填)
- [V] 發布時間(必填)
- 作者
- 來源 URL
- 分類/標籤
- 圖片
- 其他:________________
備註:
3. AI 摘要處理邏輯
3.1 多篇新聞合併策略
狀態: 🟡 待確認
問題: 當一個群組有多篇相關新聞時,如何處理?
- [V] 全部合併成一段綜合分析(無數量限制)
- 限制數量(如最多 10 篇),超過則分批處理
- 每篇單獨摘要,再合併摘要
- 其他策略:________________
備註:
3.2 Token 限制處理
狀態: 🟡 待確認
問題: 當新聞內容超過模型 token 限制時,如何處理?
- 截斷內容(保留前 N 篇)
- [] 分批處理後再合併摘要
- [V] 先進行初步摘要再送 LLM
- 通知專員手動處理
- 其他方式:________________
備註:
3.3 背景資訊與摘要方向傳遞
狀態: 🟡 待確認
問題: 如何將群組的背景資訊與摘要方向整合到 LLM prompt?
- 放在 system prompt 中
- [v] 放在 user prompt 開頭
- 使用 few-shot examples
- 組合方式:________________
備註:
3.4 AI 摘要並行處理
狀態: 🟡 待確認
問題: 多個群組的摘要是否並行產生?
- [v] 串行處理(一個接一個)
- 並行處理(同時處理多個群組)
- 有限並行(如最多 3 個同時)
- 使用任務佇列(如 Celery)
備註:
4. 資料庫設計
4.1 資料庫 Schema 設計
狀態: 🟡 待確認
問題: 需要哪些主要資料表?
- [v] users(用戶表)
- [v] groups(群組表)
- [v] keywords(關鍵字表)
- [v] news(新聞表)
- [v] reports(報告表)
- subscriptions(訂閱表)
- [v] comments(留言表)
- favorites(收藏表)
- annotations(標註表)
- [v] llm_settings(LLM 設定表)
- [v] system_logs(系統日誌表)
- 其他:________________
備註:
4.2 關聯關係設計
狀態: 🟡 待確認
問題: 報告與新聞的關聯方式?
- 一對多(一份報告對應多篇新聞)
- [v] 多對多(一篇新聞可出現在多份報告)
- 其他:________________
備註:
4.3 索引策略
狀態: 🟡 待確認
問題: 需要建立哪些索引以優化查詢效能?
- [v] 新聞標題索引
- 新聞發布時間索引
- [v] 群組關鍵字索引
- [v] 用戶訂閱關係索引
- 其他:________________
備註:
5. Email 通知機制
5.1 Email 模板格式
狀態: 🟡 待確認
問題: Email 內容應包含哪些資訊?
- [v] 報告標題
- [v] 發布日期
- [v] AI 摘要內容
- 相關新聞標題列表
- [v] 線上閱讀連結
- 取消訂閱連結
- 其他:________________
備註:
5.2 Email 模板樣式
狀態: 🟡 待確認
問題: Email 模板樣式?
- 純文字格式
- [] HTML 格式(含樣式)
- [v] 響應式 HTML(支援手機)
- 其他:________________
備註:
5.3 批次發送策略
狀態: 🟡 待確認
問題: 當訂閱讀者數量多時,如何發送 Email?
- 同步發送(一次發送所有)
- [v] 批次發送(如每批 10 封)
- 使用任務佇列(背景處理)
- 其他方式:________________
備註:
5.4 發送失敗處理
狀態: 🟡 待確認
問題: Email 發送失敗時的處理方式?
- 自動重試(最多 3 次)
- [v] 記錄失敗日誌
- [v] 通知系統管理員
- 組合處理:________________
備註:
6. PDF 匯出細節
6.1 PDF 生成技術
狀態: 🟡 待確認
問題: 使用哪種技術生成 PDF?
- [v] ReportLab
- WeasyPrint
- pdfkit / wkhtmltopdf
- 前端生成(如 jsPDF)
- 其他:________________
備註:
6.2 PDF 模板內容
狀態: 🟡 待確認
問題: PDF 應包含哪些內容?
- [v] 公司 Logo
- [v] 報告標題
- [v] 發布日期
- [v] AI 摘要內容
- [v ] 相關新聞列表(標題 + 連結)
- [v ] 頁首頁尾文字
- 其他:________________
備註:
6.3 PDF 樣式規範
狀態: 🟡 待確認
問題: PDF 樣式需求?
- [v ] 固定樣式(不可自訂)
- 可自訂字體
- 可自訂顏色
- 可自訂版面配置
- 其他:________________
備註:
7. 權限與操作細節
7.1 已發布報告修改權限
狀態: 🟡 待確認
問題: 專員是否可以修改或撤回已發布的報告?
- 可以修改(會通知讀者)
- [v ] 可以撤回(標記為已撤回)
- 完全不可修改
- 僅限發布後 X 小時內可修改
備註:
7.2 留言審核機制
狀態: 🟡 待確認
問題: 讀者留言是否需要審核?
- 不需要審核(直接顯示)
- 需要專員審核
- 需要管理員審核
- [v ] 關鍵字過濾後自動審核
備註:
7.3 工作日定義
狀態: 🟡 待確認
問題: 如何判斷工作日?
- [v ] 週一至週五(排除假日)
- [v ] 使用台灣行事曆 API
- 手動設定假日清單
- 其他方式:________________
備註:
8. 錯誤處理與備援
8.1 部分新聞抓取失敗處理
狀態: 🟡 待確認
問題: 當部分新聞來源抓取失敗時?
- 繼續處理其他成功的新聞
- 全部標記為失敗,等待重試
- [v ] 部分成功的新聞先處理,失敗的稍後重試
- 其他方式:________________
備註:
8.2 AI 摘要失敗處理
狀態: 🟡 待確認
問題: 當 AI 摘要產生失敗時?
- 保留原始新聞,標記為「待處理」
- [v] 通知專員手動處理
- [v] 自動重試(最多 3 次)
- 組合處理:________________
備註:
8.3 加密金鑰管理
狀態: 🟡 待確認
問題: API Key 加密金鑰如何管理?
- [v] 儲存在環境變數
- 儲存在資料庫(加密)
- 使用金鑰管理服務(如 HashiCorp Vault)
- 其他方式:________________
備註:
8.4 加密金鑰輪換
狀態: 🟡 待確認
問題: 是否需要定期輪換加密金鑰?
- 不需要
- [v] 需要(每 3 個月)
- 手動觸發
- 其他:________________
備註:
9. 效能優化
9.1 快取策略
狀態: 🟡 待確認
問題: 是否需要快取機制?
- 不需要
- [v] Redis 快取
- 記憶體快取
- 資料庫查詢快取
- 組合方式:________________
備註:
9.2 非同步任務處理
狀態: 🟡 待確認
問題: 新聞抓取與 AI 摘要是否使用任務佇列?
- 同步處理
- [v] Celery + Redis/RabbitMQ
- 其他任務佇列:________________
- 不需要
備註:
9.3 資料庫連線池
狀態: 🟡 待確認
問題: 資料庫連線管理方式?
- [v] 使用連線池(SQLAlchemy)
- 每次請求建立連線
- 其他方式:________________
備註:
10. 雙語介面
10.1 語言切換方式
狀態: 🟡 待確認
問題: 用戶如何切換語言?
- [v] 用戶手動選擇(右上角切換)
- [v] 系統自動偵測瀏覽器語言
- 根據用戶設定檔
- 其他方式:________________
備註:
10.2 內容翻譯需求
狀態: 🟡 待確認
問題: 新聞與摘要是否需要自動翻譯?
- 不需要(僅介面翻譯)
- 需要(新聞內容翻譯)
- [v] 需要(摘要內容翻譯)
- 需要(全部內容翻譯)
- 其他:________________
備註:
11. 其他技術細節
11.1 日誌記錄策略
狀態: 🟡 待確認
問題: 需要記錄哪些操作日誌?
- [v] 用戶登入/登出
- [v] 新聞抓取記錄
- [v] AI 摘要產生記錄
- [v] 報告發布記錄
- [v ] 系統錯誤記錄
- [v ] API 呼叫記錄
- 其他:________________
備註:
11.2 日誌保留期限
狀態: 🟡 待確認
問題: 操作日誌保留多久?
- 30 天
- [v ] 60 天
- 90 天
- 1 年
- 永久保留
- 其他:________________
備註:
11.3 備份策略細節
狀態: 🟡 待確認
問題: 資料庫備份的具體方式?
- 每日全量備份
- [v ] 每日增量備份
- 每週全量 + 每日增量
- 其他方式:________________
備註:
11.4 監控與告警
狀態: 🟡 待確認
問題: 需要哪些監控與告警機制?
- [v ] 系統健康檢查
- [v ] 新聞抓取失敗告警
- [v ] AI 摘要失敗告警
- [v ] 資料庫連線異常告警
- [v ] 系統效能監控
- 其他:________________
備註:
📊 進度統計
- 總問題數: 44
- 已確認: 0
- 待確認: 44
- 已取消: 0
📝 更新記錄
| 日期 | 更新內容 | 更新人 |
|---|---|---|
| 2025-01-27 | 建立初始清單 | System |