AI / 股市新聞 IG 自動發文 bot:事件驅動 + 兩階 LLM + 自動生圖
內容生產 bot
IG 比 Threads 麻煩 — 必須有圖才能發。但對我來說真正難的不是生圖 是「什麼新聞值得發」。如果寫死「每天 18:00 發一則」 沒大事的日子就會硬擠一則不重要的出來 久了 follower 只覺得吵。所以這個 bot 不是定時硬發 是「事件驅動」:每 30 分鐘掃一次 但只有夠重要的新聞才會變成貼文。
先講重點
監測 AI / 台股 / 美股 RSS,用 Claude Haiku 評重要性、Opus 用我口吻寫稿、Pillow 生圖、自動發 IG。Windows 工作排程每 30 分鐘事件驅動。核心是「兩階 LLM」 — 便宜小模型過濾沒新意的、貴模型才寫稿,成本降到全程用 Opus 的 1/10。已穩定跑 3 個月。
卡點:IG 要圖 + 「定時硬發」會發出一堆垃圾
IG 演算法明確偏好圖文 純文字觸及超差 — 手動做圖 + 配文一篇 45 分鐘。但更難的是「該發什麼」。定時排程最大的問題是:沒新聞的日子它還是會發 為了填那個時段 就會挑一則其實沒人在乎的新聞 硬寫成貼文。發久了帳號就變雜訊。我要的是「有大事才發 沒大事就安靜」。
解法:六段 pipeline + 兩階 LLM 分工
pipeline 是 collectors → importance_scorer → dedup → writer → image_gen → publisher。關鍵在中間用「兩個不同等級的 Claude」:先用便宜的 Haiku 幫每一則新聞評重要性分數(量大 一次掃 30 則),只有過閾值的才交給貴的 Opus 用我的 voice 寫成貼文。便宜模型做篩選 貴模型做精工 — token 花在刀口上 而不是每則都用最貴的模型硬幹。
# pipeline 主流程(精簡自 main.py):
# collect → 評分(便宜模型) → 去重 → 寫稿(貴模型) → 生圖 → 發
items = collect_all() # RSS:AI / 台股 / 美股
fresh = dedup.filter_new(items, posted_keys) # 去掉發過的
# 第一階:用便宜的 Haiku 幫每則評重要性(限 30 則 避免燒 token)
scored = [(it, importance_scorer.score(it)) for it in fresh[:30]]
chosen = pick_by_category(scored) # 分桶+配額:AI 最多 2 則 股市各取最高分(防洗版)
for item, sc in chosen:
caption = writer.write_caption(item, sc) # 第二階:Opus 用我的 voice 寫稿
img = image_gen.render(item, sc) # Pillow 生 1080x1080 圖
if dry_run: # dry-run:存 logs/preview 先看 不發
continue
url = imgbb.upload(img) # IG 只收公開 URL → 先上 imgbb 圖床
ig.post(url, caption) # 再發 IG
怎麼決定發哪幾則(配額 + 防洗版)
評完分數後分桶:AI 類達閾值的全發 但同一次最多 2 則(不洗版);台股 / 美股各取分數最高的 N 則 當天保底但同類已經發過就跳過。這套規則是用程式寫死的 不靠我每天臨場判斷 — 但結果可控:不會某天突然暴發 10 則 也不會真正的大新聞被漏掉。自動化的重點不是「全交給 AI」 是「把我的判斷標準寫成規則 讓它替我穩定執行」。
IG 發圖的真實坑:它只收「公開 URL」不收本機檔
這段卡最久。IG Graph API 發圖不吃你本機的圖檔 — 它要一個「公開可存取的圖片 URL」。所以流程是 Pillow 在本機生圖 → 先上傳到 imgbb 圖床拿到公開 URL → 再把那個 URL 丟給 IG API 發。第一次不知道 直接傳本機路徑 怎麼試都失敗 查半天才發現是這個設計。另外 token 跟所有 Meta API 一樣會過期 要排 refresh 不然某天就靜默不發。
dry-run + 誠實揭露
自動發文最怕「發出去才發現寫爛或圖醜」。所以有 --dry-run:照跑抓新聞、評分、寫稿、生圖 但不發 圖存在 logs/preview/、稿存 draft txt 我先看過再開真發。還有每篇貼文自動帶一句「⚠ 此貼文由 AI 自動產出 作為我自己的資訊蒐集與觀點記錄」— 不假裝是純人工 跟我在 about / SEO 篇講的誠實是同一條。
整段複製給 AI agent,你就有這個 workflow
把下面整段複製貼給你的 AI agent(Claude Code 或同類),它就能照著幫你把這個「AI / 股市新聞自動發 IG 的事件驅動 bot」一步步建起來,你不用自己從零摸。
我要你幫我做一個「AI / 股市新聞自動發 IG」的 bot,設計成事件驅動(每 30 分鐘掃一次,只有夠重要的新聞才發,沒大事就安靜),而不是定時硬發。請用 Python,做成六段 pipeline:collectors(抓 RSS,來源分 AI、台股、美股三類)、importance_scorer(評每則新聞的重要性分數)、dedup(去掉發過的)、writer(寫貼文文案)、image_gen(用 Pillow 生 1080x1080 的圖,放標題、分數、logo)、publisher(發到 IG)。
評分跟寫稿請用兩階 LLM 分工省 token:第一階用便宜的 Claude Haiku 一次掃最多 30 則、幫每則評重要性分數;只有超過閾值的,才交給較貴的 Claude Opus 用我的口吻寫成貼文。便宜模型做篩選、貴模型做精工,不要每則都用最貴的模型硬幹。
選發哪幾則請用程式寫死規則,不要每次臨場判斷:AI 類達閾值的同一次最多發 2 則防洗版,台股、美股各取分數最高的幾則,同類當天已發過就跳過。
請特別避開這幾個我知道的雷:第一,IG Graph API 不吃本機圖檔,它只收一個可公開存取的圖片網址,所以流程一定是 Pillow 本機生圖、先上傳到 imgbb 之類的圖床拿到公開網址、再把那個網址丟給 IG 發,千萬別直接傳本機路徑;第二,Meta 的 token 會過期而且過期後會靜默不發,請幫我排好 token refresh 並在失敗時記錄,不要無聲無息;第三,去重要可靠(例如把發過的 key 記在 jsonl),避免重複發同一則。
請務必做一個 dry-run 模式:照跑抓新聞、評分、寫稿、生圖,但不真的發,圖存到 logs/preview、文案存成草稿檔讓我先看過再開真發。另外每篇貼文結尾自動帶一句說明這是由 AI 自動產出、作為我自己的資訊蒐集與觀點記錄的揭露語,不要假裝是純人工。發文部分只做工具本身,不要在文案裡寫任何買賣結論或操作建議。
排程我預計用 Windows 工作排程每 30 分鐘跑一次。請先確認我目前的環境(作業系統、Python 版本、有沒有 IG 商業帳號跟 Graph API 權限、有沒有 Claude API key、要不要 imgbb key),再一步步建,每完成一步先停下來跟我確認再繼續。
把上面整段複製貼給 agent 就好,它會問你環境跟金鑰細節再動手實作,你只要回答、卡住時補上你的設定資訊就行。
完整 SOP 清單
上面已經把事件驅動架構、兩階 LLM 省 token 設計、IG 發圖要圖床的坑都寫出來了。下面是完整元件對照 確認沒漏掉哪塊:
- 六段 pipeline 完整 code(collectors → scorer → dedup → writer → image_gen → publisher)
- 兩階 LLM 分工:Haiku 評分 prompt + Opus 寫稿 prompt(我的 voice)+ 為什麼這樣分省 token
- RSS collectors(AI / 台股 / 美股)+ importance_scorer 閾值 / 配額設定
- Pillow 生圖 layout code(1080x1080 + 標題 + 分數 + logo)
- IG Graph API 發圖完整流程(Pillow → imgbb 圖床 → IG publish)+ token refresh
- dry-run / --force 測試工作流 + jsonl 去重 + 當天分類保底邏輯
- AI 揭露警語 + 我撞過的雷(IG 只收公開 URL / token 靜默過期 / 洗版控制)
看完這篇之前先確認:
- 想做 IG 自動內容但不想全程用昂貴 model 燒錢
- 想學「小模型過濾 + 大模型寫稿」的省錢設計
- 願意自己 review 圖再發 (有 dry-run 機制)
- 還沒做過 thread bot 的人 (先去那篇從簡單版開始)
- 完全不在意 IG 流量純粹好玩
- 想完全不 review 直接全自動發 (圖會翻車)
- 全程用 Opus 一個月燒上千美 — 一定要拆兩階 LLM
- 沒人工 review 直接發 IG 翻車案例:AI 寫錯名字、生圖糊掉、敏感字眼
- 圖片生成尺寸沒對 IG 1:1 square,發出去被裁掉重點
▸ 常見問題
兩階 LLM 拆分為什麼省錢?
Claude Haiku 一次 input 約 $0.0008、Opus 約 $0.015 (差 20 倍)。一天 100 則新聞先丟 Haiku 評分過濾掉 90 則,只剩 10 則丟 Opus 寫稿,總成本是「100×Haiku + 10×Opus」遠低於「100×Opus」。月省約 $50-80。
一定要用 Pillow 生圖嗎?用 Canva 不行?
Pillow 是程式自動 render,跑 cron 沒人介入。Canva 要人手動拖,沒法接 workflow。如果你只發少量、可以接受手動,Canva 也行;但這個 workflow 重點是「自動」就用 Pillow。
dry-run 機制是什麼?
把整套流程跑完但最後一步「發 IG」改成「寫進 log 加上預覽圖」。我每天 1 次 dry-run 看 AI 寫了什麼、生了什麼圖,確認沒翻車再讓它跑正式版。新手前 2 週建議全 dry-run。
發 IG 要 IG 商業帳號嗎?
要。IG Graph API 只能用商業帳號或創作者帳號 (個人帳號不支援)。免費轉換,但需要綁 Facebook page。如果你 IG 是個人帳號要先去設定切換成商業帳號,5 分鐘搞定。
名詞解釋
- 大型語言模型(LLM, Large Language Model)
- ChatGPT、Claude 這類 AI 背後的技術:讀過海量文字後,學會理解與生成人類語言的模型。
- 排程(cron)
- 讓程式「每天 8 點」「每小時」自動執行的定時器。自動發文、定期抓資料都靠它。
- API(應用程式介面)
- 程式跟程式之間溝通的窗口。例如你的程式透過 LINE 的 API 自動發訊息、透過 Google 的 API 讀試算表。
- API 金鑰(API key)
- 服務發給你的一串密碼,程式用它證明「我有權限使用這個服務」。絕對不能公開、不能寫死在程式碼裡。
- 機器人(bot)
- 自動執行特定任務的程式,例如 LINE bot 自動回訊息、發文 bot 每天定時發貼文。