跳至主要內容

里程碑

主題:AI 小精靈|打造一個會帶你複習英文 x 數學 x 程式 的 AI 學習教練

hxi @hxi35發布於 已編輯

一、專案背景與動機

會想做一個幫忙學英文、數學和程式的 AI 小工具,主要是源自於我自己的需求以及過去和同學一起做專案時的想法。

我喜歡數學,但也知道不能只顧著喜歡的科目,例如要準備 TOEIC 就一定得花時間練英文題目;想真正懂 AI,至少要會一點基本的程式和框架,雖然現在有 LLM 確實很方便,但我覺得基本功還是要自己打好,不然很難做到深刻的理解,更不可能創造出新的東西。
而在一年半以前,我曾和同學們一起開發過一個類似生活助理的行程管理 app,主要幫忙使用者規劃,包含學業以及生活上的各種大小事,希望能藉由 AI 的幫助,讓使用者在「規劃」這件事情上更輕鬆,像是使用者可以隨意地講一句或輸入一句話,AI 就能夠理解,把需求包裝成特定格式到行事曆上。

這次我把當時「用一句話就能安排行程」的想法延續下來,再加上自己最需要的學習陪練。我在這邊做了一個能陪我把基本功練起來、提醒我該複習哪些科目且能幫我安排行程的 AI 自動化工具。

二、想解決的問題(痛點)

老實說我是一個很懶的人哈哈。雖然我們總想要讓自己變得更好,但總是會出現一些阻礙。像我就是忙完學校課業之後就很難再有力氣管自己的學習目標,甚至忘記自己當初還要定下這樣的目標。

我把自己的痛點整理成這三點:

  1. 目標沒人管:計畫寫了就放著,不知道今天該做什麼。
  2. 收藏了就忘記:看到不錯的教材影片就收藏,然後再也沒打開過(真的好想改)。
  3. 學完不複習(最大的痛點):學完一個觀念後從來不會安排複習時間,結果成效不明顯,考試時常常忘東忘西,同樣的題目一錯再錯。

所以這個小精靈的目標很明確:把「管自己」這件事試著外包給它。

痛點小精靈的做法
不知道今天該做什麼說出目標(例如「三個月準備 TOEIC,每天 30 分鐘」),它就給今天能完成的具體任務
學習時間被吃掉讀取 Google 行事曆找空檔,經我確認後才建立活動,時間到了在 LINE 提醒
收藏了就忘記貼上連結就收藏,每週三主動提醒還沒看的教材,每週六推薦偏好頻道的新影片
學完不複習錯題本加上間隔複習:答錯的題目隔天再考,答對後 3 天、7 天再複習一次,三次都對才算真正掌握
不知道有沒有進步每週日推播週報:英文、數學、程式這幾科目的正確率、較弱的主題與下週建議

三、做法

1. 系統架構

系統架構
n8n 流程圖_接收驗證與資料載入
n8n 流程圖_AI 路由、Planning Agent 與沙箱
n8n 流程圖_結果處理與寫入
n8n 流程圖_排程任務

整個流程分成三段:

  • 接收訊息:LINE 訊息進入 n8n Webhook,先驗證簽章、過濾重複事件,並立刻顯示「輸入中」動畫。
  • 理解與處理:讀取我的目標、作答紀錄、錯題本、教材、行程等資料。批改答案、查錯題本、看週報這類固定指令由程式直接處理;需要教學、出題或規劃時,才交給 AI。
  • 回覆與寫入:由程式決定要寫入哪些資料,再把結果畫成 Flex 卡片回覆到 LINE。

另外有 6 條排程流程在背景運作:

  • 每 5 分鐘檢查並推播學習提醒
  • 每天 19:30 推播到期的錯題
  • 週三回顧還沒看的收藏
  • 週六推薦 AI 新影片
  • 週日推播週報
  • 流程出錯時通知管理員

2. 設計

核心原則:AI 負責提議,程式負責驗證和決定。

LLM 很會說話,但會算錯、會編連結,連星期幾都會講錯。所以我把「判斷」和「事實」分開處理:

  • 數學題:AI 出題時要附上算式,程式會重新計算。兩邊答案不一致,這題就不出。
  • 程式題:AI 寫的參考解答要先在 Judge0 沙箱裡通過所有測試,題目才會出給我。我交的程式也只在沙箱執行。
  • 行事曆:Agent 建議的時段,程式會再查一次行事曆檢查衝突。建立、取消、改期都要我回覆數字確認。
  • 教材連結:只保存我訊息裡真的出現的網址,AI 不能自己編。
  • 統計數字:正確率、週報、錯題的複習日期全部由程式計算,不讓 AI 猜。

