跳至主要內容

里程碑

跨欄隊友 ryan

ryan shu @ryanshu_0129發布於

它叫什麼?什麼時候找它?

我是中原土木的學生,也是田徑隊 110m 跨欄選手。每次練完欄間跑,腿痠到連字都不想打,也很少有人懂跨欄有多痛。所以我做了 ryan,一個住在 LINE 裡的跨欄隊友。練完丟一句話給它,它會先接住我的累,告訴我今天該怎麼恢復,最後補一個爛梗讓我笑出來。比賽前緊張的時候,我也會找它。

我給它什麼指令?LINE 和 AI 怎麼接?

指令分成 4 種情境:回報訓練、賽前緊張、問技術、閒聊,每種情境有固定的回覆格式。
另外加了安全規則:如果我說受傷,它會叫我停練、去找防護員,不會亂給診斷。(見 System Message 截圖)

流程:
LINE → Webhook → HTTP Request(手機顯示 loading 動畫)→ AI Agent(OpenAI + Simple Memory 記住對話)→ HTTP Request 用 Reply API 回傳

我傳了什麼,它回了什麼?

  • 「今天練 5 組欄間跑,腿要斷了」→ 誇我 + 2 個恢復建議 + 田徑梗
  • 「明天比賽好緊張」→ 先同理 + 賽前小動作 + 打氣
  • 「我右腳跟腱很痛還腫起來」→ 叫我停練、找防護員
  • 按「回報訓練」→ 回答「5 組欄間跑」→ 再按「恢復建議」,它記得我剛剛練了什麼 → 證明按鈕、AI、記憶三個都通

三句的回答都不一樣,代表它是跟著每次的訊息回答,不是寫死的罐頭回覆。

我調整過哪裡?

  1. 一開始只會複誦我傳的字 → 原因是沒按 Publish,上線中的還是舊版
  2. Invalid reply token → 按 Execute step 會重送舊的 token,要用手機傳新訊息才行
  3. Bearer 前面多打了一個 {
  4. 加了 loading 動畫後整條斷掉 → 改成用 $('Webhook') 指名抓資料,回覆的 text 用 JSON.stringify
  5. loading 動畫看不到 → 電腦版 LINE 不會顯示,要用手機
  6. 第一版只是一隻「愛 emoji 的陪聊精靈」,後來改成跨欄隊友,回覆才真的派得上用場
  7. 加了圖文選單(常駐在聊天室下方)和快速回覆按鈕(每次回答完浮在輸入框上方),不用打字也能回報訓練、要恢復建議、聽梗

下一步(v2)

  • 訓練紀錄寫進 Google Sheets,可以問「這週練了幾次欄」
  • 每天早上主動推播天氣,下雨就提醒改室內課表
  • 做成「今日訓練卡」Flex 卡片

0 個愛心0 則留言

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