每日 AI 簡報自動化:快速實現科技新聞自動聚合推送到 Telegram

每日手動搜尋科技新聞浪費大量時間。透過 Python 結合 Telegram Bot API,可以自動化聚合全球科技資訊並定時推送到手機。本文將帶你從零開始建置這套自動化系統,每天早上醒來就能看到整理好的 AI、科技、新創領域精選新聞。

系統架構與所需工具

這套自動化簡報系統包含三個核心元件:新聞資料來源、資料處理層、以及訊息推送層。新聞來源可選用 NewsAPI、Hacker News API 或 RSS 訂閱;資料處理使用 Python 進行篩選與整理;最後透過 Telegram Bot 將結果推送到指定的頻道或群組。

技術栈非常簡單:Python 3.8+、requests 函式庫用於 API 請求、python-telegram-bot 庫用於推送訊息、APScheduler 用於排程管理。所有元件都可免費使用,無需額外付費伺服器。

建立 Telegram Bot 與取得 API Key

第一步是建立專屬的 Telegram Bot。在 Telegram 中搜尋「BotFather」,傳送指令/newbot建立新機器人,系統會回傳一組 HTTP API Token,請妥善保存。接著建立一個頻道或群組,將 Bot 設為管理員以取得發訊權限。

取得 Chat ID 是下一個關鍵步驟。將 Bot 加入頻道後,傳送訊息到頻道,然後訪問https://api.telegram.org/bot[TOKEN]/getUpdates網址,從回應 JSON 中找到頻道的 chat_id。這組 ID 將用於後續程式碼中的推送目標設定。

Python 環境建置與程式碼實作

# 安裝必要套件
pip install requests python-telegram-bot apscheduler

# news_fetcher.py
import requests
from telegram import Bot

TELEGRAM_TOKEN = "你的BOT_TOKEN"
CHAT_ID = "你的CHAT_ID"

def fetch_tech_news():
    """從 NewsAPI 獲取科技新聞"""
    api_key = "你的NEWSAPI_KEY"
    url = f"https://newsapi.org/v2/top-headlines?category=technology&language=en&apiKey={api_key}"
    response = requests.get(url)
    data = response.json()
    
    articles = []
    for article in data.get('articles', [])[:5]:  # 取前5則
        title = article['title']
        url = article['url']
        articles.append(f"• {title}\n{url}")
    
    return "\n\n".join(articles)

def send_daily_brief():
    """發送每日簡報"""
    bot = Bot(token=TELEGRAM_TOKEN)
    news = fetch_tech_news()
    message = f"🤖 每日 AI 科技簡報\n\n{news}"
    bot.send_message(chat_id=CHAT_ID, text=message)

# 排程設定:每天早上 8 點執行
from apscheduler.schedulers.blocking import BlockingScheduler
scheduler = BlockingScheduler()
scheduler.add_job(send_daily_brief, 'cron', hour=8, minute=0)
scheduler.start()

進階:加入 AI 摘要與分類篩選

基礎版本只能抓到新聞標題,若要進一步自動化閱讀體驗,可以整合 AI 摘要服務。透過 OpenAI API 或開源的 LLM 模型,為每則新聞產生 2-3 句的中文摘要。同時可依關鍵字篩選,只保留 AI、Machine Learning、LLM 等相關內容。

另一個實用技巧是建立多個新聞來源。例如 Hacker News API 獲取工程師社群關注的技術議題、Twitter API 追蹤特定科技影響者的推文、Reddit 訂閱機器學習版塊的熱門討論。將這些來源整合後統一推送,資訊更加全面。

部署與執行注意事項

程式開發完成後,需要找一個長期運行的環境來執行。對於個人使用,Raspberry Pi、本地電腦或免費的 GitHub Actions 定時觸發都是選項。若使用雲端伺服器,建議設定 PM2 程序管理器保持程式穩定執行,並配置 Logrotate 避免日誌檔案過大。

最後提醒,NewsAPI 的免費方案每天有 API 調用次數限制,若需要更多請求量可考慮升級付費方案或改用完全免費的 RSS 來源。透過這套系統,你將擁有個人化的科技資訊儀表板,每天節省至少 30 分鐘的新聞瀏覽時間。