跳至主要內容

里程碑

Petit Prof:一個會陪你用生活聊法文的 LINE 機器人 🇫🇷

siri @irisss發布於 已編輯

為什麼想做這個
因為我正在學法文,一直覺得學到的東西跟生活連不起來。課本教了很多單字和句型,但生活中看到某個東西、正在做某件事時,常常會想「這個用法文怎麼說?」,卻沒有一個可以馬上問的對象。
所以我想做一個隨時能問的「法國朋友」:看到什麼就拍下來傳給它,或隨口說說自己正在做什麼,它就用法文跟我聊天,順便教我在這個情境真的用得到的說法。

之所以設定成朋友而不是老師,是因為我覺得跟朋友聊天比較輕鬆,不會有被考試的壓力,比較敢開口、也比較願意一直聊下去。

主要功能

  • 📸 拍照開啟話題:傳一張照片,它會像朋友一樣回應,帶出照片裡的單字和一個小知識,最後用法文問你一個問題
  • 💬 文字接續聊天:用中文、法文或中法夾雜回答都可以,它會接著聊下去
  • 🎯 依程度調整:第一次聊天會先問你的法文程度,之後依程度調整用字和中文比例
  • ✏️ 溫和修正:寫錯時不直接說「錯」,而是自然地用正確說法重述一次;錯得明顯時,再簡短說明原因
  • 🧠 記得對話:會記得最近 10 輪對話,所以你回答問題時,它知道你們在聊哪張照片

過程

  1. 發想:一開始想做記帳、待辦加每日冷知識的機器人,後來發現這類工具已經很多,於是改從「用自己產生的資料」和「讓使用者參與」兩個方向思考,最後選了拍照學法文:最簡單、能免費做,又有個人特色
  2. v1:看圖教法文:傳照片,AI 回覆法文描述、單字和文法點。成功了,但回覆很像制式的 AI 教材
  3. v2:改成朋友聊天:參考第二語言習得(SLA)的理論重新設計互動方式(詳見下方設計理念),並加入記憶,讓機器人可以一來一往地對話
  4. 遇到的問題
    • 原本要用的 Gemini 模型已經不開放給新用戶 → 改用新版模型
    • 模型尖峰時段過載 → 改用較輕量的 Flash-Lite
    • LINE 的 Webhook 開關要先填網址才能打開

目前的狀態
老實說,現在的版本還只是先把整個架構做出來,回覆的語氣、教學內容的深淺、對話的節奏,都還有很多可以調整的地方,還沒有到很精緻的程度。接下來會一邊實際使用,一邊慢慢修。目前也只是自己使用的版本。

使用者介面:設計理念
介面就是 LINE。 不需要下載新 App,學法文就像傳訊息給朋友一樣自然。
回覆的設計參考了幾個語言學習理論:
(理論 | 我的設計)
可理解輸入(Krashen i+1) | 法文為主、中文為輔,只翻譯新出現的句子
輸出假說(Swain) | 每則回覆結尾都問一個問題,讓使用者有動機開口
互動假說(Long) | 用重述(recast)修正錯誤,像朋友自然示範
注意假說(Schmidt) | 每次只教一個重點,避免資訊過量
語塊學習 | 教整句片語,例如 Je prends...,而不是單字表
情意濾網 | 語氣輕鬆、歡迎中法夾雜,降低開口的焦慮

另外在格式上刻意避開「1. 2. 3.」編號和「單字:」這類標題,限制 emoji 數量和回覆長度,讓它讀起來像朋友傳的訊息,而不是 AI 報告。

核心自動化流程:n8n
整個機器人用 n8n Cloud 串接,不需要寫程式,主要用拖拉節點和中文指令完成。

資料庫
目前沒有使用外部資料庫。對話記憶使用 n8n 內建的 Simple Memory,以每位使用者的 LINE ID 分開儲存,保留最近 10 輪對話。
限制:重新發布或系統重啟後,記憶可能會被清空。

資料來源

  • 使用者在 LINE 傳送的照片和文字,透過 LINE Messaging API 的 Webhook 即時送進 n8n
  • 照片檔案透過 LINE 的 Content API,用訊息編號取得

大腦
Google Gemini Flash-Lite,分成兩個角色:

  • 眼睛:Gemini 看圖,客觀描述照片內容
  • 法國朋友:AI Agent 加上 Gemini 對話模型,依照系統訊息裡的人設和教學規則回覆

把「看懂照片」和「聊天教學」拆開,讓照片和文字可以共用同一個聊天大腦和同一份記憶。

結構

┌ 照片 → 取得照片 → Gemini 看圖 → 整理成 userMessage ┐
LINE → Webhook → 判斷類型 ├→ 法國朋友(AI Agent+記憶)→ 回覆 LINE
└ 文字 → 整理成 userMessage ──────────────────────────┘

運作邏輯

  1. 使用者在 LINE 傳訊息,LINE 透過 Webhook 通知 n8n
  2. If 節點判斷是照片還是文字
  3. 照片:用訊息編號向 LINE 取得照片 → Gemini 描述照片 → 整理成「我傳了一張照片,內容是……」
  4. 文字:直接整理成同一個欄位 userMessage(貼圖也會轉成一句描述,讓機器人可以回應)
  5. 兩條路匯進同一個 AI Agent,依使用者的 LINE ID 讀取對話記憶,產生回覆
  6. 用 LINE 的回覆 API,把訊息傳回給使用者

成本
全部使用免費方案:LINE 官方帳號的輕用量方案(回覆訊息不計費)、Gemini API 免費額度、n8n Cloud 試用。

這次的收穫
做這個專案之前,我對 AI 的了解其實非常淺。雖然很常用 AI 學東西,甚至用 AI 來學 AI,但一直沒有真正理解背後的核心邏輯,也沒有自己動手實作過。
這次從零開始做,過程中第一次具體理解了很多概念:Webhook 怎麼觸發流程、資料怎麼在節點之間傳遞、系統訊息和使用者訊息的差別、AI 為什麼需要「記憶」,以及怎麼讓不同的 AI 分工合作。
不過我也清楚感覺到,自己在基礎邏輯上還有很多需要補強的地方。接下來想找相關課程,把基礎打得更扎實。

未來想做的

  • 🎤 語音輸入:用說的,練口說
  • 🔁 間隔重複:把學過的單字存起來,之後在對話裡自然複習
  • 🔊 發音:附上可以聽發音的連結
  • 💾 永久記憶:改用資料庫保存程度和對話
  • ✨ 持續調整回覆的語氣和教學深淺,讓它更像真的朋友

特別感謝
感謝上哲老師的影片,讓我對 n8n 和 AI 自動化有了入門的方向,也是我開始動手做這個專案的起點。
也謝謝 Claude 在整個製作過程中一步一步陪我拆解問題,從節點設定、各種術語,到怎麼把語言學理論變成實際的設計。

0 個愛心0 則留言

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