為「懶人」設計的互動:

  • 盡量用按鈕代替打字:Rich Menu、Flex 卡片、快速回覆按鈕。
  • 不等我主動,到時間它就推播提醒。
  • 點一下「今日練習」就好:有到期的錯題會先複習,沒有才出新題。

3. 使用的技術

  • n8n Cloud:Webhook、Code、IF、HTTP Request、AI Agent(含 Tool 節點)、Schedule Trigger、Error Trigger、Data Table(10 張資料表)
  • LINE Messaging API:Reply/Push、Flex Message、Quick Reply、Rich Menu、Loading Animation、簽章驗證
  • OpenAI:判斷意圖、產生教學內容;Planning Agent 會帶入最近的對話作為記憶
  • Google Calendar API:查空檔,建立、修改、刪除活動
  • Judge0:程式碼沙箱
  • YouTube Data API:讀取播放清單、搜尋新影片

四、成果

完成的功能

  • 英文練習:TOEIC Part 5 風格,先教觀念再出題,按按鈕作答,馬上看到解析
  • 數學練習:答案由程式驗算,可以用分數或小數作答
  • 程式路線:Python 到 AI 入門共 15 步,每步一個小函式題,沙箱自動測試,通過後推薦課程影片
  • 錯題本與間隔複習:答錯的題目自動收進錯題本,隔天、3 天、7 天後再考;每天推播到期的題目
  • Planning Agent:依目標、弱點、教材和行事曆規劃一週學習,並提出可以直接建立的時段
  • 學習提醒:有「開始」「完成」「延後」「跳過」按鈕,跳過後可以一鍵重新安排
  • 教材收藏:貼連結就能存,可以改名、標記看過,也能讀取 YouTube 播放清單來規劃進度
  • 每週報告:英文、數學、程式分開統計正確率,附上較弱主題和下週建議

範例

  1. 點 Menu 的「今日練習」,小精靈出一題英文題。
  2. 答錯了,卡片顯示正確答案與解析,並告訴我「已加入錯題本,明天會再考你一次」。
  3. 隔天晚上 19:30 收到「錯題複習時間」推播,點「開始複習」,這次答對了,它說「3 天後再複習一次」。
  4. 說「幫我規劃這週的學習」,Agent 給出計畫和 3 個時段。回覆「1」之後 Google 行事曆就多了一個活動,時間到時 LINE 會提醒我。
  5. 說「本週報告」,看到各科正確率的長條圖。

(補充:圖跟上述流程不一定一樣)

Menu
答錯加入錯題本
答對畫面
統計表
錯題本

五、遇到的挑戰與學到的事

時間安排:首先很感謝上哲讓我們能有機會學習到 n8n 自動化流程怎麼用。這次其實有很充裕的時間,但因為這陣子都在忙學校推甄跟課業的事情,沒能早點開始,最後幾天才開始集中做,做了之後才發現這件事真的好有趣,早知道我應該早點做的啊。

技術上的收穫:

  • AI 不可靠的地方要用程式補:AI 把星期幾算錯、輸出格式跑掉、把題目答案寫進回覆裡,最後都靠「固定格式加上程式驗證」解決。
  • 體驗細節影響很大:載入動畫原本排在讀取資料之後才啟動,等到出現時回覆也到了,等於沒顯示,改成一驗證完就啟動才看得到。另外,太長的選項放在按鈕裡會被截斷,所以改成在卡片內文顯示完整選項,按鈕只放 A/B/C/D。

六、未來優化方向

目前的功能還是以「出題、練習、複習」為主,距離自己的心目中的樣子還有一點差距,像是題目難度目前預設都偏簡單。接下來會再花一點時間讓這個作品變得更接近自己想要的模板,像是

  • 更聰明的出題:為每一科建立知識點地圖,追蹤每個主題的掌握度,由程式決定出哪個主題、多難的題目,AI 只負責把題目寫出來。
  • 更多題型:英文口說(語音轉文字)、短句寫作回饋、數學拍照上傳解題。
  • 學習儀表板:做一個網頁,看長期正確率趨勢和連續學習天數。
  • 架構整理:把目前上百個節點的大流程拆成幾個子流程,讓回覆更快,也更好維護。
  • 讓身邊朋友也能用看看:改用正式的資料庫,加入新使用者引導流程,提供刪除個人資料的功能。

0 個愛心0 則留言

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