這份文件涵蓋了 AI 日曆助理的核心功能與邊界情境的測試案例。
-
案例 A-1 (相對時間)
- 輸入指令:
明天早上9點開會 - 預期行為: 成功建立一個在明天早上 9:00-10:00 的「開會」活動。
- 輸入指令:
-
案例 A-2 (指定日期)
- 輸入指令:
9月15號下午三點跟John面試 - 預期行為: 成功建立一個在 9/15 15:00-16:00 的「跟John面試」活動。
- 輸入指令:
-
案例 A-3 (時間區間)
- 輸入指令:
週四下午2點到4點的教育訓練 - 預期行為: 成功建立一個在下個週四 14:00-16:00 的「教育訓練」活動。
- 輸入指令:
-
案例 A-4 (重複事件)
- 輸入指令:
每週一早上9點的站立會議 - 預期行為: AI 應能識別出這是一個重複性活動,但缺少結束條件。系統會主動反問:「好的,活動「站立會議」是一個重複性活動,請問您希望它什麼時候結束? (例如: 直到年底、重複10次、或直到 2025/12/31)」。在使用者回覆結束條件後,系統將整合完整的重複規則,並建立日曆事件。
- 輸入指令:
-
案例 A-5 (全天事件)
- 輸入指令:
10月10號國慶日放假 - 預期行為: 成功建立一個在 10/10 的全天「國慶日放假」活動。
- 輸入指令:
-
案例 A-6 (多日事件)
- 輸入指令:
下週一到下週三出差 - 預期行為: 成功建立一個從下週一到下週三的全天「出差」活動。
- 輸入指令:
-
案例 B-1 (缺少結束時間)
- 輸入指令:
今天下午4點要去看牙醫 - 預期行為: AI 應預設活動長度為 1 小時 (16:00-17:00),並在卡片上顯示該時間供您確認。
- 輸入指令:
-
案例 B-2 (模糊時間)
- 輸入指令:
週六晚上跟家人吃飯 - 預期行為: AI 應預設一個合理的晚上時間 (例如 19:00),並在卡片上顯示該時間供您確認。
- 輸入指令:
-
案例 B-3 (複雜語句)
- 輸入指令:
對了,別忘了下週五要幫我預約下午兩點的客戶訪談,大概一個半小時 - 預期行為: AI 應能不受干擾,準確抓取出「客戶訪談」、「下週五」、「14:00-15:30」等關鍵資訊。
- 輸入指令:
-
案例 B-4 (跨年份)
- 輸入指令:
明年1月5號員工旅遊 - 預期行為: AI 應能正確地將年份設定為 2026 年。
- 輸入指令:
-
案例 B-5 (無明確主旨)
- 輸入指令:
明天下午三點 - 預期行為: AI 應能識別出指令中缺少活動主旨,並主動反問:「好的,請問『...』要安排什麼活動呢?」。待使用者回覆活動標題後,系統將整合完整的活動資訊,並接續執行建立日曆事件的流程。
- 輸入指令:
-
案例 C-1 (重複新增)
- 操作步驟:
- 輸入
下週二下午3點開會,並完成新增。 - 再次輸入
下週二下午3點開會,並按下「新增」。
- 輸入
- 預期行為: 第二次新增時,Bot 應回覆一張按鈕卡片,提示「活動已存在」,並附上查看連結。
- 操作步驟:
-
案例 C-2 (非指令訊息)
- 操作步驟:
- 輸入
你好。 - 輸入
今天天氣如何?
- 輸入
- 預期行為: Bot 應保持安靜,不回覆任何訊息。
- 操作步驟:
-
案例 D-1 (選擇單一日曆新增)
- 前置條件:
.env中已設定TARGET_CALENDAR_NAME,例如家庭,工作。 - 輸入指令:
明天下午3點部門會議 - 預期行為: Bot 應回覆一張按鈕卡片,詢問要將活動加入哪個日曆,卡片上應包含活動標題與時間。
- 使用者操作: 點擊「工作」按鈕。
- 預期結果: Bot 在「工作」日曆建立活動,並回覆一張按鈕卡片,顯示成功新增至「工作」日曆,並附上活動連結。
- 前置條件:
-
案例 D-2 (選擇全部加入)
- 前置條件: 同 D-1。
- 輸入指令:
明天下午3點部門會議 - 使用者操作: 在多日曆選擇卡片中,點擊「全部加入」按鈕。
- 預期結果: Bot 應在所有目標日曆 (
家庭,工作) 中建立活動,並回覆一張輪播卡片,內含兩張子卡片,分別顯示成功新增至「家庭」與「工作」日曆,並附上各自的活動連結。
-
案例 D-3 (分次新增的智慧回覆)
- 前置條件: 同 D-1。
- 操作步驟:
- 執行一次 案例 D-1,將「部門會議」新增至「工作」日曆。
- 再次輸入
明天下午3點部門會議。 - 在跳出的多日曆選項中,點擊「家庭」按鈕。
- 預期結果: Bot 在「家庭」日曆建立活動後,應回覆一張輪播卡片,顯示此活動已存在於「工作」與「家庭」兩個日曆中,並附上各自的活動連結。
-
案例 D-4 (全部加入的智慧回覆)
- 前置條件: 同 D-1,且「部門會議」已存在於「工作」日曆中。
- 輸入指令:
明天下午3點部門會議 - 使用者操作: 在多日曆選擇卡片中,點擊「全部加入」按鈕。
- 預期結果: Bot 應回覆兩則訊息:
- 一則文字訊息,提示「🔍 已存在,故跳過:
- 工作」。 2. 一張輪播卡片,顯示此活動已存在於「工作」與「家庭」兩個日曆中,並附上各自的活動連結。
-
案例 E-1 (查詢特定日期)
- 輸入指令:
明天有什麼事或查詢明天行程 - 預期行為: Bot 應列出明天所有的日曆活動,包含時間與標題。若無活動,則回覆「您明天沒有安排任何活動」。
- 輸入指令:
-
案例 E-2 (查詢特定時間範圍)
- 輸入指令:
下週有什麼活動 - 預期行為: Bot 應列出下週一至週日的所有活動。
- 輸入指令:
-
案例 E-3 (查詢特定活動)
- 輸入指令:
我什麼時候要跟John面試 - 預期行為: Bot 應找到「跟John面試」的活動,並回覆其日期與時間。
- 輸入指令:
-
案例 F-1 (修改活動時間)
- 前置條件: 已存在一個活動「明天下午3點開會」。
- 輸入指令:
把明天下午3點的會議改到下午4點 - 預期行為: Bot 應找到該活動,直接更新活動時間,並回覆包含更新後資訊的成功卡片。
-
案例 F-2 (修改活動標題)
- 前置條件: 已存在一個活動「明天下午3點開會」。
- 輸入指令:
把明天下午3點的會議改成部門同步會議 - 預期行為: Bot 應找到該活動,直接更新活動標題,並回覆包含更新後資訊的成功卡片。
-
案例 F-3 (修改地點與備註)
- 前置條件: 已存在一個活動「明天下午3點開會」。
- 輸入指令:
修改明天下午3點的會議 - 預期行為: Bot 回覆一張活動詳情卡片,並提問:「請問您想如何修改這個活動?...若不需要做修改,請輸入「取消」」。
- 使用者操作: 輸入
地點在301會議室,另外提醒大家要帶筆電 - 預期結果: Bot 應成功更新活動的地點與備註,並回覆包含所有更新後資訊的成功卡片。
-
案例 F-4 (修改不存在的活動)
- 輸入指令:
把今天早上9點的讀書會改到10點 - 預期行為: Bot 應回覆「抱歉,找不到您想修改的活動。」。
- 輸入指令:
-
案例 F-5 (修改互動流程與取消)
- 前置條件: 已存在一個活動「明天下午3點開會」。
- 輸入指令:
修改明天下午3點的會議 - 預期行為: Bot 回覆一張活動詳情卡片,並提問:「請問您想如何修改這個活動?...若不需要做修改,請輸入「取消」」。
- 使用者操作: 輸入
取消 - 預期結果: Bot 回覆「好的,操作已取消。」
-
案例 G-1 (刪除特定活動)
- 前置條件: 已存在一個活動「明天下午3點開會」。
- 輸入指令:
取消明天下午3點的會議 - 預期行為: Bot 應找到該活動,並詢問使用者是否確認刪除。確認後,刪除活動並回覆成功訊息。
-
案例 G-2 (刪除不存在的活動)
- 輸入指令:
刪除今天早上9點的讀書會 - 預期行為: Bot 應回覆「找不到您指定的活動,請確認活動資訊是否正確」。
- 輸入指令:
-
案例 H-1 (新增時段衝突)
- 前置條件: 已存在一個活動「明天下午3點到4點開會」。
- 輸入指令:
明天下午3點半跟客戶吃飯 - 預期行為: Bot 應檢測到時間衝突,並回覆訊息提示:「該時段已被「開會」佔用 (15:00-16:00),您確定要繼續新增嗎?」,並提供「是/否」的選項。
-
案例 H-2 (新增時段無衝突)
- 前置條件: 已存在一個活動「明天下午3點到4點開會」。
- 輸入指令:
明天下午5點運動 - 預期行為: Bot 應正常建立活動,無須提示衝突。
- 案例 I-1 (呼叫功能列表)
- 輸入指令:
你可以做什麼?(或功能列表,help等關鍵字) - 預期行為: Bot 應回傳完整的歡迎訊息,內容包含所有主要功能的介紹與範例。
- 輸入指令: