btisland/aivi-linebot
0
AIVI News LINE Bot
LINE Bot Webhook 服務,部署在 Hugging Face Space。當使用者在 LINE 傳送 /aivi 指令時,自動爬取 AIVI 科技博客最新 5 則文章並回傳。
功能
- 📰 即時爬取:爬取 AIVI 科技博客最新 5 則文章
- 🤖 LINE Bot 整合:透過 LINE Messaging API 回傳結果
- ⚡️ 快速回應:< 10 秒內完成爬取與回覆
- 🛡️ 錯誤處理:完整的錯誤處理與友善錯誤訊息
環境變數設定
請在 Hugging Face Space Settings 中設定以下環境變數:
如何取得 LINE Credentials
- 前往 LINE Developers Console
- 建立新的 Provider(如果還沒有)
- 建立新的 Messaging API Channel
- 在 Channel 設定頁面取得:
- Channel Secret(基本設定頁面)
- Channel Access Token(Messaging API 頁面,需要先發行 Long-lived token)
Webhook URL
部署完成後,Webhook URL 為:
https://btisland-aivi-linebot.hf.space/webhook請將此 URL 設定到 LINE Developers Console 的 Webhook URL 欄位。
設定步驟
- 進入 LINE Developers Console
- 選擇您的 Messaging API Channel
- 前往「Messaging API」頁面
- 找到「Webhook settings」區塊
- 點擊「Edit」,輸入:
https://btisland-aivi-linebot.hf.space/webhook - 啟用「Use webhook」開關
- 點擊「Verify」按鈕,確認 webhook 可正常運作
技術架構
- 語言:Python 3.10
- Web 框架:Flask(webhook 服務)
- LINE Bot SDK:line-bot-sdk 3.x
- HTTP Client:httpx(非同步請求)
- HTML 解析:selectolax(高效能 HTML parser)
- 套件管理:uv
- 部署:Docker(Hugging Face Space)
使用方式
- 在 LINE 中加入您的 Bot 為好友
- 傳送
/aivi指令(不區分大小寫) - Bot 會回傳 AIVI 科技博客最新 5 則文章的標題和連結
原始碼
完整原始碼與開發文件:https://github.com/btisland/aivi-linebot
技術亮點
輕量化設計
- 使用
selectolax而非BeautifulSoup(快 5-10 倍) - Docker image 大小 < 500MB
- 記憶體使用 < 256MB
高效能
- 非同步爬蟲(httpx)
- 完整的 timeout 與錯誤處理
- 回應時間 < 3 秒(符合 LINE webhook 要求)
可維護性
- 測試覆蓋率 > 80%
- 完整的型別註解(type hints)
- 清楚的模組化架構
部署資訊
- Platform: Hugging Face Space
- SDK: Docker
- Space Type: Persistent(持續運行)
- Hardware: CPU Basic(免費)
自動部署
本專案使用 GitHub Actions 自動同步:
- 推送到 GitHub
main分支 - GitHub Actions 觸發自動同步
- Hugging Face Space 自動重新建置並部署
授權
MIT License
相關連結
Last Updated: 2025-12-09 Maintained by: btisland
<!-- Test sync: 2025-12-11 07:39:23 UTC -->
