⚡ 每日財經摘要管線改造

video_id 快取 + 零 Claude 呼叫命中 + 6 個新 Dashboard 路由

🔧
問題
相同影片每天重跑都要重新呼叫 Claude,浪費費用;摘要沒有快取機制
核心洞見
用 video_id 做快取鍵,而不是「節目名稱 + 日期」
同一支影片的 video_id 永遠不變,命中即回傳,0 Claude 呼叫
1
為什麼用 video_id 而非「節目+日期」
同一支影片可能在不同日期被抓到(重播、補看)。video_id 用來辨認同一支影片;用它做 key 能避免把重複來源當成新影片。內容或模型規則更新時,仍要有快取失效與重算機制。
2
改動的 6 個核心檔案
檔案改動重點
summary_cache.py新增,以 video_id 為鍵的 JSON 快取管理
gooaye_new_format.py加入快取查詢邏輯
yutinghao_new_format.py同上
richfinance_new_format.py同上
daily_finance_runner.py完整重寫,整合三頻道 + 快取 + 推播
app.py(Dashboard)新增 6 個路由:摘要列表、快取狀態、手動觸發…
3
LINE Bot intent router 同步更新
新增意圖:「今天財經」「昨天財經」「本週財經」直接查快取回傳,不需要 Claude 重新生成
4
Dashboard 6 個新路由
/finance/today、/finance/yesterday、/finance/week、/finance/cache-status、/finance/manual-trigger、/finance/list — 讓 Dashboard 成為管線的控制台
5
後續迭代:標的時間點連結(2026-06-12)與快取的關係
理財達人秀的標的卡新增「▶ 原始片段:Part N · mm:ss」連結。注意兩層快取的行為差異:

快取層時間戳功能的影響
逐字稿快取(transcripts/)✅ 一直都有存 Whisper segments 秒數,44 個既有快取直接可用,零重新轉錄成本
摘要快取(summary_cache)⏳ 命中時直接回傳舊 HTML,所以已摘要過的集數維持舊版;時間連結從下一集新影片開始出現
↓
💰
成效
同一影片第二次之後費用:$0。長期下來省掉 80%+ 的 Claude API 費用