跳至主要內容

里程碑

📰 預言家日報⚡|把你的日常寫成巫師世界頭條

Lu @lu12發布於 已編輯

一、專案背景

這陣子剛好在重溫哈利波特小說,讀到書裡的《預言家日報》,就一直覺得很有趣:巫師世界的報紙不但照片會動,記者還特別愛誇大其詞、捕風捉影。我就想:如果有一份專門報導我的日常的預言家日報,應該會很好玩!
於是我用 n8n 串接 LINE 和 AI,做了這隻 LINE 機器人「預言家日報⚡」。只要在 LINE 傳一句今天發生的事,本報記者麗塔·史譏就會把它寫成一則誇張又八卦的巫師報紙新聞。

二、想解決的問題

我一直想記錄生活,但寫日記很無聊,很難持續。所以我希望記錄這件事可以變得好玩:只要隨手傳一句話,就能收到一篇屬於自己的頭條新聞,讓平凡的一天也有一點魔法。

三、功能介紹

📰 日常新聞(圖 1、圖 2)
傳任何事件,回一張報紙風格的新聞卡片,有版別、標題、內文、記者署名和今日魔法預報。

🚨 號外模式(圖 3)
AI 會判斷事件是不是人生大事,例如考上學校、得獎,是的話報頭會變成紅色號外。

🌙 晚間出刊(圖 4)
白天傳的新聞會存進 Google Sheets,晚上點「晚間出刊」,會彙整成當天的晚報,附上總編輯的話。

🎲 圖文選單(圖 5)
底部有四個按鈕:使用說明、隨機爆料、晚間出刊、號外範例。

✉️ 貼心小細節
‧加好友時會收到訂閱歡迎卡片和玩法說明(圖 6)
‧傳貼圖或圖片時,會收到「本報記者只看得懂文字」的公告卡片,附範例按鈕(圖 7)
‧AI 撰寫新聞時會顯示載入動畫
‧報頭自動顯示日期、星期和期數,同一天的新聞是同一期

四、做法

整體流程(圖 8):
LINE 傳訊息 → n8n Webhook 接收 → IF 判斷訊息類型 → AI Agent 撰寫新聞 → HTTP Request 呼叫 LINE API 回傳 Flex Message

幾個設計重點:

  1. 用 IF 節點分流:LINE 傳來的不只文字訊息,還有貼圖、加好友、封鎖等事件,用 IF 分成新聞、出刊、使用說明、歡迎、非文字訊息幾條路,避免出錯。
  2. 讓 AI 輸出固定欄位:用 Structured Output Parser 讓 AI 分別輸出版別、標題、內文、預報和是否號外,再把欄位放進 Flex Message 版面。
  3. 用 System Message 設定人設:設定記者的口吻、字數、巫師世界用語,並禁止使用 Markdown 符號。

System Prompt:
你是《預言家日報》的資深記者,負責把使用者傳來的日常小事寫成巫師世界的報紙新聞。

請輸出以下欄位:

  • section:版別,例如「社會版」、「花邊版」、「體育版」,依事件內容挑選
  • headline:新聞標題,30 字以內,不要加【】
  • article:新聞內文,約 100 到 150 字
  • forecast:今日魔法預報,一到兩句
  • extra:是否為號外,true 或 false

規則:

  1. 使用繁體中文、臺灣用語。
  2. 語氣誇張、八卦、像小報,但不要惡意攻擊任何人。
  3. 把日常事物換成巫師世界的說法,例如捷運→呼嚕粉網路、手機→雙面鏡。
  4. 不要引用原著內文,全部用自己的話寫。
  5. 所有欄位都是純文字,禁止使用 Markdown 符號(**、#、--- 等)。
  6. 如果使用者傳的不是事件(例如只打「嗨」),headline 寫成本報徵求爆料的標題,article 用記者口吻問他今天發生了什麼新鮮事。
  7. 不要使用進度條或特殊方塊符號(例如 █、░)。
  8. extra 只有在事件是人生中少見的大事時才設為 true,例如考上學校、拿到錄取、告白、分手、中獎、搬家、得獎;吃飯、遲到、下雨這類日常小事一律是 false。號外要稀有才有價值。
  9. 以本報記者麗塔·史譏的口吻撰寫,擅長誇大其詞、捕風捉影,喜歡引用「不具名的可靠消息人士」。
  10. 如果使用者傳「隨機爆料」,請自己編一件好笑的日常小事,再把它寫成新聞。
  1. Google Sheets 當資料庫:每則新聞存下日期、使用者和標題,出刊時用 Code 節點篩出「今天、這位使用者」的新聞,再交給第二個 AI(總編輯)寫總結。

System Prompt:
你是《預言家日報》的總編輯。根據讀者今天刊出的所有新聞標題,寫一段約 80 字的「總編輯的話」,像晚報社論一樣總結讀者的這一天,語氣誇張幽默但溫暖。

規則:

  1. 使用繁體中文、臺灣用語。
  2. 只輸出那一段話,純文字,禁止使用 Markdown 符號。
  3. 如果今天沒有新聞,就寫一段催促讀者趕快向本報爆料的話。

五、遇到的問題與解法

‧粗體變成一堆星號:AI 習慣用 Markdown 的粗體符號,但 LINE 文字訊息不支援。後來改用 Flex Message,粗體、顏色、版面都能自己控制。
‧AI 輸出格式不穩定:一開始 AI 會把所有內容寫成一大段,很難放進卡片。改用 Structured Output Parser 指定欄位後就穩定了。
‧節點找不到:出現「Referenced node doesn’t exist」,原因是運算式裡的節點名稱和實際名稱不一樣。學到在 n8n 裡節點名稱也是程式的一部分。
‧加好友收到錯誤卡片:加好友事件也有 replyToken,會跑進非文字訊息的流程,所以多加一個 IF 把它分出來,順便做成歡迎卡片。

六、心得

一開始我只做了最基本的功能,機器人只會回一段單純的文字,老實說還滿醜的。後來一點一點加上不同的效果,像是報紙卡片、號外、日期期數、晚間出刊,整個機器人才慢慢有了報紙的感覺。
做的過程中也發現,要讓機器人「好用」,很多功夫其實都花在處理例外情況:使用者傳貼圖怎麼辦、加好友怎麼辦、AI 不照格式回答怎麼辦。另外,讓 AI 負責創意、程式負責規則的分工也讓我印象很深,例如期數用程式算、號外由 AI 判斷,兩邊各做自己擅長的事,結果才會穩定。
我真的沒想到自己能做出這麼有趣的機器人,看到第一張新聞卡片出現在 LINE 上的時候超有成就感,真的很讚!

七、未來規劃

‧串接中央氣象署開放資料,讓魔法預報變成真實天氣預報
‧依版別或用 AI 生成新聞配圖
‧加上「改寫成八卦版、體育版」的快速回覆按鈕

八、給其他大使的話

由於n8n在試用期後workflow會結束,加上ai model並沒有那麼多的額度,所以沒辦法讓大家試玩試用看看、、、

1 個愛心1 則留言

登入並驗證手機後就能留言。登入

留言

  1. Jenny @jenny_.1107

    這個好有創意.ᐟ.ᐟ.ᐟ😻好喜歡這個版面及色調🙌🏻讓我也想要訂閱ㄌ哈哈哈