From 32cc10ffd5c04b7c69fa0303b9e37a0816968170 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=84=AD=E6=B2=9B=E8=BB=92?= Date: Thu, 11 Sep 2025 02:53:42 +0800 Subject: [PATCH] refactor: organize design documents and consolidate AI function specifications MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Move ai-algorithm-specs.md to common specifications - Move content-management-specs.md and ui-ux-guidelines.md to common - Add new common specifications: pragmatic-analysis-specs.md, progressive-stage-system.md, speaking-evaluation-specs.md, user-flow-diagrams.md - Update business rules with comprehensive payment system, user roles, and progressive learning mechanics - Consolidate business logic rules into common business rules - Archive deprecated ai-algorithm-specs.md to maintain version history - Improve document organization for better cross-platform reference 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- docs/01_requirement/business-rules.md | 76 +- docs/01_requirement/user-stories.md | 3 +- docs/01_requirement/已處理/闖關學習.txt | 2 + docs/02_design/business-logic-rules.md | 300 ------- .../common/ai-algorithm-specs.md | 425 ++++++++++ .../function-specs/common/business-rules.md | 672 +++++++++++++-- .../common}/content-management-specs.md | 0 .../common/pragmatic-analysis-specs.md | 178 ++++ .../common/progressive-stage-system.md | 257 ++++++ .../common/speaking-evaluation-specs.md | 93 +++ .../common}/ui-ux-guidelines.md | 22 +- .../common/user-flow-diagrams.md | 779 ++++++++++++++++++ .../mobile/01_situational-dialogue-mobile.md | 20 +- .../mobile/02_vocabulary-learning-mobile.md | 13 +- .../mobile/03_learning-map-mobile.md | 92 ++- .../mobile/04_item-shop-mobile.md | 4 +- .../function-specs/web/item-shop-web.md | 4 +- .../web/situational-dialogue-web.md | 2 +- docs/02_design/gamification-mechanics.md | 77 +- .../backend-api-separation-plan.md | 443 +++++++++- .../20250911005436_ai-algorithm-specs.md | 244 ++++-- 21 files changed, 3086 insertions(+), 620 deletions(-) delete mode 100644 docs/02_design/business-logic-rules.md create mode 100644 docs/02_design/function-specs/common/ai-algorithm-specs.md rename docs/02_design/{ => function-specs/common}/content-management-specs.md (100%) create mode 100644 docs/02_design/function-specs/common/pragmatic-analysis-specs.md create mode 100644 docs/02_design/function-specs/common/progressive-stage-system.md create mode 100644 docs/02_design/function-specs/common/speaking-evaluation-specs.md rename docs/02_design/{ => function-specs/common}/ui-ux-guidelines.md (97%) create mode 100644 docs/02_design/function-specs/common/user-flow-diagrams.md rename docs/02_design/ai-algorithm-specs.md => sop/archive/20250911005436_ai-algorithm-specs.md (55%) diff --git a/docs/01_requirement/business-rules.md b/docs/01_requirement/business-rules.md index 1388dd1..07edc89 100644 --- a/docs/01_requirement/business-rules.md +++ b/docs/01_requirement/business-rules.md @@ -24,6 +24,34 @@ - 用戶可透過客服申請帳戶刪除後重新註冊 ``` + +#### BR-USER-01: 付費用戶分級規則 +```yaml +規則名稱: 用戶付費等級與權益管理 +適用範圍: 所有付費用戶類別 +用戶等級定義: + 試用用戶: + - 期限: 7天免費體驗訂閱用戶 + - 權益: 完整功能體驗 + - 限制: 試用期結束後自動轉訂閱用戶 + - 轉換: 若不訂閱,需自行到設定取消訂閱 + 訂閱用戶: + - 定價: NT$600/月 或 NT$6,000/年 (8.3折優惠) + - 權益: 無限制學習次數,進階統計報告 + - 特權: 每日3次免費限時挑戰,命條恢復加速 + - 期限: 按月/年自動續訂,可隨時取消 + 進階用戶(第二階段功能開放後提供): + - 定價: NT$900/月 或 NT$9,000/年 (8.3折優惠) + - 權益: 訂閱用戶所有功能 + 進階自訂學習功能 + 更優質的學習體驗(tts) + - 特權: 更多命條上限,更快回復速度,專屬學習模式 + - 階段: 第二階段功能開放後提供 + 高價值用戶(第三階段功能開放後提供): + - 定義: 累計購買鑽石超過NT$3,000的用戶 + - 權益: VIP客服支援,專屬活動邀請 + - 特權: 新功能優先體驗,限定道具折扣,獲得限定道具 +``` + + #### BR-AUTH-02: 密碼安全規則 ```yaml 規則名稱: 密碼複雜度要求 @@ -111,9 +139,8 @@ - 用戶初始生命值為5條 - 答錯或失敗會消耗1條生命 - 生命值為0時無法進行新的學習活動 - - 每6小時自動回復1條生命,最多回復到5條 + - 每4小時自動回復1條生命,最多回復到5條 生命恢復: - - 付費用戶生命回復速度提升至4小時1條 - 可使用鑽石立即購買生命(50鑽石=1條生命) - 完成每日任務獎勵1條生命 - 觀看廣告可獲得1條生命(每日最多3次) @@ -158,14 +185,12 @@ 規則名稱: 詞彙掌握度評估 適用範圍: 所有詞彙學習活動 規則內容: - - 新詞彙初始掌握度為0% - - 正確使用一次增加20%掌握度 - - 錯誤使用一次減少10%掌握度 - - 掌握度80%以上視為已掌握 + - 起始點: 新詞彙 0% 掌握度 + - 成功獎勵: +20% 掌握度 + - 錯誤懲罰: -5% 掌握度 + - 掌握標準: 80% 以上視為已掌握 複習機制: - - 掌握度<50%: 24小時後複習 - - 掌握度50-79%: 3天後複習 - - 掌握度80%+: 7天後複習 + - 複習時間 = 最近複習日期 + (2^成功次數) 天 - 連續3次正確可延長複習間隔 ``` @@ -201,38 +226,18 @@ - 專精(C2): 學術表達與文化語境 ``` -### ⏰ 時間與限制 - -#### BR-TIME-01: 限時挑戰規則 -```yaml -規則名稱: 300秒挑戰機制 -適用範圍: 限時挑戰模式 -規則內容: - - 每次挑戰固定300秒(5分鐘) - - 需要消耗1張挑戰門票 - - 時間結束立即停止,不可延長 - - 成績根據正確率和剩餘時間計算 -門票機制: - - 免費用戶每日獲得2張門票 - - 付費用戶每日獲得5張門票 - - 可用鑽石購買額外門票(100鑽石/張) - - 門票不累積,當日未用完隔日重置 -``` - #### BR-TIME-02: 學習會話時限 ```yaml 規則名稱: 學習會話超時處理 適用範圍: 所有學習活動會話 規則內容: - - 單次學習會話最長2小時 - - 30分鐘無操作自動暫停 - - 暫停狀態保持30分鐘後自動結束 - - 會話結束自動保存當前進度 + - 單次學習會話最長5分鐘 + - 5分鐘後自動結束 + - 會話結束會自動結算,並存到紀錄 數據保存: - 已完成的練習立即保存 - - 進行中的練習保存狀態 - 學習時間準確記錄 - - 經驗值和獎勵延遲結算 + - 經驗值和獎勵結算 ``` ### 🤝 社群互動 @@ -258,15 +263,14 @@ 規則名稱: 競爭排名計算 適用範圍: 所有排行榜功能 規則內容: - - 排行榜分為好友榜和全球榜 + - 排行榜分為好友榜 - 每週一凌晨重置週排行榜 - 每月1號重置月排行榜 - 年度排行榜保持全年累積 排名計算: - - 主要依據: 學習時間 × 正確率 × 連續天數加成 + - 主要依據: 遊玩關卡所獲得的經驗值 - 相同分數按學習開始時間排序 - 作弊或異常數據將被排除 - - 排行榜前10名獲得特殊獎勵 ``` ### 🛡️ 安全與隱私 diff --git a/docs/01_requirement/user-stories.md b/docs/01_requirement/user-stories.md index bd0e5c7..29e6af3 100644 --- a/docs/01_requirement/user-stories.md +++ b/docs/01_requirement/user-stories.md @@ -16,8 +16,9 @@ - **進階者** - 語言程度C1-C2,精進專業溝通 #### 💰 付費用戶 (Premium User) -- **試用用戶** - 7天免費體驗期間 +- **試用用戶** - 7天免費體驗訂閱期間 - **訂閱用戶** - 月費/年費訂閱會員 +- **進階用戶** - 除了基礎功能,還有更多自訂學習功能可使用 - **高價值用戶** - 大量購買鑽石和道具 #### 🎯 目標導向用戶 diff --git a/docs/01_requirement/已處理/闖關學習.txt b/docs/01_requirement/已處理/闖關學習.txt index bee053b..d42b360 100644 --- a/docs/01_requirement/已處理/闖關學習.txt +++ b/docs/01_requirement/已處理/闖關學習.txt @@ -62,6 +62,8 @@ https://docs.google.com/spreadsheets/d/1HiiqBKFF3cw73TNaCb0Xf3fTmg8Wefi5qVEVrXIy + + 時光關卡 diff --git a/docs/02_design/business-logic-rules.md b/docs/02_design/business-logic-rules.md deleted file mode 100644 index 19b6ac8..0000000 --- a/docs/02_design/business-logic-rules.md +++ /dev/null @@ -1,300 +0,0 @@ -# 商業邏輯與營收規則 - -## 概述 -基於實際 UI 設計,定義 Drama Ling 的遊戲化商業模式,以鑽石貨幣系統為主的道具購買機制,搭配簡潔的訂閱服務。 - -## 鑽石貨幣系統 (主要營收機制) - -### 鑽石獲得方式 -- [ ] **初始贈送**: 新用戶註冊贈送1500鑽石 -- [ ] **每日登入**: 登入獎勵鑽石 -- [ ] **學習成就**: 完成關卡獲得鑽石獎勵 -- [ ] **現金購買**: 直接購買鑽石包 -- [ ] **廣告獎勵**: 觀看廣告獲得少量鑽石 - -### 道具商店系統 - -#### 加時道具 🕰️ -**功能**: 為對話訓練加時1分3秒 -- [ ] **單個購買**: 1個 = 300鑽石 -- [ ] **組合包**: 5個 = 1,200鑽石 (節省20%) -- [ ] **使用情境**: 挑戰關卡時間不夠時使用 -- [ ] **效果**: 獲得更長的思考和組織時間 - -#### 補命道具 ❤️ -**功能**: 為對話學習的時間卡復活1次機會 -- [ ] **單個購買**: 1個 = 100鑽石 -- [ ] **組合包**: 5個 = 400鑽石 (節省20%) -- [ ] **使用情境**: 對話練習失敗時使用 -- [ ] **效果**: 可重新挑戰失敗的關卡 - -#### 時光卷 ✨ *(更新基於最新規格)* -**功能**: 可挑戰1次前階段關卡或獲得失敗安慰獎勵 -- [ ] **獲得方式**: - - 詞彙認識關卡失敗獲得1張 - - 詞彙熟悉關卡失敗獲得1張 - - 對話訓練失敗獲得1張 - - 複習詞彙失敗安慰獎勵 -- [ ] **使用情境**: - - 挑戰時光關卡(前階段未玩過的對話訓練) - - 若前階段都已完成則隨機挑選關卡 -- [ ] **消費機制**: 點擊「我要挑戰」消耗1張時光卷 -- [ ] **特殊效果**: 成功通關的詞彙一樣加入詞彙複習清單 - -#### 回覆提示道具 💡 *(更新基於最新規格)* -**功能**: 當用戶在扮演角色遇到卡關,不知道該講什麼或怎麼講時提供協助 -- [ ] **單個購買**: 1個 = 30鑽石 -- [ ] **組合包**: 10個 = 250鑽石 (節省17%) -- [ ] **觸發條件**: 用戶主動請求回覆協助時使用 -- [ ] **效果**: 根據對話室中最後一句話生成三層引導內容 - -**回覆引導內容** (消耗道具): -- [ ] **對方意圖分析**: 分析對方說這句話的意圖 -- [ ] **回應思緒引導**: 分析用戶聽到這句話的反應及可能的回覆方向 -- [ ] **回覆範例生成**: 生成一句具體的回覆範例 - -**免費輔助功能** (不消耗道具): -- [ ] **劇情任務範例**: 點擊任務提示按鈕顯示「這樣說可以完成任務」的範例 -- [ ] **指定詞彙範例**: 展示指定詞彙的正確使用方式 -- [ ] **中翻英翻譯**: 直接將使用者的中文以Google翻譯轉譯成英文 - -**使用規則**: -- [ ] **任務完成狀態**: 當任務已經完成時,不會顯示任務提示按鈕 -- [ ] **使用限制**: 每次對話合理使用,避免過度依賴 -- [ ] **學習導向**: 鼓勵用戶從輔助逐步過渡到獨立表達 - -## 關卡命條系統 *(新增核心機制)* - -### 命條管理機制 -基於最新規格的闖關生命值系統: - -#### 命條基本規則 -- [ ] **初始設定**: 新用戶預設5個命條(上限為5) -- [ ] **闖關門檻**: 開始闖關前檢查命條是否大於1 -- [ ] **自動回復**: 每5小時自動獲得1個命條 -- [ ] **命條歸零**: 當命條扣完歸零時即闖關失敗 - -#### 命條消耗規則 -- [ ] **詞彙認識關卡**: 答錯題目扣除1個命條 -- [ ] **詞彙熟悉關卡**: 答錯題目扣除1個命條 -- [ ] **對話訓練關卡**: 通關失敗扣除1個命條 -- [ ] **重複答題**: 答錯的題目需在最後重新回答,再次答錯繼續扣命條 - -#### 命條不足處理 -- [ ] **闖關阻擋**: 命條不足時無法開始新的關卡挑戰 -- [ ] **購買機制**: 命條不足時可使用鑽石購買命條 - - 1個命條 = 100鑽石 - - 5個命條組合包 = 400鑽石(節省20%) -- [ ] **等待恢復**: 用戶可選擇等待5小時自然恢復命條 -- [ ] **視覺提示**: 金錢不夠時購買按鈕顯示為disable狀態 - -### 關卡結構系統 *(新增基於最新規格)* -基於13階段的完整學習路徑: - -#### 階段化學習架構 -- [ ] **學習階層**: 第x階段 > 第x劇本 > 某某關卡 -- [ ] **總體規劃**: 共13個學習階段 -- [ ] **劇本數量**: 每階段包含20個以上劇本(持續增加) -- [ ] **關卡類型**: 每個劇本固定包含三種關卡 - - 詞彙認識關卡 - - 詞彙熟悉關卡 - - 對話訓練關卡 - -#### 關卡解鎖機制 -- [ ] **順序闖關**: 必須按照關卡順序進行,不可跳關 -- [ ] **解鎖條件**: 完成前一關卡才能解鎖下一關 -- [ ] **通關標準**: 即使獲得零顆星,成功通關仍會解鎖下一關 -- [ ] **星級獎勵**: 詞彙認識和詞彙熟悉關卡通關直接給予三顆星 - -#### 連續學習獎勵 -- [ ] **連續學習天數**: 追蹤用戶連續學習的天數 -- [ ] **每日學習判定**: 當日完成至少一個關卡即計為學習一天 -- [ ] **連續獎勵機制**: 基於連續天數給予額外獎勵 - - 7天連續: 額外經驗值獎勵 - - 14天連續: 免費命條補充 - - 30天連續: 特殊成就徽章 - -## 情境對話核心商業機制 *(新增功能)* - -### 雙重通關條件獎勵系統 -基於最新規格的結構化通關獎勵機制: - -#### 劇情任務完成獎勵 -- [ ] **基礎完成獎勵**: 完成劇情任務獲得 +10 鑽石 + 10 閃電能量 -- [ ] **任務品質加成**: 高品質完成劇情任務額外 +5 鑽石 -- [ ] **即時獎勵機制**: 任務完成立即觸發獎勵通知和發放 -- [ ] **進度追蹤獎勵**: 連續完成劇情任務的連擊獎勵機制 - -#### 指定詞彙使用獎勵 -- [ ] **詞彙掌握獎勵**: 正確使用指定詞彙獲得 +5 鑽石 + 5 閃電能量 -- [ ] **自然使用加成**: 詞彙使用自然且符合語境額外 +3 鑽石 -- [ ] **即時反饋獎勵**: 使用詞彙時立即觸發成功通知 -- [ ] **詞彙精通獎勵**: 單次對話使用多個指定詞彙的組合獎勵 - -#### 結算獎勵系統 *(更新基於最新規格)* -**過關獎勵** (同時滿足劇情任務和詞彙要求): -- [ ] **基礎通關獎勵**: 獲得金幣和經驗值 -- [ ] **星級獎勵系統**: 基於三維度評分獲得1-3顆星 - - 語意合適分數 > 60 (滿分100) = 1顆星 - - 語法錯誤率 = 0 (所有句子正確或訂正後正確) = 1顆星 - - 表達流暢平均分數 > 60 (滿分100) = 1顆星 -- [ ] **訂正後獎勵**: 選擇立即訂正後獲得訂正後的獎勵數值 - -**失敗安慰獎勵**: -- [ ] **安慰獎**: 獲得時光卷一張(可重新挑戰關卡) -- [ ] **鼓勵機制**: 提供重新挑戰的動機和資源 - -### 300秒限時挑戰機制 -基於最新規格的時間管理商業系統: - -#### 限時挑戰入場機制 -- [ ] **挑戰門票**: 參與300秒限時挑戰需消耗 50鑽石 入場費 -- [ ] **免費次數**: 每日首次限時挑戰免費,後續挑戰需付費 -- [ ] **VIP特權**: 付費用戶每日3次免費限時挑戰機會 -- [ ] **好友邀請**: 邀請好友一同挑戰可減免入場費用 - -#### 時間相關道具系統 -- [ ] **時間暫停道具**: 暫停倒數計時30秒,消耗 100鑽石 -- [ ] **時間加成道具**: 增加額外60秒挑戰時間,消耗 150鑽石 -- [ ] **快速完成獎勵**: 在180秒內完成獲得 +15 鑽石時間獎勵 -- [ ] **壓力測試獎勵**: 在最後30秒完成挑戰獲得 +25 鑽石壓力獎勵 - -#### 限時結算獎勵機制 -- [ ] **基礎完成獎勵**: 300秒內完成對話獲得 +30 鑽石 + 30 閃電能量 -- [ ] **時間效率獎勵**: 基於完成時間給予 1.2x - 2.0x 獎勵倍數 -- [ ] **雙重條件加成**: 限時環境下達成雙重條件額外 +50 鑽石 -- [ ] **排行榜獎勵**: 每週限時挑戰排行榜前10名特殊獎勵 - -## 簡化訂閱系統 (次要營收) - -### 訂閱服務設計 -- [ ] **7天免費體驗**: 新用戶可免費使用7天完整功能 -- [ ] **目標**: 與靈兔一起闖關學英文,玩出一口流利的口說英文 -- [ ] **成功頁面**: 可愛外星人角色設計增加親切感 -- [ ] **續約提醒**: "還在等什麼?先來7天免費體驗看看!" - -### 資源不足機制 -- [ ] **提醒彈窗**: "任務提示需要消耗30資石,但你目前資石不足" -- [ ] **引導購買**: 直接引導用戶到道具商店 -- [ ] **清楚的需求說明**: 顯示具體需要的資源數量 -- [ ] **一鍵解決**: 提供"了解"按鈕引導至購買頁面 - -## 道具購買流程設計 - -### 購買確認機制 - -#### 加時道具購買確認 -- [ ] **視覺化設計**: 大型時鐘圖示加上加號圖示 -- [ ] **清楚的價值說明**: "用加時道具去玩出更高的分數吧!" -- [ ] **遊戲化設計**: 對話式的遊戲要求,而非單純交易 -- [ ] **即時購買**: "立即購買 300鑽石"按鈕 -- [ ] **取消選項**: 簡單的"不,謝謝"選項 - -#### 補命道具購買確認 -- [ ] **心形圖示**: 愛心加號的視覺設計 -- [ ] **功能說明**: 明確告知為學習時間復活用途 -- [ ] **價格透明**: 直接顯示100鑽石的明確價格 -- [ ] **低價格策略**: 相對低廉的價格降低購買的障礙感 - -#### 回覆提示道具購買確認 -- [ ] **燈泡圖示**: 智慧提示的視覺設計 -- [ ] **功能說明**: "獲得AI智慧引導,突破對話卡關!" -- [ ] **價格透明**: 直接顯示30鑽石的低門檻價格 -- [ ] **價值展示**: 強調包含四合一功能(意圖分析+思維引導+回覆範例+翻譯) -- [ ] **即時解決**: "立即獲得對話靈感"的行動導向按鈕 -- [ ] **低價策略**: 最低價道具降低首次付費心理障礙 - -### 購買成功機制 -- [ ] **即時生效**: 購買後立即可在遊戲中使用 -- [ ] **清楚的庫存顯示**: 在主界面右上角顯示目前鑽石數量(1500) -- [ ] **使用指引**: 在需要使用道具時提供明確的使用方式 - -## 訂閱成功體驗設計 - -### 成功頁面設計理念 -- [ ] **可愛風格**: 使用外星人角色創造親切感 -- [ ] **清楚的價值主張**: "和靈兔一起闖關學英文!玩出一口流利的口說英文!" -- [ ] **緊迫性設計**: "還在等什麼?先來7天免費體驗看看!" -- [ ] **行動導向**: 大型明顯的CTA按鈕"領取7天體驗資格" - -### 用戶心理設計 -- [ ] **降低抵觸**: 免費體驗降低初次購買的心理障礙 -- [ ] **社交證明**: 使用外星人形象增加記憶點 -- [ ] **成就感**: 體驗成功的成就感與滿意度 -- [ ] **持續動機**: 透過可愛設計建立情感連結 - -## 鑽石購買套餐設計 - -### 推薦套餐結構 -- [ ] **新手包**: 500鑽石 = NT$30 (首次購買優惠) -- [ ] **基礎包**: 1,200鑽石 = NT$60 -- [ ] **價值包**: 2,500鑽石 = NT$99 (最受歡迎) -- [ ] **豪華包**: 5,000鑽石 = NT$190 -- [ ] **至尊包**: 12,000鑽石 = NT$390 - -### 定價策略考量 -- [ ] **低門檻**: NT$30的新手包降低進入的障礙 -- [ ] **價值感**: 每1鑽石約NT$0.04的合理價格 -- [ ] **組合購買優惠**: 5個裝比單購節省20-25% -- [ ] **心理定位**: 道具價格設定在100-1200鑽石區間 - -## 付費轉換優化 - -### 轉換漏斗設計 -- [ ] **無縫體驗**: 從免費使用到需要購買的自然過渡 -- [ ] **第一次付費**: 通常為最低價的道具(回覆提示道具30鑽石) -- [ ] **漸進式需求**: - - **入門級**: 回覆提示道具(30鑽石) - 解決即時卡關問題 - - **成長級**: 限時挑戰門票(50鑽石) - 體驗競技式學習 - - **進階級**: 補命道具(100鑽石) - 提供重新挑戰機會 - - **專家級**: 時間相關道具(100-150鑽石) - 優化限時挑戰表現 - - **大師級**: 加時道具(300鑽石) - 獲得更充裕練習時間 -- [ ] **成就動機**: 通過道具使用獲得更好成績和雙重通關的成就感 -- [ ] **學習進步感**: 回覆提示功能和即時獎勵讓用戶感受到明顯的學習支援 -- [ ] **競技驅動**: 300秒限時挑戰創造緊張感和競爭動機 -- [ ] **社交壓力**: 好友排行榜和限時挑戰排名驅動持續消費 - -## 簡化廣告系統 - -### 廣告展示策略 -- [ ] **非強制性**: 主要用於獲得額外鑽石獎勵 -- [ ] **獎勵導向**: 觀看廣告獲得25-50鑽石 -- [ ] **頻率控制**: 避免影響核心遊戲體驗 -- [ ] **品質篩選**: 優先顯示教育和遊戲相關廣告 - -## 技術實現考量 - -### 支付系統整合 -- [ ] **第三方支付串接**: 整合多種支付方式API -- [ ] **交易安全**: PCI DSS合規的支付安全機制 -- [ ] **即時到帳**: 購買後立即可使用的鑽石發放 -- [ ] **退款處理**: 簡化的退款處理流程 - -### 道具系統管理 -- [ ] **即時庫存**: 即時更新用戶鑽石和道具庫存 -- [ ] **使用追蹤**: 追蹤道具使用情況和效果 -- [ ] **防作弊機制**: 防止道具被不正當獲得或使用 -- [ ] **數據分析**: 道具使用率和購買轉換率分析 - ---- - -## 關鍵差異與實際設計對齊 - -### 與原規劃的主要不同 -1. **簡化商業模式**: 從複雜的4層訂閱制改為鑽石道具+簡單訂閱 -2. **遊戲化貨幣**: 使用鑽石取代直接台幣定價 -3. **低門檻策略**: 最低100鑽石的道具降低付費門檻 -4. **視覺化購買**: 可愛的確認彈窗而非複雜的訂閱頁面 -5. **即時獎勵**: 購買後立即可用,增加滿足感 - -### 實際應用案例 -- **道具商店頁面**: 清楚的分類和價格顯示 -- **購買確認彈窗**: 遊戲化的對話式確認 -- **資源不足提醒**: 直接引導到解決方案 -- **訂閱成功頁**: 可愛外星人增加品牌親和力 - ---- - -**最後更新**: 2024年9月5日 -**基於實際設計**: 05_views 目錄中的商業相關UI設計 -**審查週期**: 與實際UI設計保持同步更新 \ No newline at end of file diff --git a/docs/02_design/function-specs/common/ai-algorithm-specs.md b/docs/02_design/function-specs/common/ai-algorithm-specs.md new file mode 100644 index 0000000..f9ffdf2 --- /dev/null +++ b/docs/02_design/function-specs/common/ai-algorithm-specs.md @@ -0,0 +1,425 @@ +# AI 對話分析算法規格 + +## 概述 +定義 Drama Ling 應用中 AI 對話分析系統的具體實現方案,整合語法評分與共用的口說評分、語用分析模組。 + +## 共用模組引用 + +本規格依賴以下共用模組,請參閱對應規格文件: + +- **[口說評分系統](./speaking-evaluation-specs.md)** - 五維度口說表達評估 +- **[語用分析系統](./pragmatic-analysis-specs.md)** - 六維語用標準建議系統 + +## 核心評分維度 + +基於 UI_LevelResult_ScoreSummary.png 的實際設計,採用三維對話評估指標顯示: + +### 三維對話評估系統 +**目標**: 提供清楚的學習反饋,觸發對應成就獎勵 + +#### 三維對話評分指標 +- [ ] **語法評分**: 評估語法正確性 + - 所有對話皆正確時即為完美表現,若有藉由錯誤訂正功能將全部錯誤訂正完畢,則一樣給予完美表現 + - 獲得完美表現則過關獎勵雙倍 + - 過關獎勵: +1 鑽石 + 10 XP + +- [ ] **口說評分**: 評估口說表現的自然度和流暢性 + - 詳細規格請參閱 → **[口說評分系統規格](./speaking-evaluation-specs.md)** + +- [ ] **語用分析**: 評估內容理解和表達適切性(只建議,不評分) + - 詳細規格請參閱 → **[語用分析系統規格](./pragmatic-analysis-specs.md)** + +#### 技術實現方案 +- [ ] **AI 模型選擇**: 待決定 (GPT-4/Claude/自建模型) +- [ ] **即時分析**: 目標響應時間 < 2秒 +- [ ] **成就觸發機制**: 於遊戲結束時,自動檢測並發放對應獎勵 + +## AI 對話分析功能 + +### 即時分析機制 +基於最新規格的詳細分析系統: + +- [ ] **每句話即時分析**: 用戶說出的每句話都進行即時判斷 + - 語法正確性分析(即時顯示於對話功能欄) + - 口說評分(即時顯示於對話功能欄)→ 使用 [口說評分系統](./speaking-evaluation-specs.md) + - 任務完成狀態檢測 + - 指定詞彙使用檢測 + +- [ ] **即時成功通知**: 當用戶提及詞彙或完成任務時立即回饋 + +## 情境對話核心系統 + +### 情境對話通關檢測系統 *(核心功能)* +基於最新規格的結構化通關和評分機制: + +#### 劇情任務識別系統 + +##### 意圖表達任務機制 +每個劇本包含多個**情境意圖表達任務**,玩家需要在對話中適切地表達出指定意圖: + +**三級完成標準**: +- 🔴 **未完成** (0%) - 完全沒有表達該意圖 +- 🟡 **部分完成** (50%) - 有表達意圖但不夠清楚或完整 +- 🟢 **完美完成** (100%) - 清楚、自然地表達了該意圖 + +**⭐ 任務星獲得條件**:當劇本中**所有意圖任務都達到完美完成**時獲得任務星 + +##### 技術實現 +- [ ] **任務目標解析**: + - 解析每個劇本的具體意圖表達要求 + - 定義每個意圖的完成判定標準 + - 例如:"預約餐廳" → 必須包含時間、人數、聯絡方式等要素 + +- [ ] **意圖完成度評估**: + - AI即時分析用戶對話是否達成意圖目標 + - 按三級標準評估完成程度 (未完成/部分完成/完美完成) + - 即時顯示任務進度給用戶參考 + +- [ ] **任務進度追蹤及即時反饋機制**: + - 即時監控所有意圖任務的完成狀態 + - 當任務達成時觸發即時成功通知 + - 記錄每個任務的完成品質評分 + +#### 指定詞彙檢測系統 +- [ ] **詞彙識別引擎**: + - 精準識別用戶是否使用指定的關鍵詞彙 + - 支援詞彙的不同變化形式(單複數、時態等) + - 處理同義詞和相關變體的檢測 + +- [ ] **即時反饋機制**: + - 使用詞彙時立即觸發成功通知 + - 提供詞彙使用品質的評分 + - 記錄詞彙掌握程度的學習數據 + +### 回覆卡關輔助系統 + +#### 回覆協助功能 (消耗寶石) +**觸發時機**: 用戶在扮演角色遇到卡關,不知道該講什麼或怎麼講時 + +**三層引導內容**: +- [ ] **對方意圖分析**: 根據對話室中最後一句話,分析對方說這句話的意圖 +- [ ] **回應思緒引導**: 分析用戶聽到這句話的反應及可能的回覆方向 +- [ ] **回覆範例生成**: 生成一句具體的回覆範例 + +#### 任務輔助功能 (免費) +- [ ] **劇情任務範例**: + - 點擊任務提示按鈕後,先跳出警示,確認後即顯示一句範例 + - 說明「這樣說可以完成任務」 + - 當任務已完成時不顯示此按鈕 + - 完全免費,不消耗任何道具 + - 使用後,當前任務將不會獲得「⭐ 任務星」 + +- [ ] **指定詞彙範例**: + - 展示指定詞彙的正確使用方式 + - 提供詞彙在不同語境下的使用示例 + - 包含詞彙變化形式的學習支援 + +### 中翻英輔助功能 +- [ ] **Google翻譯整合**: 直接將使用者的中文以Google翻譯轉譯成英文 (訂閱用戶) +- [ ] **情境翻譯優化**: AI分析對話情境後調整翻譯結果 (進階用戶) + - 根據角色身份調整語氣 (正式/非正式/友善/專業) + - 考慮文化背景提供更自然的表達方式 + - 修正直譯問題,提供更符合英語習慣的說法 + - 例如:「不好意思」→ 商務場合「I apologize」vs 日常「Sorry」 + +### 語音處理系統 +- [ ] **語音轉文字**: 以語音輸入為主,文字輸入為輔的對話方式 +- [ ] **中文檢測**: 當用戶講中文或輸入中文時,角色表示聽不懂 +- [ ] **語音品質檢測**: 如果聽不到聲音,顯示「抱歉,好像沒有聲音,請重新錄製」 +- [ ] **口說表現分析**: 整合 [口說評分系統](./speaking-evaluation-specs.md) 進行分析 + +## 闖關學習系統整合 *(重構為四關線性闖關)* + +本AI算法系統整合到 [線性闖關學習系統](./progressive-stage-system.md) 的四關架構中。 + +### 四關AI算法支援 + +#### 第1關:詞彙學習 (Vocabulary Learning) +基於詞彙認知的AI輔助學習機制: + +- [ ] **詞彙展示功能**: + - 顯示詞彙本身、詞義、例句和示意圖 + - 協助用戶初步記住詞彙的核心資訊 + - 為後續關卡做準備 +- [ ] **詞彙選擇題**: + - 根據示意圖選出正確的英文詞彙 + - 4選1的單選題形式 + - 答錯時,將題目在最後重新測試 +- [ ] **通關機制**: 所有詞彙題目都答對才算通關,自動獲得3顆星,解鎖第2關 + +#### 第2關:詞彙熟悉 (Vocabulary Mastery) +基於語境應用的AI練習系統: + +- [ ] **例句重組功能**: + - 從單字選取區點選組出示意圖的原句 + - 訓練詞彙在語境中的使用能力 + - 強化語法結構理解 +- [ ] **詞彙配對功能**: + - 左邊示意圖與右邊詞彙進行配對 + - 全部配對正確才算完成 + - 提升詞彙識別和記憶連結 +- [ ] **通關機制**: 所有配對和重組正確才算通關,自動獲得3顆星,解鎖第3關 + +#### 第2+關:口說練習特別關卡 (Speaking Practice Bonus) +基於 [口說評分系統](./speaking-evaluation-specs.md) 的付費訓練關卡: + +**關卡機制**: +- [ ] **付費模式**: 消耗5鑽石開始遊戲 +- [ ] **特別機制**: 唯一可跳過的關卡,不影響主線闖關進度 +- [ ] **關卡流程**: 逐一展示詞彙例句,用戶需朗讀每個例句 +- [ ] **五維即時評分**: 發音/流暢度/韻律/完整度/準確度即時評估 + +**通關與獎勵**: +- [ ] **通關條件**: 所有詞彙例句平均分數達到70分以上 +- [ ] **星級與獎勵機制**: + - 70-79分:1星,獲得1鑽石 + 10 XP (回收部分成本) + - 80-89分:2星,獲得3鑽石 + 10 XP (略有虧損但有進步) + - 90-100分:3星,獲得5鑽石 + 20 XP (獲利且大幅經驗值) +- [ ] **解鎖效果**: 通關後解鎖第3關 + +**AI學習支援**: +- [ ] **發音精進**: 針對特定詞彙的精確發音訓練 +- [ ] **記憶強化**: 透過語音輸出深化詞彙印象 +- [ ] **個性化反饋**: 每個詞彙提供詳細的發音改善建議 + +#### 第3關:情境對話 (Situational Dialogue) +基於AI對話分析的綜合應用關卡: + +**關卡機制**: +- [ ] **免費模式**: 免費進入,失敗扣1命條 +- [ ] **AI角色對話**: 與AI角色進行劇本情境對話 +- [ ] **雙重任務系統**: 完成劇情意圖 + 使用前三關學習的5個指定詞彙 + +**通關與星級系統**: +- [ ] **基本通關**: 所有意圖任務≥50%完成 + 所有詞彙至少提及一次 +- [ ] **三星評分標準**: + - ⭐ 任務星:所有意圖任務100%完成 + - ⭐ 語法星:語法錯誤率 = 0 + - ⭐ 口說星:口說平均分數 > 80 +- [ ] **解鎖效果**: 通關後解鎖下一劇本第1關 + +**AI分析支援**: +- [ ] **即時分析**: 語法、口說、任務完成三維度即時分析 +- [ ] **語用建議**: 使用 [語用分析系統](./pragmatic-analysis-specs.md) 提供學習建議 +- [ ] **回覆輔助**: 三層引導內容 (對方意圖分析/回應思緒引導/回覆範例生成) + +### 共用詞彙設計標準 +四關共用的詞彙組合設計: +- [ ] **詞彙組合**: 每個劇本包含5個詞彙 + - 3個常用單字 + - 1個常用片語 + - 1個常用俚語 +- [ ] **詞彙範例結構**: + - 買菜小冒險: market, vegetables, price + "ask for a discount" + "a steal" + - 遲到的咖啡約會: coffee, late, apologize + "run into traffic" + "my bad" + - 失而復得的手機: phone, lost, find + "look around for" + "lucky break" + +### 間隔複習系統 *(Spaced Repetition)* +基於遺忘曲線的智慧複習機制: + +#### 複習清單管理 +- [ ] **自動加入機制**: + - 詞彙認識、詞彙熟悉、對話訓練通關後自動加入詞彙 + - 避免重複加入已存在的詞彙 + - 維護個人化的複習詞彙庫 +- [ ] **複習時機計算**: + - 下次複習時間 = 當日 + (2^複習次數) + - 首次加入當日即為第一次複習時間 + - 例如:3/4學習 → 3/6複習 → 3/10複習 → 3/18複習 + +#### 每日複習排程 +- [ ] **待複習詞彙判定**: + - 複習日期為當日或已過期的詞彙 + - 未準時複習的詞彙持續標記為待複習 + - 延遲複習時重新計算下次複習時間 +- [ ] **複習關卡執行**: + - 以「詞彙熟悉」關卡形式進行複習 + - 答錯題目複製到當前最後一題 + - 直到所有題目都答對才完成複習 + +#### 進度保存機制 +- [ ] **中途離開處理**: + - 保留用戶當前複習進度和狀態 + - 再次進入時繼續上次未完成的複習 +- [ ] **完成獎勵機制**: + - 全部複習完成後給予經驗值獎勵 + - 更新詞彙複習次數和下次複習時間 + - 強化學習動機和持續性 + +## 情境對話關卡結算系統 *(專屬於情境對話訓練)* + +### 情境對話關卡表現結算 +**觸發時機**: + - 當劇本時間用完 + - 任務已完成後,使用者自行離開 + - 任務未完成,使用者自行離開不會觸發關卡表現結算 + +#### 情境對話過關判斷標準 +- [ ] **基本通關條件**: + - 所有意圖任務至少達到🟡部分完成(50%) + - 所有指定詞彙至少被提及一次 + - **過關標準**: 完成基本對話要求,可獲得通關獎勵 + +- [ ] **星星獲得條件**: + - 依據上述三星評分標準 (任務星/語法星/口說星) + - 每顆星星獨立計算,玩家可獲得0-3顆星星 + +#### 情境對話表現評分系統 + +##### 星星獲得標準 ⭐ +每達成一項條件即可獲得一顆星,最多3顆星: + +- [ ] **⭐ 任務星** - **所有意圖任務完美完成** + - 劇本中每個意圖表達任務都達到🟢完美完成(100%) + - 玩家成功在對話中自然表達出所有指定意圖 + - **獲得條件**: 所有意圖任務完成度 = 100% + +- [ ] **⭐ 語法星** - **語法錯誤率 = 0** + - 用戶說的每句話經過語法判定都正確 + - 或者透過訂正功能將全部錯誤訂正完畢亦可 + - **獲得條件**: 完全無語法錯誤 + +- [ ] **⭐ 口說星** - **口說評分 > 80** (滿分100) + - 使用 [口說評分系統](./speaking-evaluation-specs.md) 評估 + - 計算用戶所有句子的口說平均分數 + - **獲得條件**: 口說平均分數超過80分 + +##### 學習建議系統 💡 +不影響星星獲得,僅提供改善建議: + +- [ ] **💡 語用建議** - **對話語用分析** + - 使用 [語用分析系統](./pragmatic-analysis-specs.md) 分析 + - 提供六維語用標準的具體改善建議 + - **用途**: 幫助用戶理解更自然的溝通方式 + +### 情境對話結算流程系統 +#### 過關流程 +- [ ] **成功宣告**: 恭喜過關訊息 +- [ ] **表現結算**: 顯示詳細評分和星級 +- [ ] **訂正選擇**: + - 如果點擊「立即訂正」→ 執行訂正流程 → 完成後領取訂正後獎勵 + - 如果點擊「不訂正」→ 直接領獎 +- [ ] **獎勵發放**: 領取通關獎勵 + +#### 失敗流程 +- [ ] **失敗宣告**: 顯示失敗原因 +- [ ] **安慰獎勵**: 領取時光卷一張 + +### 情境對話AI訂正系統 +#### 語法錯誤訂正 +- [ ] **錯誤收集**: 系統收集該劇本對話中所有語法錯誤的句子 +- [ ] **依序訂正**: 讓用戶依序對每個錯誤句子進行訂正 +- [ ] **進度追蹤**: 分子=訂正次數,分母=語法錯誤句數+表達不順句數 +- [ ] **語音練習**: 點擊練習按鈕後播放說話動畫,再次點擊送出錄音 +- [ ] **結果反饋**: 檢查完成後回饋正確或錯誤 + +#### 口說錯誤訂正 +- [ ] **口說評估**: 使用 [口說評分系統](./speaking-evaluation-specs.md) 進行評估 +- [ ] **口說錯誤收集**: 收集口說錯誤的句子進行訂正 +- [ ] **語音重錄**: 使用語音方式重新錄製和練習 +- [ ] **品質提升**: 透過重複練習提升口說表現 + +### 技術實現重點 +- [ ] **快速響應**: 優先保證系統響應速度 +- [ ] **準確評估**: 確保評分的一致性和準確性 +- [ ] **獎勵整合**: 與遊戲化系統無縫整合 + +## 技術架構設計 + +### 核心技術需求 *(更新基於最新規格)* +- [ ] **AI 服務選擇**: 確定主要 AI 模型供應商 +- [ ] **語法評分算法**: 建立語法正確性評分的具體邏輯 +- [ ] **雙重檢測引擎**: 實現劇情任務和詞彙檢測的AI系統 +- [ ] **即時反饋系統**: 任務完成和詞彙使用的立即通知機制 +- [ ] **回覆輔助引擎**: 實現意圖分析和回應引導的AI模型 +- [ ] **翻譯服務整合**: Google翻譯API的無縫整合 +- [ ] **限時系統整合**: 300秒計時和結算觸發機制 +- [ ] **訂正系統AI**: 語法錯誤和表達流暢度的訂正引擎 +- [ ] **成就系統整合**: 自動觸發獎勵機制 +- [ ] **性能優化**: 確保響應時間 < 2秒 +- [ ] **共用模組整合**: + - 整合 [口說評分系統](./speaking-evaluation-specs.md) + - 整合 [語用分析系統](./pragmatic-analysis-specs.md) + +### 數據來源架構 *(新增基於最新規格)* +#### 預先準備的數據 (事前手動生成) +- [ ] **開場對話**: 包含場景描述的4-8句開場對話 +- [ ] **任務定義**: 中文描述、完成範例、範例翻譯 +- [ ] **詞彙數據**: 包含翻譯、圖片、題庫等完整詞彙資料 +- [ ] **劇情大綱**: 完整的劇本背景和角色設定 +- [ ] **獎勵設定**: 關卡經驗值獎勵、寶石獎勷、訂正後獎勵數目 + +#### 即時生成的數據 (關卡進行當下) +- [ ] **AI角色對話**: 基於劇情和用戶回應的AI動態生成 +- [ ] **用戶對話**: 語音轉文字後存入資料庫 +- [ ] **語法錯誤評估**: AI即時分析每句話的語法正確性 +- [ ] **語意合適度評估**: AI評估對話的語境適應性 +- [ ] **任務完成評估**: AI判斷劇情任務的完成狀態 +- [ ] **口說分析**: 使用 [口說評分系統](./speaking-evaluation-specs.md) 分析 +- [ ] **語用建議**: 使用 [語用分析系統](./pragmatic-analysis-specs.md) 生成建議 +- [ ] **回覆引導**: AI生成的三層輔助內容 +- [ ] **對話翻譯**: Google翻譯提供的中翻英服務 + +#### 詞彙檢測系統 +- [ ] **詞彙變化形式**: 資料庫儲存詞彙所有型態供模糊比對 + - 例如:eat, ate, eats, eaten +- [ ] **即時比對機制**: 每次對話結束後進行模糊比對 +- [ ] **語境適配**: 確保詞彙使用的自然性和合理性 + +### 情境對話技術架構 *(新增)* +- [ ] **劇情解析引擎**: 理解和追蹤劇本任務的完成狀態 +- [ ] **詞彙監控系統**: 即時檢測指定詞彙的使用情況 +- [ ] **雙重成功判定**: 同時滿足劇情任務和詞彙要求的邏輯 +- [ ] **時間管理核心**: 精確的300秒倒數計時系統 + +### 回覆輔助技術架構 +- [ ] **意圖識別模型**: 基於context理解對方話語意圖 +- [ ] **回應策略生成**: 提供多元化的回應思路建議 +- [ ] **範例生成算法**: 根據使用者等級生成適當的回覆範例 +- [ ] **情境適應性**: 確保建議符合對話場景和文化背景 + +### 基本品質控制 +- [ ] **準確性測試**: 驗證評分結果的一致性 +- [ ] **用戶體驗**: 確保獎勵系統運作順暢 +- [ ] **資料隱私**: 基本的用戶資料保護 + +--- + +## 待完成任務 + +### 高優先級 *(更新基於最新規格)* +1. [ ] 建立每句話的即時分析系統(語法、任務、詞彙三重檢測) +2. [ ] 實現劇情任務完成狀態的AI檢測引擎 +3. [ ] 建立指定詞彙模糊比對系統(支援詞彙變化形式) +4. [ ] 開發詞彙學習關卡系統(詞彙認識和詞彙熟悉) +5. [ ] 實現間隔複習算法(2^複習次數的遺忘曲線計算) +6. [ ] 開發即時成功通知機制(任務完成和詞彙使用立即反饋) +7. [ ] 實現三維度結算評分系統(語意60+、語法0錯、流暢60+) +8. [ ] 建立語音轉文字和中文檢測系統 +9. [ ] 整合共用模組:口說評分系統和語用分析系統 +10. [ ] 開發回覆輔助的三層引導AI(意圖分析、思緒引導、範例生成) + +### 中優先級 +1. [ ] 建立雙重通關條件的邏輯驗證系統 +2. [ ] 優化時間壓力下的AI分析準確性 +3. [ ] 設計三類輔助工具的智能推薦機制 +4. [ ] 建立意圖分析模型的準確性測試 +5. [ ] 優化回覆範例生成的品質控制 +6. [ ] 建立評分一致性的測試機制 +7. [ ] 優化與遊戲化系統的整合 +8. [ ] 確保基本的資料隱私保護 + +### 新增功能優先級 +1. [ ] 設計劇情任務的複雜度分級系統 +2. [ ] 建立指定詞彙的學習進度追蹤 +3. [ ] 優化限時環境下的用戶體驗 +4. [ ] 設計回覆卡關的觸發時機和條件 +5. [ ] 建立輔助功能使用的數據追蹤 +6. [ ] 優化中翻英結果的情境適應性 +7. [ ] 設計輔助功能的學習成效測量 + +--- + +**最後更新**: 2025-09-11 - 重構:拆分共用模組並建立引用機制 +**版本**: 2.0 - 模組化版本:整合口說評分和語用分析共用模組 +**維護者**: Drama Ling 開發團隊 \ No newline at end of file diff --git a/docs/02_design/function-specs/common/business-rules.md b/docs/02_design/function-specs/common/business-rules.md index f4e681a..7a0dbca 100644 --- a/docs/02_design/function-specs/common/business-rules.md +++ b/docs/02_design/function-specs/common/business-rules.md @@ -13,79 +13,300 @@ ### 基本規則 - **初始命條**: 新用戶獲得5個命條 -- **最大命條**: 普通用戶5個,訂閱用戶10個 -- **恢復機制**: 每30分鐘自動恢復1個命條 -- **命條消耗**: 答錯題目扣除1個命條 +- **最大命條**: + - 免費用戶: 5個 + - 訂閱用戶: 30個 + - 進階用戶: 50個 +- **恢復機制**: + - 免費用戶: 每5小時自動恢復1個命條 + - 訂閱用戶: 每小時自動恢復3個命條 + - 進階用戶: 每小時自動恢復5個命條 +- **命條消耗**: 1、2、3關啟動時消耗命條(第2+關不消耗) -### 消耗場景 -| 場景 | 命條消耗 | 說明 | -|------|----------|------| -| 答錯選擇題 | 1個 | 詞彙學習、對話練習 | -| 跳過題目 | 1個 | 視為答錯處理 | -| 對話失敗 | 2個 | 情境對話完全失敗 | -| 挑戰失敗 | 3個 | 特殊挑戰任務失敗 | +### 消耗場景 (四關闖關系統) +| 場景 | 命條消耗 | 說明 | +| -------------- | -------- | ---------------------------- | +| 第1關:詞彙學習 | 1個 | 啟動關卡時消耗,無論答對答錯 | +| 第2關:詞彙熟悉 | 1個 | 啟動關卡時消耗,無論答對答錯 | +| 第2+關:口說練習特別關卡 | 0個 | 付費關卡,不消耗命條 | +| 第3關:情境對話 | 1個 | 啟動關卡時消耗,無論成功失敗 | +| 對話有辱罵情形 | 3個 | 額外扣除懲罰 | ### 獲得命條方式 -- **自動恢復**: 每30分鐘恢復1個 +- **自動恢復**: 依用戶等級不同恢復速度(見上方基本規則) - **廣告觀看**: 觀看廣告恢復1個命條 (每日3次) - **道具購買**: 使用鑽石購買命條補充包 -- **訂閱獎勵**: 訂閱用戶命條上限提升至10個 -## 💎 經濟系統 (Economy System) +## 💰 付費與虛擬貨幣系統 -### 貨幣類型 +### 💎 鑽石購買與管理規則 + +#### BR-PAY-01: 鑽石購買規則 +```yaml +規則名稱: 虛擬貨幣交易規則 +適用範圍: 所有鑽石購買交易 +技術實現: + - 鑽石最小購買單位為100顆 + - 單次購買上限為10000顆 + - 24小時內購買總額不超過1000美金等值 + - 未成年用戶需要監護人授權 +支付處理: + - 支援Apple Pay、Google Pay、信用卡 + - 交易記錄完整保存 + - 實時風險評估和反欺詐檢測 +退款政策: + - 購買後24小時內可申請退款 + - 已使用的鑽石不予退還 + - 退款處理時間為3-7個工作日 + - 惡意退款用戶將被列入黑名單 +購買套餐: + - 新手包: 500鑽石 = NT$30 (首次購買優惠) + - 基礎包: 1,200鑽石 = NT$60 + - 價值包: 2,500鑽石 = NT$99 (最受歡迎) + - 豪華包: 5,000鑽石 = NT$190 + - 至尊包: 12,000鑽石 = NT$390 +``` + +#### BR-PAY-02: 鑽石消費規則 +```yaml +規則名稱: 虛擬貨幣使用限制 +適用範圍: 所有鑽石消費行為 +技術實現: + - 鑽石只能用於平台內購買 + - 不可轉讓給其他用戶 + - 不可兌換現金 + - 帳戶停用後鑽石餘額凍結 +消費順序: + 1. 優先使用即將到期的鑽石 + 2. 按照獲得時間先進先出 + 3. 贈送鑽石優先於購買鑽石使用 +獲得方式: + - 初始贈送: 新用戶註冊贈送1500鑽石 + - 每日登入: 登入獎勵鑽石 + - 學習成就: 完成關卡獲得鑽石獎勵 + - 現金購買: 直接購買鑽石包 + - 廣告獎勵: 觀看廣告獲得25-50鑽石 +``` + +#### BR-PAY-03: 道具商店系統 +```yaml +規則名稱: 遊戲內道具購買機制 +適用範圍: 所有道具消費行為 +道具定價: + - 回覆提示道具: 30鑽石/個,250鑽石/10個包 (節省17%) + - 補命道具: 100鑽石/個,400鑽石/5個包 (節省20%) + - 加時道具: 300鑽石/個,1200鑽石/5個包 (節省20%) + - 時間暫停道具: 100鑽石/個 (限時挑戰專用) + - 時間加成道具: 150鑽石/個 (限時挑戰專用) + - 限時挑戰門票: 50鑽石/次 (首次每日免費) +道具功能: + - 回覆提示道具: 提供AI智慧對話引導,包含四合一功能 (消耗5鑽石/次使用) + * 對方意圖分析: 分析對方說話意圖 + * 回應思緒引導: 分析用戶反應及可能回覆方向 + * 回覆範例生成: 生成具體回覆範例 + * 翻譯功能: 中文轉英文翻譯輔助 + - 補命道具: 對話學習失敗時復活機會,重新挑戰失敗關卡 + - 加時道具: 對話訓練增加1分3秒思考時間,提升成績表現 + - 時光卷: 失敗安慰獎勵,可重新挑戰前階段關卡或隨機挑選 + * 獲得方式: 詞彙認識/熟悉關卡失敗、對話訓練失敗 + * 使用機制: 點擊「我要挑戰」消耗1張時光卷 + - 時間管理道具組: + * 時間暫停道具: 限時挑戰中暫停倒數計時30秒 + * 時間加成道具: 限時挑戰中增加額外60秒挑戰時間 +免費輔助功能: + - 劇情任務範例: 點擊任務提示顯示完成範例 + - 指定詞彙範例: 展示詞彙正確使用方式 + - Google翻譯: 直接中文轉英文翻譯 +``` + +#### BR-PAY-04: 訂閱服務規則 +```yaml +規則名稱: 簡化訂閱服務設計 +適用範圍: 所有訂閱用戶 +訂閱服務設計: + - 7天免費體驗: 新用戶可免費使用完整功能【7天 + - 目標: 與靈兔一起闖關學英文,玩出一口流利的口說英文 + - 成功頁面: 可愛外星人角色設計增加親切感 + - 續約提醒: "還在等什麼?先來7天免費體驗看看!" +資源不足機制: + - 提醒彈窗: "任務提示需要消耗資石,但你目前資石不足" + - 引導購買: 直接引導用戶到道具商店 + - 清楚的需求說明: 顯示具體需要的資源數量 + - 一鍵解決: 提供"了解"按鈕引導至購買頁面 +權益管理: + - 訂閱期間享有所有付費功能 + - VIP特權: 每日3次免費限時挑戰機會 + - 命條優惠: 訂閱用戶命條上限30個、每小時恢復3個命條 + - 完整記錄保存: 暫停或取消訂閱後學習資料保留 +``` + +#### BR-PAY-05: 道具購買流程設計 +```yaml +規則名稱: 道具購買確認和体驗設計 +適用範圍: 所有道具購買流程 +加時道具購買確認: + - 視覺化設計: 大型時鐘圖示加上加號圖示 + - 清楚的價值說明: "用加時道具去玩出更高的分數吧!" + - 遊戲化設計: 對話式的遊戲要求,而非單純交易 + - 即時購買: "立即購買 300鑽石"按鈕 + - 取消選項: 簡單的"不,謝謝"選項 +補命道具購買確認: + - 心形圖示: 愛心加號的視覺設計 + - 功能說明: 明確告知為學習時間復活用途 + - 價格透明: 直接顯示100鑽石的明確價格 + - 低價格策略: 相對低廉的價格降低購買的障礙感 +回覆提示道具購買確認: + - 燈泡圖示: 智慧提示的視覺設計 + - 功能說明: "獲得AI智慧引導,突破對話卡關!" + - 價格透明: 直接顯示30鑽石的低門檻價格 + - 價值展示: 強調包含四合一功能(意圖分析+思維引導+回覆範例+翻譯) + - 即時解決: "立即獲得對話靈感"的行動導向按鈕 + - 低價策略: 最低價道具降低首次付費心理障礙 +購買成功機制: + - 即時生效: 購買後立即可在遊戲中使用 + - 清楚的庫存顯示: 在主界面右上角顯示目前鑽石數量 + - 使用指引: 在需要使用道具時提供明確的使用方式 +``` + +#### BR-PAY-06: 付費轉換優化系統 +```yaml +規則名稱: 漸進式付費轉換機制 +適用範圍: 全平台付費流程 +轉換漏斗設計: + - 無縫體驗: 從免費使用到需要購買的自然過渡 + - 第一次付費: 通常為最低價的道具(回覆提示道具30鑽石) + - 漸進式需求: + * 入門級: 回覆提示道具(30鑽石) - 解決即時卡關問題 + * 成長級: 限時挑戰門票(50鑽石) - 體驗競技式學習 + * 進階級: 補命道具(100鑽石) - 提供重新挑戰機會 + * 專家級: 時間相關道具(100-150鑽石) - 優化限時挑戰表現 + * 大師級: 加時道具(300鑽石) - 獲得更充裕練習時間 +動機設計: + - 成就動機: 通過道具使用獲得更好成績和雙重通關的成就感 + - 學習進步感: 回覆提示功能和即時獎勵讓用戶感受到明顯的學習支援 + - 競技驅動: 300秒限時挑戰創造緊張感和競爭動機 + - 社交壓力: 好友排行榜和限時挑戰排名驅動持續消費 +``` + +### 💎 經濟系統概覽 + +#### 貨幣類型 1. **鑽石 (Diamonds)**: 高級貨幣,可購買道具和服務 -2. **經驗值 (XP)**: 學習進度貨幣,用於解鎖內容 -3. **學習幣 (Learning Coins)**: 日常活動貨幣,購買基礎道具 +2. **經驗值 (XP)**: 學習進度貨幣,用於解鎖內容,達成成就,達成任務,排行榜排名依據 -### 經驗值獲得規則 -| 活動類型 | 經驗值獲得 | 條件 | -|----------|------------|------| -| 完成詞彙學習 | 50-100 XP | 根據準確率調整 | -| 完成對話練習 | 100-200 XP | 根據對話質量調整 | -| 連續學習 | 額外20% XP | 連續學習天數獎勵 | -| 完美通關 | 雙倍 XP | 全部答對且用時短 | -| 每日任務 | 50 XP | 完成每日學習目標 | +#### 經驗值與閃電能量獲得規則 +| 活動類型 | 經驗值獲得 | XP | 條件 | +| ------------ | ---------- | ----- | -------------------------------- | +| 完成詞彙學習 | 100 XP | 5 | 根據準確率調整 | +| 完成對話練習 | 200 XP | 10-30 | 根據對話質量和雙重通關條件調整 | +| 連續學習 | 額外20% XP | 額外5 | 連續學習天數獎勵 | +| 完美通關 | 50 XP | 10 | 全部答對 | +| 劇情任務完成 | - | 10 | 完成對話劇情任務 | +| 指定詞彙使用 | - | 5-8 | 正確使用指定詞彙,自然使用有加成 | +| 每日任務 | 50 XP | 5 | 完成任務 | -### 鑽石獲得與消費 +#### 鑽石獲得與消費 **獲得方式**: +- 初始贈送: 新用戶註冊贈送300鑽石 - 每日登入獎勵: 2鑽石 - 完成成就: 10-50鑽石 -- 觀看廣告: 1鑽石 (每日5次) +- 觀看廣告: 25-50鑽石 (每日5次) +- 學習成就: 完成關卡獲得鑽石獎勵 - 內購: 實際貨幣購買 -**消費項目**: -- 命條補充包 (5個): 20鑽石 -- 時光卷道具: 10鑽石 -- 提示道具: 5鑽石 -- 解鎖高級內容: 100-500鑽石 +**消費管道**: +- 道具購買: 回覆提示(30)、補命(100)、加時(300)等 +- 時間管理道具: 暫停(100)、加成(150)鑽石 ## 📈 學習進度系統 -### 掌握度分級 -- **初識 (Beginner)**: 0-25% 掌握度 -- **熟悉 (Familiar)**: 26-60% 掌握度 -- **應用 (Applied)**: 61-85% 掌握度 -- **掌握 (Mastered)**: 86-100% 掌握度 +### 🎯 線性闖關系統 (Progressive Stage System) -### 難度自適應算法 +基於 [線性闖關學習系統規格](./progressive-stage-system.md) 的核心業務規則: + +#### 四關闖關架構 +- **13階段×20劇本×4關卡** 的完整學習架構 +- **四關順序**: 詞彙學習 → 詞彙熟悉 → 口說練習特別關卡 → 情境對話 +- **線性解鎖**: 除第2+關外必須按順序完成,口說練習特別關卡可跳過 +- **學習階層**: 第x階段 > 第x劇本 > 第x關卡 + +#### 關卡類型與規則 +| 關卡類型 | 收費模式 | 命條消耗 | 星級獲得 | 解鎖條件 | 通關條件 | +|---------|---------|----------|----------|----------|----------| +| 詞彙學習 | 免費 | 啟動扣1條 | 自動3星 | 無 | 全部答對 | +| 詞彙熟悉 | 免費 | 啟動扣1條 | 自動3星 | 完成第1關 | 全部答對 | +| 口說練習特別關卡 | 5鑽石 | 不扣命條 | 1-3星 | 完成第2關 | 平均70分+ | +| 情境對話 | 免費 | 啟動扣1條 | 1-3星 | 完成第2+關或跳過 | 雙重通關條件 | + +### 舊版關卡結構系統 +#### BR-LEARN-01: 階段化學習架構 +```yaml +規則名稱: 13階段學習路徑 +適用範圍: 整體學習進度管理 +結構設計: + - 學習階層: 第x階段 > 第x劇本 > 某某關卡 + - 總體規劃: 共13個學習階段 + - 劇本數量: 每階段包含20個以上劇本(持續增加) + - 關卡類型: 每個劇本固定包含三種關卡 + * 詞彙認識關卡 + * 詞彙熟悉關卡 + * 對話訓練關卡 +關卡解鎖機制: + - 順序闖關: 必須按照關卡順序進行,不可跳關 + - 解鎖條件: 完成前一關卡才能解鎖下一關 + - 通關標準: 即使獲得零顆星,成功通關仍會解鎖下一關 + - 星級獎勵: 詞彙認識和詞彙熟悉關卡通關直接給予三顆星 ``` -新難度 = 基礎難度 + 表現調整係數 -表現調整係數 = (正確率 - 0.7) × 0.5 + (平均反應時間調整) -若正確率 > 85%: 提升一個難度級別 -若正確率 < 40%: 降低一個難度級別 -若連續3次滿分: 跳過下一個同類題目 +### 🏆 情境對話核心商業機制 +#### BR-LEARN-02: 雙重通關條件獎勵系統 +```yaml +規則名稱: 結構化通關獎勵機制 +適用範圍: 所有對話練習關卡 +劇情任務完成獎勵: + - 基礎完成獎勵: +10 鑽石 + 10 閃電能量 + - 任務品質加成: 高品質完成額外 +5 鑽石 + - 即時獎勵機制: 任務完成立即觸發獎勵通知和發放 + - 進度追蹤獎勵: 連續完成劇情任務的連擊獎勵機制 +指定詞彙使用獎勵: + - 詞彙掌握獎勵: 正確使用指定詞彙獲得 +5 鑽石 + 5 閃電能量 + - 自然使用加成: 詞彙使用自然且符合語境額外 +3 鑽石 + - 即時反饋獎勵: 使用詞彙時立即觸發成功通知 + - 詞彙精通獎勵: 單次對話使用多個指定詞彙的組合獎勵 +結算獎勵系統: + - 過關獎勵: 同時滿足劇情任務和詞彙要求獲得金幣和經驗值 + - 星級獎勵系統: 基於三維度評分獲得1-3顆星 + * 語意合適分數 > 60 (滿分100) = 1顆星 + * 語法錯誤率 = 0 (所有句子正確或訂正後正確) = 1顆星 + * 表達流暢平均分數 > 60 (滿分100) = 1顆星 + - 訂正後獎勵: 選擇立即訂正後獲得訂正後的獎勵數值 + - 失敗安慰獎勵: 獲得時光卷一張(可重新挑戰關卡) +``` + +### ⚡ 連續學習獎勵機制 +#### BR-LEARN-04: 連續學習激勵系統 +```yaml +規則名稱: 連續學習天數追蹤與獎勵 +適用範圍: 所有學習活動 +連續學習規則: + - 連續學習天數: 追蹤用戶連續學習的天數 + - 每日學習判定: 當日完成至少一個關卡即計為學習一天 + - 連續獎勵機制: 基於連續天數給予額外獎勵 + * 7天連續: 額外經驗值獎勵 + * 14天連續: 免費命條補充 + * 30天連續: 特殊成就徽章 +斷線處理: + - 寬限期: 24小時內補完可維持連續記錄 + - 保護機制: VIP用戶享有3天的連續中斷保護 ``` ### 間隔複習機制 -基於艾賓浩斯遺忘曲線: -- **第1次複習**: 學習後1小時 -- **第2次複習**: 學習後1天 -- **第3次複習**: 學習後3天 -- **第4次複習**: 學習後7天 -- **第5次複習**: 學習後15天 -- **後續複習**: 每30天一次 +參考艾賓浩斯遺忘曲線: +- 第1次成功: 1天後複習 (2¹ = 2天) +- 第2次成功: 4天後複習 (2² = 4天) +- 第3次成功: 8天後複習 (2³ = 8天) +- 第4次成功: 16天後複習 (2⁴ = 16天) +- 依此類推... ## 🏆 成就與獎勵系統 @@ -97,34 +318,122 @@ ### 獎勵機制 | 成就等級 | 鑽石獎勵 | 經驗值獎勵 | 特殊獎勵 | -|----------|----------|------------|----------| -| 青銅 | 10鑽石 | 100 XP | 稱號 | -| 白銀 | 25鑽石 | 250 XP | 頭像框 | -| 黃金 | 50鑽石 | 500 XP | 特殊主題 | -| 鉑金 | 100鑽石 | 1000 XP | 高級功能 | +| -------- | -------- | ---------- | -------- | +| 青銅 | 10鑽石 | 100 XP | 稱號 | +| 白銀 | 25鑽石 | 250 XP | 稱號 | +| 黃金 | 50鑽石 | 500 XP | 稱號 | +| 鉑金 | 100鑽石 | 1000 XP | 稱號 | -## 🔐 權限控制系統 +## 🔐 用戶認證與權限系統 -### 用戶角色 +### 🔑 用戶註冊與認證規則 + +#### BR-AUTH-01: 帳戶註冊規則 +```yaml +規則名稱: 帳戶唯一性驗證 +適用範圍: 新用戶註冊 +技術實現: + - 一個信箱地址只能註冊一個帳戶 + - Apple ID 和 Google 帳戶不能與已註冊信箱重複 + - 用戶名稱必須唯一且長度3-20字符 + - 不允許使用系統保留關鍵字作為用戶名 +驗證機制: + - 註冊時即時檢查Email唯一性 + - 用戶名黑名單過濾 + - 第三方登入綁定檢查 +例外處理: + - 管理員可手動合併重複帳戶 + - 用戶可透過客服申請帳戶刪除後重新註冊 +``` + +#### BR-AUTH-02: 密碼安全規則 +```yaml +規則名稱: 密碼複雜度要求 +適用範圍: 所有密碼設定和更改 +技術實現: + - 最小長度8字符,最大長度128字符 + - 必須包含大小寫字母和數字 + - 不能包含用戶名或常見弱密碼 + - bcrypt加密存儲,不可逆 +安全措施: + - 連續5次錯誤輸入將鎖定帳戶15分鐘 + - 密碼重設連結24小時內有效 + - 密碼歷史記錄防止重複使用最近5組密碼 + - 90天後系統建議更換密碼 +``` + +#### BR-AUTH-03: 會話管理規則 +```yaml +規則名稱: 用戶會話控制 +適用範圍: 用戶登入狀態管理 +技術實現: + - 標準會話有效期為7天 + - JWT Token自動續期機制 + - 30天內無活動自動登出 + - 同一帳戶最多允許3個設備同時登入 +會話延長: + - 付費用戶會話有效期延長至30天 + - 記住登入狀態最長可保持90天 + - 異地登入需要進行安全驗證 +``` + +### 👥 用戶角色分級系統 + +#### BR-USER-ROLES: 用戶角色定義 +```yaml +規則名稱: 用戶等級與權益管理 +適用範圍: 所有用戶類別 +用戶角色定義: + 免費用戶 (FREE_USER): + - 狀態: 默認用戶類型 + - 權益: 基礎學習功能、有限的學習次數 + - 限制: 每日3次對話練習、基礎詞庫 + 試用用戶 (TRIAL_USER): + - 期限: 7天免費體驗訂閱用戶權益 + - 權益: 完整功能體驗、無廣告、無限制學習 + - 轉換: 試用期結束後自動轉訂閱用戶(需手動取消) + 訂閱用戶 (SUBSCRIBER): + - 定價: NT$600/月 或 NT$6,000/年 + - 權益: 無限制學習、進階統計報告、命條上限30個、每小時恢復3個命條 + - 特權: 每日3次免費限時挑戰、優先客服支援 + 進階用戶 (PREMIUM_USER): + - 階段: 第二階段功能開放後提供 + - 定價: NT$900/月 或 NT$9,000/年 + - 權益: 訂閱用戶所有功能 + 進階自訂學習功能 + 更優質學習體驗(TTS) + - 特權: 命條上限50個、每小時恢復5個命條、專屬學習模式 + 高價值用戶 (HIGH_VALUE_USER): + - 階段: 第三階段功能開放後提供 + - 定義: 累計購買鑽石超過NT$3,000的用戶 + - 權益: VIP客服支援、專屬活動邀請、新功能優先體驗 + - 特權: 限定道具折扣、獲得限定道具、專屬客戶經理 + 管理員 (ADMIN): + - 權益: 系統管理、用戶管理、內容管理 + - 特權: 完整系統訪問權限、數據分析功能 +``` + +#### 用戶角色枚舉定義 ```typescript enum UserRole { - FREE_USER = "free_user", // 免費用戶 - SUBSCRIBER = "subscriber", // 訂閱用戶 - ADMIN = "admin" // 管理員 + FREE_USER = "free_user", // 免費用戶 + TRIAL_USER = "trial_user", // 試用用戶 (7天) + SUBSCRIBER = "subscriber", // 訂閱用戶 + PREMIUM_USER = "premium_user", // 進階用戶 (第2階段) + HIGH_VALUE_USER = "high_value_user", // 高價值用戶 (第3階段) + ADMIN = "admin" // 管理員 } ``` ### 功能權限矩陣 -| 功能 | 免費用戶 | 訂閱用戶 | 管理員 | -|------|----------|----------|---------| -| 基礎對話練習 | 3次/日 | 無限制 | 無限制 | -| 高級對話功能 | ❌ | ✅ | ✅ | -| 詞彙學習 | 基礎詞庫 | 完整詞庫 | 完整詞庫 | -| AI分析報告 | 簡化版 | 詳細版 | 完整版 | -| 離線模式 | ❌ | ✅ | ✅ | -| 數據匯出 | ❌ | ✅ | ✅ | -| 管理功能 | ❌ | ❌ | ✅ | - +| 功能 | 試用用戶 | 訂閱用戶 | 進階用戶 | 高價值用戶 | 管理員 | +| ------------ | ----------- | -------- | -------- | ---------- | -------- | +| 基礎對話練習 | 無限制(7天) | 無限制 | 無限制 | 無限制 | 無限制 | +| 詞彙學習 | 完整詞庫 | 完整詞庫 | 完整詞庫 | 完整詞庫 | 完整詞庫 | +| AI分析報告 | ✅ | ✅ | ✅ | ✅ | ✅ | +| 自訂學習功能 | ❌ | ❌ | ✅ | ✅ | ✅ | +| 優質TTS體驗 | ❌ | ❌ | ✅ | ✅ | ✅ | +| 命條恢復 | ✅ | ✅ | ✅+ | ✅++ | 無限 | +| 口說練習關卡 | 消耗鑽石 | 消耗鑽石 | ✅ | ✅ | 無限 | +| 管理功能 | ❌ | ❌ | ❌ | ❌ | ✅ | ## ⚡ 防作弊機制 ### 答題時間檢查 @@ -155,7 +464,114 @@ enum UserRole { - **貨幣顯示**: 根據用戶所在地區顯示本地貨幣 - **時區處理**: 自動根據用戶時區調整時間顯示 -## 📊 數據分析規則 +## 📺 簡化廣告系統 + +### 廣告展示策略 +```yaml +規則名稱: 非強制性廣告獎勵系統 +適用範圍: 所有平台廣告展示 +展示策略: + - 非強制性: 主要用於獲得額外鑽石獎勵 + - 獎勵導向: 觀看廣告獲得25-50鑽石 + - 頻率控制: 每日最多5次觀看,避免影響核心遊戲體驗 + - 品質篩選: 優先顯示教育和遊戲相關廣告 +廣告類型: + - 鑽石獎勵廣告: 觀看30秒廣告獲得25-50鑽石 + - 命條恢復廣告: 觀看廣告恢復1個命條 (每日3次) + - 道具試用廣告: 觀看廣告獲得道具試用機會 +技術實現: + - 廣告SDK整合: AdMob、Unity Ads等 + - 廣告載入預處理: 避免用戶等待時間 + - 廣告完成驗證: 確保用戶完整觀看才給予獎勵 +``` + +## 🤝 社群互動系統 + +### 👥 好友系統規則 + +#### BR-SOCIAL-01: 好友關係管理 +```yaml +規則名稱: 好友關係管理 +適用範圍: 所有社群互動功能 +技術實現: + - 每個用戶最多可添加100個好友 + - 好友邀請有效期為7天 + - 雙方確認後建立好友關係 + - 可設定好友可見性(學習進度、排名等) +互動限制: + - 每日最多發送20個好友邀請 + - 拒絕好友邀請後30天內不可重複邀請 + - 刪除好友後48小時內不可重新添加 + - 封鎖用戶無法看到任何相關信息 +數據同步: + - 好友狀態變更即時通知 + - 好友學習動態推送設定 + - 隱私設定優先級管理 +``` + +#### BR-SOCIAL-02: 排行榜規則 +```yaml +規則名稱: 競爭排名計算 +適用範圍: 所有排行榜功能 +技術實現: + - 排行榜分為好友榜、全球榜、地區榜 + - 每週一凌晨重置週排行榜 + - 每月1號重置月排行榜 + - 年度排行榜保持全年累積 +排名計算: + - 主要依據: 遊玩關卡所獲得的經驗值 + - 相同分數按學習開始時間排序 + - 作弊或異常數據將被排除 + - 反作弊演算法實時監控 +顯示規則: + - 顯示前100名和用戶周圍排名 + - 匿名用戶可選擇隱藏排名 + - 排名變化趨勢圖表顯示 +``` + +## 📊 數據分析與隱私保護 + +### 🔒 安全與隱私規則 + +#### BR-SEC-01: 數據隱私保護 +```yaml +規則名稱: 用戶數據處理規範 +適用範圍: 所有用戶數據收集與使用 +技術實現: + - 僅收集學習相關的必要數據 + - 用戶可隨時查看和下載個人數據 + - 帳戶刪除後90天內完全清除數據 + - 不與第三方分享個人識別信息 +數據加密: + - 敏感數據採用AES-256加密 + - 傳輸過程使用HTTPS/TLS 1.3 + - 密碼使用bcrypt不可逆加密 + - 定期進行安全稽核和測試 +合規要求: + - 符合GDPR、CCPA等隱私法規 + - 提供數據可攜帶權和被遺忘權 + - 定期隱私影響評估 +``` + +#### BR-SEC-02: 內容審核規則 +```yaml +規則名稱: 用戶生成內容管理 +適用範圍: 所有用戶輸入和分享內容 +技術實現: + - 禁止發布違法、暴力、色情內容 + - 禁止惡意攻擊或騷擾其他用戶 + - 禁止發布廣告或垃圾信息 + - 系統自動檢測+人工審核雙重把關 +審核機制: + - AI內容識別系統24/7運行 + - 用戶舉報機制和快速回應 + - 內容分級和年齡適宜性檢查 +處置措施: + - 輕微違規: 警告並刪除內容 + - 嚴重違規: 暫停帳戶1-30天 + - 極嚴重違規: 永久封禁帳戶 + - 申訴機制: 7天內可申請複審 +``` ### 學習分析維度 1. **學習效率**: 單位時間掌握詞彙數/對話完成數 @@ -163,19 +579,119 @@ enum UserRole { 3. **學習偏好**: 用戶偏愛的學習模式和時間 4. **難點識別**: 用戶容易犯錯的知識點 -### 隱私保護 +### 隱私保護執行 - **數據匿名化**: 個人識別信息在分析前移除 - **本地計算**: 敏感數據優先在本地處理 - **用戶同意**: 數據使用需要用戶明確同意 - **數據保留**: 學習數據保留期限不超過2年 +## 📱 技術限制與相容性 + +### 💻 平台相容性規則 + +#### BR-TECH-01: 設備支援標準 +```yaml +規則名稱: 設備支援標準 +適用範圍: 所有平台版本 +技術實現: + - iOS 12.0以上版本 + - Android 8.0以上版本 + - Chrome 80+, Safari 13+, Firefox 75+ + - 記憶體需求最低2GB +硬體需求: + - 儲存空間最低500MB可用空間 + - 網路連接要求穩定3G以上 + - 麥克風權限用於語音功能 + - 相機權限用於掃描功能(可選) +功能降級: + - 低配設備自動關閉視覺特效 + - 網路狀況差時啟用離線模式 + - 儲存空間不足時清理快取 + - 不支援的功能給予明確提示 +``` + +#### BR-TECH-02: 數據同步規則 +```yaml +規則名稱: 跨設備數據同步 +適用範圍: 多設備用戶體驗 +技術實現: + - 學習進度即時同步到雲端 + - 離線學習數據聯網時自動上傳 + - 數據衝突時以時間戳較新為準 + - 每日自動備份用戶數據 +同步頻率: + - 學習完成後立即同步 + - 每10分鐘檢查一次更新 + - 應用啟動時強制同步一次 + - 網路恢復時補傳離線資料 +衝突解決: + - 同步衝突優先保留本地較新數據 + - 關鍵學習數據採用合併策略 + - 提供手動解決衝突選項 + - 異常同步自動回滾機制 +``` + +#### BR-TECH-03: 效能監控規則 +```yaml +規則名稱: 應用效能標準 +適用範圍: 所有平台和功能 +技術實現: + - 應用啟動時間不超過3秒 + - 頁面切換響應時間不超過500ms + - API請求超時設定為30秒 + - 記憶體使用監控和自動清理 +效能指標: + - CPU使用率持續監控 + - 記憶體洩漏自動檢測 + - 網路請求成功率追蹤 + - 崩潰率控制在0.1%以下 +降級策略: + - 效能不足時自動降低畫質 + - 網路慢時優先載入核心功能 + - 電量不足時減少背景處理 + - 儲存空間不足時清理暫存 +``` + +## 🔄 業務規則衝突處理 + +### 優先級管理 +1. **用戶安全和隱私** - 最高優先級 +2. **法律合規要求** - 法規優先於商業需求 +3. **付費用戶權益** - 既得權益保護 +4. **產品核心邏輯** - 學習機制一致性 +5. **用戶體驗優化** - 可動態調整項目 + +### 規則變更流程 +1. **影響評估** - 技術、用戶、商業三維度分析 +2. **合規審查** - 法務和隱私合規檢查 +3. **A/B測試** - 小範圍驗證變更影響 +4. **分階段實施** - 漸進式推出降低風險 +5. **監控回饋** - 實時監控和快速回應 + --- -**文檔狀態**: 🟢 已完成 -**最後更新**: 2025-09-09 -**版本**: v1.0 +**📝 備註**: +- 本文檔已整合原有的 `business-logic-rules.md` 中的詳細實現規格 +- 統一了跨平台的業務規則和商業模式定義 +- 確保各平台開發團隊基於一致的業務邏輯進行實現 + +**🔄 整合完成內容**: +- ✅ **鑽石貨幣系統**: 完整的獲得方式、消費管道和套餐設計 +- ✅ **道具商店系統**: 詳細的道具功能、定價和購買流程 +- ✅ **關卡結構系統**: 13階段學習路徑和解鎖機制 +- ✅ **雙重通關條件**: 劇情任務和指定詞彙的獎勵機制 +- ✅ **限時挑戰系統**: 300秒限時挑戰的商業化設計 +- ✅ **連續學習獎勵**: 天數追蹤和獎勵機制 +- ✅ **付費轉換優化**: 漸進式付費漏斗和動機設計 +- ✅ **訂閱服務簡化**: 7天免費體驗和可愛UI設計 +- ✅ **廣告系統**: 非強制性獎勵廣告策略 + +**文檔狀態**: 🟢 整合完成 +**最後更新**: 2025-09-10 +**版本**: v2.0 (已整合詳細業務邏輯) **相關文檔**: -- `數據模型.md` - 數據結構定義 -- `API規格.md` - API接口設計 -- `mobile/` - 移動端功能規格 -- `web/` - Web端功能規格 \ No newline at end of file +- **平台對應表**: [平台功能對應表.md](../平台功能對應表.md) +- **數據模型**: [數據模型.md](./數據模型.md) +- **API規格**: [API規格.md](./API規格.md) +- **Mobile端規格**: [mobile/README.md](../mobile/README.md) +- **Web端規格**: [web/README.md](../web/README.md) \ No newline at end of file diff --git a/docs/02_design/content-management-specs.md b/docs/02_design/function-specs/common/content-management-specs.md similarity index 100% rename from docs/02_design/content-management-specs.md rename to docs/02_design/function-specs/common/content-management-specs.md diff --git a/docs/02_design/function-specs/common/pragmatic-analysis-specs.md b/docs/02_design/function-specs/common/pragmatic-analysis-specs.md new file mode 100644 index 0000000..619c072 --- /dev/null +++ b/docs/02_design/function-specs/common/pragmatic-analysis-specs.md @@ -0,0 +1,178 @@ +# 語用分析系統規格 (Pragmatic Analysis System) + +## 概述 +Drama Ling 應用中的語用分析系統,評估對話的內容理解和表達適切性。提供六維度語用標準評估,用於情境對話訓練、學習建議和溝通改善指導。 + +**注意**: 語用分析只提供建議,不進行評分,重點在於教學指導和溝通改善。 + +## 六維語用標準 + +### 1. 😊 日常寒暄 (Small Talk) +- **定義**: 不以傳遞實質資訊為主要目的,而是用於建立或維持社交關係的言談 +- **用途**: + - 建立對話氛圍與人際連結 + - 作為開場、轉場或緩和氣氛的策略 + - 在客服或 AI 助手中,用來提升「人性化」感 + +### 2. 🌀 間接表達 (Indirectness) +- **定義**: 透過暗示、委婉語或迂迴方式表達意圖,避免直接衝突 +- **用途**: + - 避免冒犯,維持人際和諧 + - 展現禮貌或文化上的尊重 + - 在跨文化溝通中,辨識不同社會的表達習慣 + +### 3. 🤔 填充語 (Fillers) +- **定義**: 非必要詞語,用來填補語流空隙、保持連續或爭取思考時間 +- **用途**: + - 提示對方「話還沒說完」 + - 增加口語自然度(模擬真實對話) + - 作為語音辨識或對話系統的特徵,用於偵測自然口語 + +### 4. 🙆 同理回應 (Backchanneling) +- **定義**: 聽話者以簡短語言或聲音表達注意、理解或支持,不打斷主要話輪 +- **用途**: + - 提供傾聽與理解的訊號,維持互動流暢 + - 增強情感支持與共鳴 + - 在對話系統中,提升使用者「被理解」的感受 + +### 5. 🤷 模糊語 (Hedging) +- **定義**: 降低語氣確定性,避免過度斷言的語言策略 +- **用途**: + - 顯示謹慎,降低爭議風險 + - 表達禮貌,避免武斷或冒犯 + - 在學術或專業語境中,用來維持客觀或彈性 + +### 6. 🐉 文化慣用語 (Idioms) +- **定義**: 文化群體中固定的表達方式,通常無法逐字翻譯 +- **用途**: + - 增加語言的自然性與文化深度 + - 強化群體認同感 + - 作為語言學習與跨文化理解的重要素材 + +## 語用評分範例 + +``` +--- Dialogue + +👨(Client):How is Mr. Davies feeling about our upcoming meeting? + +👨(Business Professional):Wow, you know what he is very anxious to meet you + +The client is responding to the business professional's statement about Mr. Davies being anxious to meet him. He acknowledges the information and expresses his own anticipation for the meeting, maintaining a professional and engaged tone.... + +👨(Client):Anxious, you say? That's good to hear. I'm looking forward to it as well. + +--- Overall Comment + +【分數】:✅ 通過 +【評論】:客戶在本次對話中展現了良好的專業溝通能力。他能夠清晰、直接地回應對方的信息,並有效使用附和語來維持對話的參與感。 +【建議】:建議客戶在未來的對話中,根據情境需要,可以考慮適度運用間接表達和模糊語,以增加語氣的彈性與委婉度,尤其是在面對敏感話題或需要更細緻溝通的場合。持續保持積極的傾聽和回應,將有助於建立更良好的互動關係。 + +--- Intent Achievement Evaluation + +🌍 Scenario: +A professional setting where a person is informing another about a third party's eagerness to meet them, possibly before an introduction or a significant meeting. The man in the suit suggests a formal context. + +🎯 Intent: +Inform about someone's eagerness to meet. + +🎯 是否實踐意圖: + +【分數】:Yes +【評論】:客戶成功地表達了對對方所提供信息的理解,並明確傳達了他對即將到來的會議的期待。 +【建議】:意圖已完全達成,表現良好,無需改進。 + +--- Pragmatic Evaluation + +😊 日常寒暄 (Small Talk) + +【分數】:4分 +【評論】:客戶的應答簡潔專業,直接表達了對會面的期待,符合商務情境。 +【建議】:在此情境下,客戶的表現良好,無需特別改進。如果想在開場時增加一點點寒暄,可以簡短地說 "It's a pleasure to finally connect, I hear great things." + +🌀 間接表達 (Indirectness) + +【分數】:0分 +【評論】:客戶的回應直接且清晰,沒有使用間接表達。在此情境下,直接性是可接受的,因此此項得分0分並非表示表現不佳,而是因為間接表達在此情境中並非必要且客戶未採用。 +【建議】:如果想讓語氣更委婉或在某些情況下顯得更為謹慎,可以使用間接句型,例如 "I appreciate you sharing that. It sounds like he's quite keen, and I share that sentiment." 或 "It's certainly encouraging to hear his eagerness; I'm equally enthusiastic." + +🤔 填充語 (Fillers) + +【分數】:0分 +【評論】對話中沒有使用語氣詞。在此情境下,不使用語氣詞保持了專業和清晰度。此項得分0分,因其在本次對話中屬於非必要項目且未被使用。 +【建議】:保持清晰流暢的表達是良好的習慣。若未來在需要思考或組織語言時,可適度使用一些無害的填充詞如 "Well," 或 "You know," 來避免冷場,但應避免過度使用。例如:"Well, that's good to hear. I'm looking forward to it as well." + +🙆 同理回應 (Backchanneling) + +【分數】:5分 +【評論】:客戶有效地使用了附和語 "Anxious, you say?",這表明他專注於對話並確認了對方提供的信息,有助於維持對話的流暢性與參與感。 +【建議】:繼續保持這種積極的傾聽和回應。在其他情況下,也可以使用 "I see what you mean," "Right," 或 "Exactly," 等來表示理解和附和。 + +🤷 模糊語 (Hedging) + +【分數】:2分 +【評論】:客戶的表達比較直接,沒有使用模糊語來軟化語氣或預留彈性。在這種專業且直接的語境下,雖然直接表達沒問題,但適度的模糊語可以使語氣更溫和或為未來討論留下空間。 +【建議】:在某些情境下,尤其是在討論尚未確定的事項或表達個人看法時,適當使用模糊語(hedging)可以讓語氣更委婉,避免過於武斷。例如,可以說 "I suppose that's good to hear" 或 "I'm certainly looking forward to it as well, assuming everything goes according to plan." + +🐉 文化慣用語 (Idioms) + +【分數】:0分 +【評論】:對話中沒有使用慣用語。在正式的商務場合,避免使用過多的慣用語有助於保持溝通的清晰度,尤其是在面對不同文化背景的對話者時。此項得分0分,因其在本次對話中屬於非必要項目且未被使用。 +【建議】:在正式場合,直接清晰的表達比慣用語更受青睞。如果希望增加語言的豐富性,可以在非正式場合適度使用,但務必確保對方能理解。 +``` + +## 技術實現 + +### 分析引擎 +- [ ] **即時分析**: 用戶說出的每句話都進行即時語用判斷 +- [ ] **語用建議生成**: 當用戶點擊對話查看語用建議,生成對應建議 +- [ ] **情境適應性**: 根據對話場景調整語用評估標準 +- [ ] **文化背景考量**: 辨識不同文化的表達習慣和語用規範 + +### 意圖分析系統 +- [ ] **情境識別**: 自動識別對話的情境和背景 +- [ ] **意圖解析**: 分析對話雙方的溝通意圖 +- [ ] **完成度評估**: 判斷意圖是否成功傳達和達成 +- [ ] **改善建議**: 提供具體的溝通改善方向 + +### 輸出格式 +- [ ] **整體評論**: 通過/不通過 + 綜合評論和建議 +- [ ] **意圖達成評估**: 情境分析 + 意圖識別 + 完成狀態 +- [ ] **六維詳細分析**: 每維度的評分、評論和具體改善建議 +- [ ] **實用建議**: 提供可行的替代表達方式和溝通策略 + +## 應用場景 + +### 情境對話訓練 +- 對話結束後提供語用建議 +- 幫助用戶理解不同語用策略的使用時機 + +### 回覆輔助系統 +- 分析對方話語的意圖 +- 提供合適的回應策略建議 + +### 學習反饋系統 +- 識別用戶的語用弱點 +- 提供個性化的學習建議 + +### 文化理解教學 +- 解釋不同文化背景下的語用差異 +- 培養跨文化溝通能力 + +## 品質控制 + +### 分析準確性 +- [ ] **語境理解測試**: 驗證系統對不同情境的識別能力 +- [ ] **文化適應性**: 確保建議符合目標文化的語用規範 +- [ ] **建議實用性**: 測試建議的可操作性和有效性 + +### 用戶體驗 +- [ ] **建議清晰度**: 確保語用建議易於理解和實施 +- [ ] **個性化程度**: 根據用戶水平調整建議的深度和複雜度 +- [ ] **學習效果**: 追蹤語用建議對用戶溝通能力的改善效果 + +--- + +**最後更新**: 2025-09-11 - 獨立拆分語用分析系統規格 +**版本**: 1.0 - 初版:從AI算法規格中獨立模組化 +**維護者**: Drama Ling 開發團隊 \ No newline at end of file diff --git a/docs/02_design/function-specs/common/progressive-stage-system.md b/docs/02_design/function-specs/common/progressive-stage-system.md new file mode 100644 index 0000000..cf08c3b --- /dev/null +++ b/docs/02_design/function-specs/common/progressive-stage-system.md @@ -0,0 +1,257 @@ +# 線性闖關學習系統規格 (Progressive Stage System) + +## 概述 +Drama Ling 的核心闖關學習機制,採用線性順序闖關設計,確保用戶循序漸進地掌握語言技能。每個劇本包含4個必須順序完成的關卡,形成完整的學習閉環。 + +## 📚 闖關架構 + +### 三層架構設計 +``` +13個階段 (Stage) +├── 每階段 20+ 劇本 (Script) +│ ├── 第1關:詞彙學習 (Vocabulary Learning) +│ ├── 第2關:詞彙熟悉 (Vocabulary Mastery) +│ ├── 第2+關:口說練習特別關卡 (Speaking Practice Bonus) +│ └── 第3關:情境對話 (Situational Dialogue) +``` + +### 關卡順序與依賴關係 +1. **第1關:詞彙學習** → 解鎖第2關 +2. **第2關:詞彙熟悉** → 解鎖第2+關和第3關 +3. **第2+關:口說練習** → 可跳過的付費特別關卡 +4. **第3關:情境對話** → 解鎖下一劇本第1關 + +### 特別關卡機制 +- **第2+關可跳過**: 完成第2關後可直接進入第3關,無需通過口說練習 +- **付費特別體驗**: 口說練習為可選的付費強化訓練 +- **獨立獎勵系統**: 不影響主線闖關進度,但提供額外學習價值 + +## 🎮 主線+特別關卡機制 + +### 第1關:詞彙學習 (Vocabulary Learning) +**功能目的**: 學習劇本相關的5個核心詞彙 +**關卡類型**: 免費關卡 + +#### 關卡內容 +- [ ] **詞彙展示**: 顯示詞彙、詞義、例句、示意圖 +- [ ] **選擇題測試**: 根據示意圖選擇正確詞彙 (4選1) +- [ ] **錯誤重測**: 答錯的題目在最後重新測試 + +#### 通關條件 +- **基本要求**: 所有詞彙題目都答對 +- **獎勵標準**: 通關自動獲得3顆星 +- **資源消耗**: 完全免費,答錯扣1命條 +- **解鎖效果**: 開啟第2關 + +#### 詞彙組合設計 +每個劇本包含5個詞彙: +- 3個常用單字 +- 1個常用片語 +- 1個常用俚語 + +**範例組合**: +- 買菜小冒險: market, vegetables, price + "ask for a discount" + "a steal" +- 遲到的咖啡約會: coffee, late, apologize + "run into traffic" + "my bad" + +### 第2關:詞彙熟悉 (Vocabulary Mastery) +**功能目的**: 加深詞彙理解,訓練語境應用能力 +**關卡類型**: 免費關卡 + +#### 關卡內容 +- [ ] **例句重組**: 從單字選取區組出示意圖的原句 +- [ ] **詞彙配對**: 左邊示意圖與右邊詞彙進行配對 +- [ ] **語法結構訓練**: 強化詞彙在句子中的使用 + +#### 通關條件 +- **基本要求**: 所有配對和重組都正確 +- **獎勵標準**: 通關自動獲得3顆星 +- **資源消耗**: 完全免費,答錯扣1命條 +- **解鎖效果**: 開啟第3關 + +### 第2+關:口說練習特別關卡 (Speaking Practice Bonus) +**功能目的**: 針對詞彙進行發音和流暢度訓練 +**關卡類型**: 付費特別關卡 (5鑽石) +**特別機制**: 唯一可跳過的關卡,不影響主線闖關進度 + +#### 關卡內容 +- [ ] **詞彙例句朗讀**: 逐一展示詞彙例句,用戶朗讀 +- [ ] **五維口說評分**: 使用 [口說評分系統](./speaking-evaluation-specs.md) +- [ ] **即時發音反饋**: 每個詞彙提供詳細改善建議 + +#### 通關條件與獎勵 +- **通關條件**: 所有詞彙例句平均分數≥70分 +- **獎勵階梯**: + - 70-79分:1鑽石 + 10XP (回收部分成本) + - 80-89分:3鑽石 + 10XP (略有虧損但有進步) + - 90-100分:5鑽石 + 20XP (獲利且大幅經驗值) +- **解鎖效果**: 開啟第3關 + +#### 學習價值 +- **發音精進**: 針對特定詞彙的精確發音訓練 +- **記憶強化**: 透過語音輸出深化詞彙印象 +- **個性化指導**: 基於五維評分的具體改善建議 + +### 第3關:情境對話 (Situational Dialogue) +**功能目的**: 在真實情境中綜合應用所學詞彙和語言技能 +**關卡類型**: 免費關卡 + +#### 關卡內容 +- [ ] **AI角色對話**: 與AI角色進行劇本情境對話 +- [ ] **雙重任務系統**: 完成劇情意圖 + 使用指定詞彙 +- [ ] **即時分析反饋**: 語法、口說、語用三維度分析 + +#### 通關條件 +- **基本通關**: 所有意圖任務≥50%完成 + 所有詞彙至少提及一次 +- **星星獲得**: + - ⭐ 任務星:所有意圖任務100%完成 + - ⭐ 語法星:語法錯誤率 = 0 + - ⭐ 口說星:口說平均分數 > 80 +- **資源消耗**: 免費進入,失敗扣1命條 +- **解鎖效果**: 開啟下一劇本第1關 + +## 🔒 關卡解鎖機制 + +### 順序解鎖規則 +1. **劇本內順序**: 第1關 → 第2關 → (第2+關) → 第3關 +2. **劇本間順序**: 完成第3關才能進入下一劇本 +3. **階段解鎖**: 完成本階段所有劇本才能進入下一階段 +4. **不可跳關**: 除第2+關外,其他關卡都必須按順序完成 + +### 關卡狀態管理 +- **🔒 鎖定狀態**: 前置條件未滿足,顯示解鎖要求 +- **⏳ 可進行狀態**: 前置條件滿足,可以開始挑戰 +- **🔄 進行中狀態**: 關卡已開始但未完成 +- **✅ 已完成狀態**: 關卡已通關,顯示獲得星數 + +### 進度保存機制 +- [ ] **自動保存**: 每關完成後立即保存進度 +- [ ] **斷點續玩**: 關卡中途離開可從斷點繼續 +- [ ] **雲端同步**: 跨設備進度同步 +- [ ] **回滾保護**: 防止進度意外丟失 + +## 💎 資源管理系統 + +### 命條系統 (Life System) +> 詳細規格請參閱 → **[共同業務規則 - 命條系統](./business-rules.md#🎮-命條系統-life-points-system)** + +- **消耗機制**: 所有關卡在啟動時消耗1個命條(除第2+關) +- **用戶等級差異**: 不同用戶等級擁有不同的命條上限和恢復速度 +- **額外懲罰**: 對話辱罵情形額外扣除3個命條 + +### 鑽石消耗 +- **第2+關口說練習**: 固定消耗5鑽石 +- **輔助工具**: 情境對話中的回覆協助功能 +- **加速道具**: 命條回復加速、關卡重置等 + +## 🎯 學習進度追蹤 + +### 階段進度指標 +- **完成劇本數**: 當前階段已完成的劇本數量 +- **總關卡數**: 階段內所有關卡的完成情況 +- **星級統計**: 各類型關卡獲得的星級總數 +- **學習時間**: 累計學習時間和平均關卡耗時 + +### 個人成就系統 +- **連續學習天數**: 每日至少完成1個關卡 +- **完美通關**: 單劇本4關全部獲得滿星 +- **詞彙大師**: 口說練習關卡高分通關 +- **對話專家**: 情境對話獲得三星 + +## 🔄 特殊機制 + +### 時光關卡系統 +**觸發條件**: 使用時光卷道具 +**關卡來源**: +1. 優先選擇前階段未玩過的對話訓練關卡 +2. 若都玩過則隨機選擇對話訓練關卡 + +**獎勵機制**: +- 成功通關照常獲得星級和經驗值 +- 詞彙自動加入複習清單 +- 不影響正常闖關進度 + +### 複習系統整合 +- [ ] **自動加入**: 每關完成後詞彙自動加入複習清單 +- [ ] **間隔算法**: 基於遺忘曲線的智慧複習排程 +- [ ] **複習形式**: 以詞彙熟悉關卡形式進行 +- [ ] **進度維護**: 複習不影響主線闖關進度 + +## 📊 數據追蹤需求 + +### 關卡表現數據 +- 每關完成時間、嘗試次數、最終星級 +- 詞彙學習的錯誤分布和改善軌跡 +- 口說練習的五維評分趨勢 +- 情境對話的意圖完成率和語用表現 + +### 學習行為分析 +- 關卡間停留時間和跳離率 +- 資源消耗模式和付費轉換率 +- 輔助功能使用頻率和效果 +- 長期學習留存和成就解鎖 + +## 🚀 技術實現要點 + +### 前端狀態管理 +- [ ] **關卡狀態樹**: 階段→劇本→關卡的嵌套狀態管理 +- [ ] **解鎖邏輯**: 前置條件檢查和UI狀態更新 +- [ ] **進度可視化**: 進度條、解鎖動畫、成就提示 +- [ ] **離線支持**: 關卡數據本地快取和同步機制 + +### 後端架構需求 +- [ ] **進度服務**: 用戶闖關進度的CRUD操作 +- [ ] **解鎖服務**: 關卡解鎖條件驗證和狀態更新 +- [ ] **統計服務**: 學習數據收集和分析報告 +- [ ] **同步服務**: 多端進度同步和衝突解決 + +### 數據庫設計 +```sql +-- 用戶闖關進度表 +user_stage_progress ( + user_id, stage_id, script_id, level_type, + status, stars, completion_time, attempts +) + +-- 關卡解鎖狀態表 +level_unlock_status ( + user_id, stage_id, script_id, level_type, + is_unlocked, unlock_time, prerequisites_met +) + +-- 學習統計表 +learning_analytics ( + user_id, date, levels_completed, + stars_earned, time_spent, resources_used +) +``` + +## 📝 開發檢查清單 + +### 核心功能實現 +- [ ] 三關+特別關卡闖關邏輯 +- [ ] 關卡狀態管理和UI更新 +- [ ] 進度保存和加載機制 +- [ ] 資源消耗和獎勵分發 +- [ ] 解鎖條件驗證 + +### 用戶體驗優化 +- [ ] 清楚的進度指示和引導 +- [ ] 流暢的關卡間切換動畫 +- [ ] 直觀的鎖定狀態說明 +- [ ] 及時的成就和獎勵反饋 + +### 性能和穩定性 +- [ ] 大量關卡數據的載入優化 +- [ ] 進度同步的錯誤恢復機制 +- [ ] 關卡切換的內存管理 +- [ ] 離線模式的數據一致性 + +--- + +**最後更新**: 2025-09-11 - 建立線性闖關學習系統規格 +**版本**: 1.0 - 初版:四關闖關機制設計 +**維護者**: Drama Ling 開發團隊 +**相關文檔**: +- [口說評分系統](./speaking-evaluation-specs.md) +- [語用分析系統](./pragmatic-analysis-specs.md) +- [AI算法規格](./ai-algorithm-specs.md) \ No newline at end of file diff --git a/docs/02_design/function-specs/common/speaking-evaluation-specs.md b/docs/02_design/function-specs/common/speaking-evaluation-specs.md new file mode 100644 index 0000000..0b56c86 --- /dev/null +++ b/docs/02_design/function-specs/common/speaking-evaluation-specs.md @@ -0,0 +1,93 @@ +# 口說評分系統規格 (Speaking Evaluation System) + +## 概述 +Drama Ling 應用中的口說評分系統,提供五維度的語音表達評估,適用於對話訓練、詞彙學習、發音練習等多個功能模組。 + +## 核心評分維度 + +### 五維度評分系統 +- 🗣️ **發音評分 (Pronunciation)**: 音素準確度、尾音收口、鼻音共鳴 +- ✅ **完整度評分 (Completeness)**: 句子完整性、遺漏詞彙檢測 +- 📈 **流暢度評分 (Fluency)**: 語速自然度、停頓合理性 +- 🎶 **韻律評分 (Prosody)**: 語調變化、重音位置、節奏感 +- 🎯 **準確度評分 (Accuracy)**: 整體表達精準度 + +### 分數標準 +- **96~100**:完美 +- **81~95**:優秀 +- **71~80**:尚可 +- **0~70**:不合格 + +### 獎勵機制 +- **96~100**:+3 鑽石 + 30 XP +- **81~95**:+2 鑽石 + 20 XP +- **71~80**:+1 鑽石 + 10 XP +- **0~70**:時光卷 + +## 評分顯示範例 + +``` +📊 Speaking Score + +【Sentence】91.9分: +Please make sure you have all the necessary documents before submitting your application. + +🗣️ Pronunciation:91.9 +📈 Fluency:97 +🎶 Prosody:83.3 +✅ Completeness:100 +🎯 Accuracy:96 + +【單字需要加強❌】 +application ⭐⭐: +🟡 n + +【建議改善】 +• 🔚 尾音收口明確(-m, -n, -l, -k, -t),避免吞音。 +🎯 針對音素練習:n +🤧 鼻音(m/n/ŋ):軟顎下放,確保鼻腔共鳴與口型到位。 +``` + +## 技術實現 + +### 語音處理系統 +- [ ] **語音轉文字**: 以語音輸入為主,文字輸入為輔的對話方式 +- [ ] **中文檢測**: 當用戶講中文或輸入中文時,角色表示聽不懂 +- [ ] **語音品質檢測**: 如果聽不到聲音,顯示「抱歉,好像沒有聲音,請重新錄製」 +- [ ] **表達流暢度分析**: 使用Speakace等第三方平台分析精準度、流利度、韻律 + +### 核心技術需求 +- [ ] **AI 服務選擇**: 確定主要 AI 模型供應商 +- [ ] **評分算法**: 建立五維度評分的具體邏輯 +- [ ] **即時反饋系統**: 目標響應時間 < 2秒 +- [ ] **成就觸發機制**: 於遊戲結束時,自動檢測並發放對應獎勵 +- [ ] **性能優化**: 確保響應時間穩定 + +### 品質控制 +- [ ] **準確性測試**: 驗證評分結果的一致性 +- [ ] **用戶體驗**: 確保獎勵系統運作順暢 +- [ ] **資料隱私**: 基本的用戶資料保護 + +## 應用場景 + +### 情境對話訓練 +- 即時評分每句對話的口說表現 +- 結算時提供詳細的改善建議 + +### 詞彙學習口說關卡 +- 評估詞彙例句的發音準確度 +- 消耗5鑽石進行口說評分訓練 + +### 發音練習功能 +- 針對特定音素提供專項練習 +- 追蹤發音改善進度 + +### AI訂正系統 +- 表達不順的句子重錄和練習 +- 透過重複練習提升表達流暢度 + +--- + +**最後更新**: 2025-09-11 - 獨立拆分口說評分系統規格 +**版本**: 1.0 - 初版:從AI算法規格中獨立模組化 +**維護者**: Drama Ling 開發團隊 \ No newline at end of file diff --git a/docs/02_design/ui-ux-guidelines.md b/docs/02_design/function-specs/common/ui-ux-guidelines.md similarity index 97% rename from docs/02_design/ui-ux-guidelines.md rename to docs/02_design/function-specs/common/ui-ux-guidelines.md index e5731b9..e3fb1f2 100644 --- a/docs/02_design/ui-ux-guidelines.md +++ b/docs/02_design/function-specs/common/ui-ux-guidelines.md @@ -18,17 +18,17 @@ - [ ] **即時回饋**: 提供即時的視覺和互動回饋 - [ ] **個人化體驗**: 基於用戶偏好和程度調整介面 - [ ] **無障礙設計**: 確保不同能力用戶都能順利使用 -- [ ] **智慧輔助** *(新增)*: 在適當時機提供非侵入性的學習輔助 -- [ ] **漸進引導** *(新增)*: 從輔助學習逐步過渡到獨立表達 -- [ ] **雙重任務可視化** *(新增)*: 清晰展示劇情任務和詞彙要求的完成狀態 -- [ ] **時間壓力管理** *(新增)*: 300秒限時挑戰的直觀計時和警告系統 -- [ ] **即時成就反饋** *(新增)*: 任務完成和詞彙使用的立即慶祝動畫 -- [ ] **開場對話體驗** *(新增)*: 4-8句開場對話的漸進顯示效果 -- [ ] **語音優先設計** *(新增)*: 以語音輸入為主、文字輸入為輔的交互設計 -- [ ] **即時語法反饋** *(新增)*: 每句話的語法正確性即時顯示於對話功能欄 -- [ ] **詞彙學習流程** *(新增)*: 詞彙展示→選擇題→例句重組→配對練習的漸進式學習 -- [ ] **命條生命系統** *(新增)*: 直觀的生命值顯示和消耗反饋 -- [ ] **間隔複習提醒** *(新增)*: 智慧提醒用戶進行詞彙複習的時機 +- [ ] **智慧輔助** : 在適當時機提供非侵入性的學習輔助 +- [ ] **漸進引導** : 從輔助學習逐步過渡到獨立表達 +- [ ] **雙重任務可視化** : 清晰展示劇情任務和詞彙要求的完成狀態 +- [ ] **時間壓力管理** : 300秒對話挑戰的直觀計時和警告系統 +- [ ] **即時成就反饋** : 任務完成和詞彙使用的立即慶祝動畫 +- [ ] **開場對話體驗** : 4-8句開場對話的漸進顯示效果 +- [ ] **語音優先設計** : 以語音輸入為主、文字輸入為輔的交互設計 +- [ ] **即時語法反饋** : 每句話的語法正確性即時顯示於對話功能欄 +- [ ] **詞彙學習流程** : 詞彙展示→選擇題→例句重組→配對練習的漸進式學習 +- [ ] **命條生命系統** : 直觀的生命值顯示和消耗反饋 +- [ ] **間隔複習提醒** : 智慧提醒用戶進行詞彙複習的時機 ## 視覺設計系統 diff --git a/docs/02_design/function-specs/common/user-flow-diagrams.md b/docs/02_design/function-specs/common/user-flow-diagrams.md new file mode 100644 index 0000000..47af345 --- /dev/null +++ b/docs/02_design/function-specs/common/user-flow-diagrams.md @@ -0,0 +1,779 @@ +# Drama Ling 完整用戶流程圖 + +**文檔名稱**: 基於現行規格的完整用戶流程設計 +**建立日期**: 2025-09-10 +**基於規格**: `/docs/02_design/function-specs/` 完整規格 +**涵蓋平台**: Mobile App + Web App + +## 🎯 總體用戶流程概覽 + +```mermaid +graph TD + START([用戶訪問應用]) --> AUTH_CHECK{已登入?} + + AUTH_CHECK -->|否| AUTH_FLOW[認證流程] + AUTH_CHECK -->|是| MAIN_APP[主應用程序] + + AUTH_FLOW --> REGISTER[註冊流程] + AUTH_FLOW --> LOGIN[登入流程] + AUTH_FLOW --> FORGOT[忘記密碼] + + REGISTER --> PROFILE_SETUP[個人資料設定] + LOGIN --> MAIN_APP + FORGOT --> RESET_PASSWORD[密碼重設] + + PROFILE_SETUP --> ONBOARDING[新手引導] + RESET_PASSWORD --> LOGIN + + ONBOARDING --> MAIN_APP + + MAIN_APP --> LEARNING_MAP[學習地圖] + MAIN_APP --> VOCAB[詞彙學習] + MAIN_APP --> DIALOGUE[情境對話] + MAIN_APP --> SHOP[道具商店] + MAIN_APP --> PROFILE[個人資料] + + style START fill:#e1f5fe + style MAIN_APP fill:#c8e6c9 + style AUTH_FLOW fill:#fff3e0 + style LEARNING_MAP fill:#f3e5f5 + style VOCAB fill:#e8f5e8 + style DIALOGUE fill:#fff9c4 + style SHOP fill:#fce4ec +``` + +## 🔐 用戶認證流程 + +### 完整認證流程圖 + +```mermaid +graph TD + LANDING[Landing Page] --> LOGIN_CHOICE{選擇登入方式} + + LOGIN_CHOICE -->|新用戶| REGISTER_START[開始註冊] + LOGIN_CHOICE -->|舊用戶| LOGIN_START[開始登入] + LOGIN_CHOICE -->|第三方| OAUTH[第三方認證] + + %% 註冊流程 + REGISTER_START --> EMAIL_INPUT[輸入Email] + EMAIL_INPUT --> EMAIL_VERIFY[Email驗證] + EMAIL_VERIFY --> PASSWORD_SET[設定密碼] + PASSWORD_SET --> PROFILE_INFO[基本資料] + PROFILE_INFO --> LEARNING_LEVEL[學習程度設定] + LEARNING_LEVEL --> TRIAL_OFFER[試用方案選擇] + + %% 登入流程 + LOGIN_START --> CREDENTIALS[輸入帳密] + CREDENTIALS --> LOGIN_VERIFY[驗證登入] + LOGIN_VERIFY -->|成功| CHECK_SUBSCRIPTION[檢查訂閱狀態] + LOGIN_VERIFY -->|失敗| LOGIN_ERROR[登入錯誤處理] + LOGIN_ERROR --> FORGOT_PASSWORD[忘記密碼?] + + %% 第三方登入 + OAUTH --> OAUTH_VERIFY[第三方驗證] + OAUTH_VERIFY --> ACCOUNT_LINK[帳戶關聯] + + %% 最終導向 + TRIAL_OFFER --> WELCOME_SCREEN[歡迎頁面] + CHECK_SUBSCRIPTION --> WELCOME_SCREEN + ACCOUNT_LINK --> WELCOME_SCREEN + FORGOT_PASSWORD --> PASSWORD_RESET[密碼重設流程] + PASSWORD_RESET --> LOGIN_START + + WELCOME_SCREEN --> MAIN_DASHBOARD[主控制台] + + style REGISTER_START fill:#e8f5e8 + style LOGIN_START fill:#fff3e0 + style OAUTH fill:#f3e5f5 + style WELCOME_SCREEN fill:#c8e6c9 +``` + +### 用戶角色與權限流程 + +```mermaid +graph LR + USER_LOGIN[用戶登入] --> ROLE_CHECK{檢查用戶角色} + + ROLE_CHECK -->|免費用戶| FREE_USER[免費用戶權限] + ROLE_CHECK -->|試用用戶| TRIAL_USER[試用用戶權限] + ROLE_CHECK -->|訂閱用戶| SUBSCRIBER[訂閱用戶權限] + ROLE_CHECK -->|管理員| ADMIN[管理員權限] + + FREE_USER --> FREE_LIMITS[基礎對話練習 3次/日
基礎詞庫
簡化版報告] + TRIAL_USER --> TRIAL_LIMITS[無限對話練習(7天)
完整詞庫
詳細版報告
離線模式] + SUBSCRIBER --> SUB_LIMITS[無限制存取
完整功能
詳細分析
數據匯出] + ADMIN --> ADMIN_LIMITS[完整管理功能
系統監控
用戶管理] + + style FREE_USER fill:#ffebee + style TRIAL_USER fill:#fff3e0 + style SUBSCRIBER fill:#e8f5e8 + style ADMIN fill:#e3f2fd +``` + +## 🗺️ 學習地圖流程 + +### 學習路徑導航流程 + +```mermaid +graph TD + MAP_ENTRY[進入學習地圖] --> PROGRESS_LOAD[載入學習進度] + PROGRESS_LOAD --> MAP_OVERVIEW[地圖總覽顯示] + + MAP_OVERVIEW --> LEVEL_SELECT{選擇關卡} + + LEVEL_SELECT -->|已解鎖| LEVEL_AVAILABLE[可用關卡] + LEVEL_SELECT -->|未解鎖| LEVEL_LOCKED[鎖定關卡] + LEVEL_SELECT -->|已完成| LEVEL_COMPLETED[已完成關卡] + + LEVEL_AVAILABLE --> LEVEL_DETAILS[關卡詳情頁] + LEVEL_LOCKED --> UNLOCK_CONDITION[解鎖條件說明] + LEVEL_COMPLETED --> REVIEW_OPTION{重複練習?} + + LEVEL_DETAILS --> DIFFICULTY_SELECT[選擇難度] + UNLOCK_CONDITION --> PROGRESS_NEEDED[需要完成的前置關卡] + REVIEW_OPTION -->|是| LEVEL_DETAILS + REVIEW_OPTION -->|否| ACHIEVEMENT_CHECK[查看成就] + + DIFFICULTY_SELECT --> LEARNING_TYPE{學習類型} + PROGRESS_NEEDED --> MAP_OVERVIEW + + LEARNING_TYPE -->|詞彙學習| VOCAB_FLOW[進入詞彙學習] + LEARNING_TYPE -->|情境對話| DIALOGUE_FLOW[進入對話練習] + + ACHIEVEMENT_CHECK --> BADGE_DISPLAY[徽章展示] + BADGE_DISPLAY --> MAP_OVERVIEW + + style MAP_ENTRY fill:#f3e5f5 + style LEVEL_AVAILABLE fill:#e8f5e8 + style LEVEL_LOCKED fill:#ffebee + style LEVEL_COMPLETED fill:#fff3e0 +``` + +### 成就系統流程 + +```mermaid +graph LR + ACHIEVEMENT_TRIGGER[成就觸發事件] --> ACHIEVEMENT_CHECK{檢查成就條件} + + ACHIEVEMENT_CHECK -->|達成| ACHIEVEMENT_UNLOCK[解鎖成就] + ACHIEVEMENT_CHECK -->|未達成| PROGRESS_UPDATE[更新進度] + + ACHIEVEMENT_UNLOCK --> REWARD_GRANT[發放獎勵] + REWARD_GRANT --> NOTIFICATION[成就通知] + + NOTIFICATION --> BADGE_ADD[添加徽章] + BADGE_ADD --> XP_REWARD[經驗值獎勵] + XP_REWARD --> DIAMOND_REWARD[鑽石獎勵] + + DIAMOND_REWARD --> ACHIEVEMENT_GALLERY[成就畫廊更新] + PROGRESS_UPDATE --> ACHIEVEMENT_GALLERY + + style ACHIEVEMENT_UNLOCK fill:#e8f5e8 + style REWARD_GRANT fill:#fff3e0 + style BADGE_ADD fill:#f3e5f5 +``` + +## 📚 詞彙學習流程 + +### 完整詞彙學習流程 + +```mermaid +graph TD + VOCAB_START[開始詞彙學習] --> VOCAB_TYPE{選擇學習模式} + + VOCAB_TYPE -->|新詞學習| NEW_VOCAB[新詞彙介紹] + VOCAB_TYPE -->|複習模式| REVIEW_VOCAB[複習詞彙] + VOCAB_TYPE -->|測驗模式| TEST_VOCAB[詞彙測驗] + + %% 新詞學習流程 + NEW_VOCAB --> VOCAB_INTRO[詞彙介紹頁面] + VOCAB_INTRO --> PRONUNCIATION[發音播放] + PRONUNCIATION --> EXAMPLES[例句展示] + EXAMPLES --> MEMORY_TIPS[記憶提示] + MEMORY_TIPS --> PRACTICE_START[開始練習] + + %% 複習模式流程 + REVIEW_VOCAB --> DUE_CHECK[檢查待複習詞彙] + DUE_CHECK -->|有待複習| REVIEW_SESSION[複習會話] + DUE_CHECK -->|無待複習| NO_REVIEW[沒有待複習詞彙] + NO_REVIEW --> NEW_VOCAB + + %% 測驗模式流程 + TEST_VOCAB --> TEST_TYPE{選擇測驗類型} + TEST_TYPE -->|選擇題| CHOICE_TEST[選擇題測驗] + TEST_TYPE -->|配對題| MATCHING_TEST[配對測驗] + TEST_TYPE -->|填空題| FILL_BLANK[填空測驗] + + %% 練習流程 + PRACTICE_START --> PRACTICE_TYPE{練習類型} + REVIEW_SESSION --> PRACTICE_TYPE + CHOICE_TEST --> PRACTICE_TYPE + MATCHING_TEST --> PRACTICE_TYPE + FILL_BLANK --> PRACTICE_TYPE + + PRACTICE_TYPE -->|選擇題練習| CHOICE_PRACTICE[選擇題練習] + PRACTICE_TYPE -->|流暢度配對| FLUENCY_MATCHING[流暢度配對] + PRACTICE_TYPE -->|句子重組| SENTENCE_REORG[句子重組] + + %% 答題處理 + CHOICE_PRACTICE --> ANSWER_CHECK{答案檢查} + FLUENCY_MATCHING --> ANSWER_CHECK + SENTENCE_REORG --> ANSWER_CHECK + + ANSWER_CHECK -->|正確| CORRECT_FEEDBACK[正確回饋] + ANSWER_CHECK -->|錯誤| INCORRECT_FEEDBACK[錯誤回饋] + + CORRECT_FEEDBACK --> XP_GAIN[經驗值獲得] + INCORRECT_FEEDBACK --> LIFE_CONSUME[消耗命條] + + XP_GAIN --> PROGRESS_UPDATE[更新學習進度] + LIFE_CONSUME --> LIFE_CHECK{命條檢查} + + LIFE_CHECK -->|命條>0| PROGRESS_UPDATE + LIFE_CHECK -->|命條=0| LIFE_DEPLETED[命條耗盡] + + PROGRESS_UPDATE --> MASTERY_CHECK{掌握度檢查} + + MASTERY_CHECK -->|未掌握| CONTINUE_PRACTICE[繼續練習] + MASTERY_CHECK -->|已掌握| MASTERY_ACHIEVED[詞彙掌握] + + CONTINUE_PRACTICE --> PRACTICE_TYPE + MASTERY_ACHIEVED --> SESSION_COMPLETE[學習會話完成] + LIFE_DEPLETED --> LIFE_RECOVER[命條恢復選項] + + LIFE_RECOVER --> WATCH_AD[觀看廣告] + LIFE_RECOVER --> BUY_LIVES[購買命條] + LIFE_RECOVER --> WAIT_TIMER[等待恢復] + + WATCH_AD --> PRACTICE_TYPE + BUY_LIVES --> SHOP_FLOW[前往商店] + WAIT_TIMER --> END_SESSION[結束會話] + + SESSION_COMPLETE --> RESULTS_DISPLAY[結果展示] + END_SESSION --> RESULTS_DISPLAY + + style NEW_VOCAB fill:#e8f5e8 + style REVIEW_VOCAB fill:#fff3e0 + style TEST_VOCAB fill:#f3e5f5 + style CORRECT_FEEDBACK fill:#c8e6c9 + style INCORRECT_FEEDBACK fill:#ffcdd2 + style LIFE_DEPLETED fill:#ffebee +``` + +### 間隔複習算法流程 + +```mermaid +graph TD + WORD_REVIEW[詞彙複習] --> ANSWER_QUALITY{回答品質評估} + + ANSWER_QUALITY -->|Again(1)| RESET_INTERVAL[重置間隔 = 1天] + ANSWER_QUALITY -->|Hard(2)| HARD_INTERVAL[間隔 × 1.2] + ANSWER_QUALITY -->|Good(3)| GOOD_INTERVAL[間隔 × ease_factor] + ANSWER_QUALITY -->|Easy(4)| EASY_INTERVAL[間隔 × ease_factor × 1.3] + + RESET_INTERVAL --> UPDATE_EASE_FACTOR[更新容易度因子] + HARD_INTERVAL --> UPDATE_EASE_FACTOR + GOOD_INTERVAL --> UPDATE_EASE_FACTOR + EASY_INTERVAL --> UPDATE_EASE_FACTOR + + UPDATE_EASE_FACTOR --> CALCULATE_NEXT[計算下次複習時間] + CALCULATE_NEXT --> UPDATE_MASTERY[更新掌握度] + + UPDATE_MASTERY --> MASTERY_CHECK{掌握度 ≥ 80%?} + MASTERY_CHECK -->|是| MASTERED[標記為已掌握] + MASTERY_CHECK -->|否| SCHEDULE_NEXT[安排下次複習] + + MASTERED --> GRADUATION[從複習池移除] + SCHEDULE_NEXT --> REVIEW_QUEUE[加入複習佇列] + + style RESET_INTERVAL fill:#ffcdd2 + style HARD_INTERVAL fill:#fff3e0 + style GOOD_INTERVAL fill:#e8f5e8 + style EASY_INTERVAL fill:#c8e6c9 + style MASTERED fill:#a5d6a7 +``` + +## 💬 情境對話流程 + +### 完整對話練習流程 + +```mermaid +graph TD + DIALOGUE_START[開始對話練習] --> SCENARIO_SELECT[選擇對話場景] + SCENARIO_SELECT --> CHARACTER_INTRO[角色介紹] + CHARACTER_INTRO --> CONTEXT_SETUP[情境背景說明] + CONTEXT_SETUP --> KEYWORDS_PREVIEW[關鍵詞預覽] + + KEYWORDS_PREVIEW --> DIALOGUE_BEGIN[開始對話] + DIALOGUE_BEGIN --> AI_RESPONSE[AI角色回應] + AI_RESPONSE --> USER_INPUT{用戶輸入方式} + + USER_INPUT -->|文字輸入| TEXT_INPUT[文字輸入框] + USER_INPUT -->|語音輸入| VOICE_INPUT[語音輸入] + USER_INPUT -->|選擇回應| QUICK_REPLY[快速回應選項] + + TEXT_INPUT --> INPUT_ANALYSIS[輸入分析] + VOICE_INPUT --> SPEECH_RECOGNITION[語音識別] + QUICK_REPLY --> INPUT_ANALYSIS + + SPEECH_RECOGNITION --> PRONUNCIATION_CHECK[發音檢查] + PRONUNCIATION_CHECK --> INPUT_ANALYSIS + + INPUT_ANALYSIS --> AI_EVALUATION[AI評估回應] + AI_EVALUATION --> GRAMMAR_CHECK[語法檢查] + GRAMMAR_CHECK --> SEMANTIC_CHECK[語意檢查] + SEMANTIC_CHECK --> CONTEXT_CHECK[情境適配檢查] + + CONTEXT_CHECK --> FEEDBACK_GENERATE[生成回饋] + FEEDBACK_GENERATE --> RESPONSE_QUALITY{回應品質} + + RESPONSE_QUALITY -->|優秀| EXCELLENT_FEEDBACK[優秀回饋] + RESPONSE_QUALITY -->|良好| GOOD_FEEDBACK[良好回饋] + RESPONSE_QUALITY -->|需改進| IMPROVEMENT_FEEDBACK[改進建議] + RESPONSE_QUALITY -->|不當| INAPPROPRIATE_FEEDBACK[不當回應處理] + + EXCELLENT_FEEDBACK --> HIGH_XP[高經驗值獲得] + GOOD_FEEDBACK --> MEDIUM_XP[中等經驗值] + IMPROVEMENT_FEEDBACK --> LOW_XP[低經驗值] + INAPPROPRIATE_FEEDBACK --> NO_XP[無經驗值] + + HIGH_XP --> DIALOGUE_CONTINUE{對話繼續?} + MEDIUM_XP --> DIALOGUE_CONTINUE + LOW_XP --> CORRECTION_OPTION[提供修正建議] + NO_XP --> LIFE_CONSUME[消耗命條] + + CORRECTION_OPTION --> DIALOGUE_CONTINUE + LIFE_CONSUME --> LIFE_CHECK{命條檢查} + + LIFE_CHECK -->|命條>0| DIALOGUE_CONTINUE + LIFE_CHECK -->|命條=0| DIALOGUE_END[對話結束] + + DIALOGUE_CONTINUE -->|是| NEXT_TURN[下一輪對話] + DIALOGUE_CONTINUE -->|否| DIALOGUE_COMPLETE[對話完成] + + NEXT_TURN --> AI_RESPONSE + DIALOGUE_COMPLETE --> DIALOGUE_ANALYSIS[對話分析] + DIALOGUE_END --> DIALOGUE_ANALYSIS + + DIALOGUE_ANALYSIS --> PERFORMANCE_REPORT[表現報告] + PERFORMANCE_REPORT --> GRAMMAR_ANALYSIS[語法分析] + GRAMMAR_ANALYSIS --> VOCABULARY_USAGE[詞彙使用分析] + VOCABULARY_USAGE --> FLUENCY_SCORE[流暢度評分] + FLUENCY_SCORE --> IMPROVEMENT_SUGGESTIONS[改進建議] + + IMPROVEMENT_SUGGESTIONS --> RESULTS_DISPLAY[結果展示] + + style EXCELLENT_FEEDBACK fill:#c8e6c9 + style GOOD_FEEDBACK fill:#e8f5e8 + style IMPROVEMENT_FEEDBACK fill:#fff3e0 + style INAPPROPRIATE_FEEDBACK fill:#ffcdd2 + style LIFE_CONSUME fill:#ffebee +``` + +### 對話AI分析流程 + +```mermaid +graph LR + USER_INPUT[用戶輸入] --> NLP_PROCESSING[NLP處理] + NLP_PROCESSING --> TOKENIZATION[詞元化] + TOKENIZATION --> POS_TAGGING[詞性標註] + POS_TAGGING --> SYNTAX_ANALYSIS[語法分析] + + SYNTAX_ANALYSIS --> GRAMMAR_CHECK[語法檢查] + SYNTAX_ANALYSIS --> SEMANTIC_ANALYSIS[語意分析] + SYNTAX_ANALYSIS --> CONTEXT_MATCHING[情境匹配] + + GRAMMAR_CHECK --> SCORE_GRAMMAR[語法分數] + SEMANTIC_ANALYSIS --> SCORE_SEMANTIC[語意分數] + CONTEXT_MATCHING --> SCORE_CONTEXT[情境分數] + + SCORE_GRAMMAR --> OVERALL_SCORE[總體評分] + SCORE_SEMANTIC --> OVERALL_SCORE + SCORE_CONTEXT --> OVERALL_SCORE + + OVERALL_SCORE --> FEEDBACK_GENERATION[回饋生成] + FEEDBACK_GENERATION --> AI_RESPONSE[AI回應生成] + + style NLP_PROCESSING fill:#e1f5fe + style OVERALL_SCORE fill:#e8f5e8 + style AI_RESPONSE fill:#f3e5f5 +``` + +## 🛒 道具商店流程 + +### 完整商店購買流程 + +```mermaid +graph TD + SHOP_ENTER[進入商店] --> SHOP_CATEGORIES[商品分類] + SHOP_CATEGORIES --> CATEGORY_SELECT{選擇分類} + + CATEGORY_SELECT -->|命條道具| LIFE_ITEMS[命條相關道具] + CATEGORY_SELECT -->|學習道具| LEARNING_ITEMS[學習增效道具] + CATEGORY_SELECT -->|裝飾道具| COSMETIC_ITEMS[裝飾道具] + CATEGORY_SELECT -->|訂閱服務| SUBSCRIPTION_PLANS[訂閱方案] + + LIFE_ITEMS --> ITEM_DETAILS[道具詳情頁] + LEARNING_ITEMS --> ITEM_DETAILS + COSMETIC_ITEMS --> ITEM_DETAILS + SUBSCRIPTION_PLANS --> PLAN_DETAILS[方案詳情頁] + + ITEM_DETAILS --> PURCHASE_CHECK{購買檢查} + PLAN_DETAILS --> SUBSCRIPTION_CHECK{訂閱檢查} + + PURCHASE_CHECK -->|鑽石足夠| CONFIRM_PURCHASE[確認購買] + PURCHASE_CHECK -->|鑽石不足| INSUFFICIENT_DIAMONDS[鑽石不足] + + SUBSCRIPTION_CHECK -->|可訂閱| SUBSCRIPTION_PAYMENT[訂閱付款] + SUBSCRIPTION_CHECK -->|已訂閱| ALREADY_SUBSCRIBED[已有訂閱] + + INSUFFICIENT_DIAMONDS --> DIAMOND_PURCHASE[購買鑽石] + ALREADY_SUBSCRIBED --> MANAGE_SUBSCRIPTION[管理訂閱] + + CONFIRM_PURCHASE --> PAYMENT_PROCESS[處理付款] + SUBSCRIPTION_PAYMENT --> PAYMENT_GATEWAY[付款閘道] + DIAMOND_PURCHASE --> PAYMENT_GATEWAY + + PAYMENT_PROCESS --> DIAMOND_DEDUCTION[扣除鑽石] + PAYMENT_GATEWAY --> PAYMENT_VERIFY[驗證付款] + + DIAMOND_DEDUCTION --> ITEM_DELIVERY[道具發放] + PAYMENT_VERIFY -->|成功| PAYMENT_SUCCESS[付款成功] + PAYMENT_VERIFY -->|失敗| PAYMENT_FAILED[付款失敗] + + PAYMENT_SUCCESS --> DIAMOND_CREDIT[鑽石入帳/訂閱啟用] + PAYMENT_FAILED --> PAYMENT_RETRY[重試付款] + + DIAMOND_CREDIT --> PURCHASE_COMPLETE[購買完成] + ITEM_DELIVERY --> INVENTORY_UPDATE[更新道具庫存] + PAYMENT_RETRY --> PAYMENT_GATEWAY + + INVENTORY_UPDATE --> PURCHASE_COMPLETE + PURCHASE_COMPLETE --> TRANSACTION_RECORD[交易記錄] + TRANSACTION_RECORD --> SHOP_RETURN[返回商店] + + MANAGE_SUBSCRIPTION --> CANCEL_SUBSCRIPTION[取消訂閱] + MANAGE_SUBSCRIPTION --> UPGRADE_SUBSCRIPTION[升級訂閱] + + style INSUFFICIENT_DIAMONDS fill:#ffebee + style PAYMENT_SUCCESS fill:#e8f5e8 + style PAYMENT_FAILED fill:#ffcdd2 + style PURCHASE_COMPLETE fill:#c8e6c9 +``` + +### 虛擬貨幣經濟流程 + +```mermaid +graph LR + CURRENCY_SOURCES[貨幣來源] --> EARN_DIAMONDS{鑽石獲得} + CURRENCY_SOURCES --> EARN_XP{經驗值獲得} + CURRENCY_SOURCES --> EARN_COINS{學習幣獲得} + + EARN_DIAMONDS -->|每日登入| DAILY_LOGIN[每日獎勵: 2鑽石] + EARN_DIAMONDS -->|完成成就| ACHIEVEMENT_REWARD[成就獎勵: 10-50鑽石] + EARN_DIAMONDS -->|觀看廣告| AD_REWARD[廣告獎勵: 1鑽石/次 max 5] + EARN_DIAMONDS -->|內購| IAP[應用內購買] + + EARN_XP -->|詞彙學習| VOCAB_XP[100 XP] + EARN_XP -->|對話練習| DIALOGUE_XP[200 XP] + EARN_XP -->|連續學習| STREAK_BONUS[20% 加成] + EARN_XP -->|完美表現| PERFECT_BONUS[50 XP] + + EARN_COINS -->|每日任務| DAILY_TASK[50 學習幣] + EARN_COINS -->|學習活動| STUDY_REWARD[基於表現] + + DAILY_LOGIN --> DIAMOND_WALLET[鑽石錢包] + ACHIEVEMENT_REWARD --> DIAMOND_WALLET + AD_REWARD --> DIAMOND_WALLET + IAP --> DIAMOND_WALLET + + VOCAB_XP --> XP_COUNTER[經驗值計數] + DIALOGUE_XP --> XP_COUNTER + STREAK_BONUS --> XP_COUNTER + PERFECT_BONUS --> XP_COUNTER + + DAILY_TASK --> COIN_WALLET[學習幣錢包] + STUDY_REWARD --> COIN_WALLET + + DIAMOND_WALLET --> SPENDING[消費項目] + XP_COUNTER --> LEVEL_SYSTEM[等級系統] + COIN_WALLET --> SPENDING + + style DAILY_LOGIN fill:#e8f5e8 + style ACHIEVEMENT_REWARD fill:#fff3e0 + style IAP fill:#f3e5f5 + style LEVEL_SYSTEM fill:#e1f5fe +``` + +## 🔄 命條系統流程 + +### 命條管理流程 + +```mermaid +graph TD + LIFE_SYSTEM[命條系統] --> LIFE_CHECK{當前命條狀態} + + LIFE_CHECK -->|充足 5個| FULL_LIVES[命條充足] + LIFE_CHECK -->|部分 1-4個| PARTIAL_LIVES[命條部分] + LIFE_CHECK -->|耗盡 0個| NO_LIVES[命條耗盡] + + FULL_LIVES --> LEARNING_ACTIVITY[學習活動] + PARTIAL_LIVES --> RECOVERY_OPTION{恢復選項} + NO_LIVES --> FORCED_RECOVERY[強制恢復選項] + + LEARNING_ACTIVITY --> ACTIVITY_RESULT{活動結果} + + ACTIVITY_RESULT -->|成功| SUCCESS_REWARD[成功獎勵] + ACTIVITY_RESULT -->|失敗| LIFE_CONSUME[消耗命條] + + SUCCESS_REWARD --> XP_GAIN[經驗值獲得] + LIFE_CONSUME --> LIFE_DEDUCTION[命條 -1] + + LIFE_DEDUCTION --> LIFE_CHECK + XP_GAIN --> LEARNING_ACTIVITY + + RECOVERY_OPTION -->|自然恢復| AUTO_RECOVERY[4小時自動恢復] + RECOVERY_OPTION -->|觀看廣告| WATCH_AD[觀看廣告恢復] + RECOVERY_OPTION -->|鑽石購買| BUY_LIVES[購買命條] + RECOVERY_OPTION -->|繼續學習| LEARNING_ACTIVITY + + FORCED_RECOVERY -->|觀看廣告| AD_RECOVERY[廣告恢復 +1命條] + FORCED_RECOVERY -->|鑽石購買| DIAMOND_RECOVERY[鑽石恢復 +5命條] + FORCED_RECOVERY -->|等待| WAIT_TIMER[等待4小時] + + AUTO_RECOVERY --> TIMER_CHECK{恢復計時器} + WATCH_AD --> AD_LIMIT_CHECK{廣告次數檢查} + BUY_LIVES --> DIAMOND_COST[50鑽石/命條] + + TIMER_CHECK -->|時間到| ADD_LIFE[+1命條] + TIMER_CHECK -->|未到時間| CONTINUE_TIMER[繼續計時] + + AD_LIMIT_CHECK -->|次數內 <3次/日| AD_REWARD_LIFE[+1命條] + AD_LIMIT_CHECK -->|超過次數| AD_LIMIT_REACHED[廣告次數已滿] + + DIAMOND_COST --> DIAMOND_CHECK{鑽石是否足夠} + DIAMOND_CHECK -->|足夠| PURCHASE_LIVES[購買成功 +1命條] + DIAMOND_CHECK -->|不足| INSUFFICIENT_DIAMONDS[鑽石不足] + + ADD_LIFE --> LIFE_CHECK + AD_REWARD_LIFE --> LIFE_CHECK + PURCHASE_LIVES --> LIFE_CHECK + AD_RECOVERY --> LIFE_CHECK + DIAMOND_RECOVERY --> LIFE_CHECK + + AD_LIMIT_REACHED --> FORCED_RECOVERY + INSUFFICIENT_DIAMONDS --> BUY_DIAMONDS[前往購買鑽石] + CONTINUE_TIMER --> AUTO_RECOVERY + WAIT_TIMER --> AUTO_RECOVERY + + style NO_LIVES fill:#ffebee + style LIFE_CONSUME fill:#ffcdd2 + style SUCCESS_REWARD fill:#e8f5e8 + style ADD_LIFE fill:#c8e6c9 + style PURCHASE_LIVES fill:#a5d6a7 +``` + +## 📊 學習分析與統計流程 + +### 學習數據收集與分析 + +```mermaid +graph TD + LEARNING_EVENT[學習事件發生] --> EVENT_CAPTURE[事件捕捉] + EVENT_CAPTURE --> DATA_CLASSIFICATION{數據分類} + + DATA_CLASSIFICATION -->|學習行為| BEHAVIOR_DATA[行為數據] + DATA_CLASSIFICATION -->|學習成果| PERFORMANCE_DATA[表現數據] + DATA_CLASSIFICATION -->|時間數據| TIME_DATA[時間數據] + DATA_CLASSIFICATION -->|錯誤數據| ERROR_DATA[錯誤數據] + + BEHAVIOR_DATA --> BEHAVIOR_ANALYSIS[行為分析] + PERFORMANCE_DATA --> PERFORMANCE_ANALYSIS[表現分析] + TIME_DATA --> TIME_ANALYSIS[時間分析] + ERROR_DATA --> ERROR_ANALYSIS[錯誤分析] + + BEHAVIOR_ANALYSIS --> LEARNING_PATTERN[學習模式識別] + PERFORMANCE_ANALYSIS --> PROGRESS_TRACKING[進度追蹤] + TIME_ANALYSIS --> EFFICIENCY_CALC[效率計算] + ERROR_ANALYSIS --> WEAKNESS_IDENTIFICATION[弱點識別] + + LEARNING_PATTERN --> PERSONALIZED_RECOMMENDATION[個人化推薦] + PROGRESS_TRACKING --> ACHIEVEMENT_TRACKING[成就追蹤] + EFFICIENCY_CALC --> OPTIMIZATION_SUGGESTION[優化建議] + WEAKNESS_IDENTIFICATION --> TARGETED_PRACTICE[針對性練習] + + PERSONALIZED_RECOMMENDATION --> DASHBOARD_UPDATE[儀表板更新] + ACHIEVEMENT_TRACKING --> DASHBOARD_UPDATE + OPTIMIZATION_SUGGESTION --> DASHBOARD_UPDATE + TARGETED_PRACTICE --> DASHBOARD_UPDATE + + DASHBOARD_UPDATE --> USER_INSIGHTS[用戶洞察展示] + + style LEARNING_EVENT fill:#e1f5fe + style DASHBOARD_UPDATE fill:#e8f5e8 + style USER_INSIGHTS fill:#c8e6c9 +``` + +## 🌍 跨平台功能流程差異 + +### Mobile vs Web 平台特有流程 + +```mermaid +graph TD + PLATFORM_CHECK[平台檢測] --> MOBILE{Mobile App} + PLATFORM_CHECK --> WEB{Web App} + + MOBILE -->|專有功能| MOBILE_FEATURES[Mobile專有功能] + WEB -->|專有功能| WEB_FEATURES[Web專有功能] + + MOBILE_FEATURES -->|觸覺回饋| HAPTIC_FEEDBACK[震動回饋] + MOBILE_FEATURES -->|推播通知| PUSH_NOTIFICATION[學習提醒] + MOBILE_FEATURES -->|相機掃描| CAMERA_SCAN[掃描書籍] + MOBILE_FEATURES -->|離線學習| OFFLINE_MODE[完全離線] + MOBILE_FEATURES -->|語音喚醒| VOICE_WAKE["Hey Drama"] + + WEB_FEATURES -->|多標籤| MULTI_TAB[多標籤學習] + WEB_FEATURES -->|快捷鍵| KEYBOARD_SHORTCUTS[鍵盤快捷鍵] + WEB_FEATURES -->|數據匯出| DATA_EXPORT[CSV/PDF匯出] + WEB_FEATURES -->|列印| PRINT_OPTIMIZE[學習報告列印] + WEB_FEATURES -->|多螢幕| MULTI_SCREEN[多顯示器支援] + WEB_FEATURES -->|即時協作| REAL_TIME_COLLAB[多人學習] + + %% 共同功能適配 + MOBILE -->|適配| MOBILE_ADAPT[Mobile適配] + WEB -->|適配| WEB_ADAPT[Web適配] + + MOBILE_ADAPT -->|觸控操作| TOUCH_INTERFACE[觸控介面] + MOBILE_ADAPT -->|小螢幕優化| SMALL_SCREEN[小螢幕布局] + MOBILE_ADAPT -->|原生感受| NATIVE_FEEL[原生體驗] + + WEB_ADAPT -->|滑鼠操作| MOUSE_INTERFACE[滑鼠介面] + WEB_ADAPT -->|大螢幕優化| LARGE_SCREEN[大螢幕布局] + WEB_ADAPT -->|瀏覽器整合| BROWSER_INTEGRATION[瀏覽器功能] + + style MOBILE_FEATURES fill:#e8f5e8 + style WEB_FEATURES fill:#f3e5f5 + style MOBILE_ADAPT fill:#fff3e0 + style WEB_ADAPT fill:#e1f5fe +``` + +## 🎯 完整用戶旅程地圖 + +### 新用戶完整學習旅程 + +```mermaid +graph TD + NEW_USER[新用戶訪問] --> FIRST_IMPRESSION[首次印象] + FIRST_IMPRESSION --> TRIAL_REGISTRATION[試用註冊] + TRIAL_REGISTRATION --> ONBOARDING[新手引導] + + ONBOARDING --> LEVEL_ASSESSMENT[程度評估] + LEVEL_ASSESSMENT --> LEARNING_PATH[學習路徑規劃] + LEARNING_PATH --> FIRST_LESSON[第一堂課] + + FIRST_LESSON --> VOCABULARY_INTRO[詞彙介紹] + VOCABULARY_INTRO --> DIALOGUE_PRACTICE[對話練習] + DIALOGUE_PRACTICE --> IMMEDIATE_FEEDBACK[即時回饋] + + IMMEDIATE_FEEDBACK --> SUCCESS_FEELING[成功感建立] + SUCCESS_FEELING --> HABIT_FORMATION[習慣養成] + + HABIT_FORMATION --> DAILY_PRACTICE{每日練習} + DAILY_PRACTICE -->|堅持| PROGRESS_VISIBLE[進度可見] + DAILY_PRACTICE -->|中斷| RE_ENGAGEMENT[重新參與] + + PROGRESS_VISIBLE --> ACHIEVEMENT_UNLOCK[成就解鎖] + ACHIEVEMENT_UNLOCK --> SOCIAL_SHARING[社交分享] + + RE_ENGAGEMENT --> PUSH_NOTIFICATION[推播提醒] + RE_ENGAGEMENT --> EMAIL_REMINDER[郵件提醒] + PUSH_NOTIFICATION --> COMEBACK_INCENTIVE[回歸獎勵] + EMAIL_REMINDER --> COMEBACK_INCENTIVE + + SOCIAL_SHARING --> COMMUNITY_ENGAGEMENT[社群參與] + COMEBACK_INCENTIVE --> DAILY_PRACTICE + + COMMUNITY_ENGAGEMENT --> LONG_TERM_ENGAGEMENT[長期參與] + LONG_TERM_ENGAGEMENT --> SUBSCRIPTION_CONSIDERATION[考慮訂閱] + + SUBSCRIPTION_CONSIDERATION --> PREMIUM_TRIAL[高級試用] + PREMIUM_TRIAL --> CONVERSION_DECISION{轉換決策} + + CONVERSION_DECISION -->|訂閱| PREMIUM_USER[付費用戶] + CONVERSION_DECISION -->|不訂閱| FREE_USER_JOURNEY[免費用戶旅程] + + PREMIUM_USER --> ADVANCED_FEATURES[高級功能體驗] + ADVANCED_FEATURES --> RETENTION[長期留存] + + FREE_USER_JOURNEY --> LIMITED_FEATURES[功能限制體驗] + LIMITED_FEATURES --> UPGRADE_PROMPTS[升級提示] + UPGRADE_PROMPTS --> CONVERSION_DECISION + + style NEW_USER fill:#e1f5fe + style SUCCESS_FEELING fill:#c8e6c9 + style ACHIEVEMENT_UNLOCK fill:#fff3e0 + style PREMIUM_USER fill:#a5d6a7 + style RETENTION fill:#4caf50 +``` + +## 📈 性能與監控流程 + +### 系統監控與錯誤處理 + +```mermaid +graph LR + SYSTEM_MONITOR[系統監控] --> METRICS_COLLECTION[指標收集] + METRICS_COLLECTION --> PERFORMANCE_ANALYSIS[性能分析] + PERFORMANCE_ANALYSIS --> THRESHOLD_CHECK{閾值檢查} + + THRESHOLD_CHECK -->|正常| NORMAL_OPERATION[正常運行] + THRESHOLD_CHECK -->|異常| ALERT_TRIGGER[告警觸發] + + ALERT_TRIGGER --> ERROR_CLASSIFICATION{錯誤分類} + ERROR_CLASSIFICATION -->|輕微| LOG_ERROR[記錄錯誤] + ERROR_CLASSIFICATION -->|嚴重| IMMEDIATE_ACTION[立即響應] + ERROR_CLASSIFICATION -->|致命| SYSTEM_RECOVERY[系統恢復] + + LOG_ERROR --> ERROR_TRACKING[錯誤追蹤] + IMMEDIATE_ACTION --> USER_NOTIFICATION[用戶通知] + SYSTEM_RECOVERY --> FALLBACK_MODE[降級模式] + + NORMAL_OPERATION --> CONTINUOUS_MONITORING[持續監控] + ERROR_TRACKING --> IMPROVEMENT_PLAN[改進計劃] + USER_NOTIFICATION --> ERROR_RESOLUTION[錯誤解決] + FALLBACK_MODE --> SERVICE_RESTORATION[服務恢復] + + style ALERT_TRIGGER fill:#fff3e0 + style IMMEDIATE_ACTION fill:#ffcdd2 + style SYSTEM_RECOVERY fill:#ffebee + style SERVICE_RESTORATION fill:#e8f5e8 +``` + +--- + +## 🎯 總結 + +本文檔基於 `/docs/02_design/function-specs/` 完整規格,繪製了Drama Ling語言學習應用的全套用戶流程圖,涵蓋: + +### ✅ **已包含的完整流程** +1. **認證系統流程** - 註冊、登入、角色權限管理 +2. **學習地圖流程** - 關卡導航、成就系統 +3. **詞彙學習流程** - 學習模式、間隔複習算法 +4. **情境對話流程** - AI對話分析、表現評估 +5. **道具商店流程** - 購買流程、虛擬貨幣經濟 +6. **命條系統流程** - 生命值管理、恢復機制 +7. **分析統計流程** - 數據收集、個人化推薦 +8. **跨平台差異** - Mobile vs Web 功能適配 +9. **用戶旅程地圖** - 從新用戶到長期留存 +10. **系統監控流程** - 性能監控、錯誤處理 + +### 📊 **規格一致性確認** +- ✅ 完全對應 5個核心功能模組 +- ✅ 涵蓋 Mobile + Web 雙平台特性 +- ✅ 整合共同業務規則和API規格 +- ✅ 包含完整的用戶角色權限邏輯 +- ✅ 反映平台功能對應表的差異化設計 + +**文檔狀態**: 🟢 已完成 +**基於版本**: function-specs v1.1 +**最後更新**: 2025-09-10 \ No newline at end of file diff --git a/docs/02_design/function-specs/mobile/01_situational-dialogue-mobile.md b/docs/02_design/function-specs/mobile/01_situational-dialogue-mobile.md index 77ed3cf..a15613a 100644 --- a/docs/02_design/function-specs/mobile/01_situational-dialogue-mobile.md +++ b/docs/02_design/function-specs/mobile/01_situational-dialogue-mobile.md @@ -25,7 +25,7 @@ - **詞彙學習系統**: 整合指定詞彙到對話情境中 - **學習地圖系統**: 提供情境對話的關卡和進度管理 - **道具商店系統**: 回覆提示道具、加時道具的商業整合 -- **命條系統**: 對話失敗消耗命條的生命管理機制 +- **命條系統**: 關卡啟動消耗命條的生命管理機制 - **排行榜系統**: 限時挑戰成績和社交競爭功能 ## 📱 涉及的UI畫面 @@ -51,7 +51,7 @@ #### 功能說明 - **畫面目的**: 提供沉浸式的情境對話體驗,支援多模態交互和即時反饋 - **進入條件**: 從學習地圖選擇關卡,或通過任務系統進入 -- **退出條件**: 完成對話任務、主動退出、或命條歸零失敗 +- **退出條件**: 完成對話任務、主動退出、或資源不足 #### 畫面欄位細節 @@ -64,7 +64,7 @@ | 劇情任務顯示區 | Object | 是 | - | 任務物件格式 | 有活躍任務時 | | 指定詞彙顯示區 | Array | 否 | [] | 詞彙陣列 | 有指定詞彙時 | | 300秒倒數計時器 | Number | 否 | 300 | 0-300秒 | 限時挑戰模式 | -| 命條顯示 | Number | 是 | 用戶當前命條 | 0-5 | 始終顯示 | +| 命條顯示 | Number | 是 | 用戶當前命條 | 依用戶等級而定 | 始終顯示 | | 鑽石數量顯示 | Number | 是 | 用戶當前鑽石 | ≥0 | 始終顯示 | #### 互動元素 @@ -90,8 +90,8 @@ #### 異常狀況處理 - **網路中斷**: 顯示重新連接提示 → 嘗試恢復對話狀態 → 保存當前進度 -- **輸入超時**: 限時模式下顯示時間警告 → 自動提交空回覆 → 扣除命條 -- **命條歸零**: 顯示失敗畫面 → 提供購買命條選項 → 或返回主畫面 +- **輸入超時**: 限時模式下顯示時間警告 → 自動提交空回覆 +- **命條不足**: 無法進入關卡 → 提供購買命條選項 → 或返回主畫面 - **語音識別失敗**: 顯示錯誤提示 → 提供重新錄音選項 → 或切換文字輸入 - **鑽石不足**: 回覆輔助功能時顯示不足提示 → 引導到商店購買 → 或提供免費替代方案 @@ -213,7 +213,7 @@ | 欄位名稱 | 資料類型 | 必填 | 預設值 | 驗證規則 | 顯示條件 | |---------|---------|------|--------|----------|----------| | 警告標題 | String | 是 | "確認退出挑戰?" | - | 始終顯示 | -| 後果說明 | String | 是 | "退出將失去當前進度並消耗1個命條" | - | 始終顯示 | +| 後果說明 | String | 是 | "退出將失去當前進度" | - | 始終顯示 | | 剩餘時間 | Number | 是 | 當前剩餘秒數 | 0-300 | 限時模式顯示 | | 確認退出按鈕 | Button | 是 | - | - | 始終顯示 | | 取消按鈕 | Button | 是 | - | - | 始終顯示 | @@ -238,7 +238,7 @@ ### 分支流程 - **回覆卡關**: 需要輔助 → UI_Reply_Assistance → 獲得引導 → 繼續對話 - **限時挑戰**: 300秒倒數 → 時間不足 → 使用加時道具 → 延長時間 -- **命條不足**: 闖關失敗 → 提供購買補命道具 → 或等待自然恢復 +- **命條不足**: 無法進入關卡 → 提供購買補命道具 → 或等待自然恢復 - **任務失敗**: 重新嘗試 → 或使用時光卷 → 挑戰前階段關卡 ### 錯誤流程 @@ -252,7 +252,7 @@ - **回覆提示道具**: 30鑽石/次,提供三層式智慧引導 - **300秒限時挑戰**: 首次免費,後續50鑽石/次入場費 - **加時道具**: 300鑽石,增加63秒挑戰時間 -- **命條購買**: 100鑽石/個,最多持有5個命條 +- **命條系統**: 詳細規格請參閱 → **[共同業務規則 - 命條系統](../common/business-rules.md#🎮-命條系統-life-points-system)** ### 遊戲化機制 - **雙重任務系統**: 劇情任務+指定詞彙使用,同時完成獲得雙倍獎勵 @@ -273,7 +273,7 @@ - [ ] 三維度評分算法驗證 - [ ] 任務完成判定邏輯測試 - [ ] 詞彙使用檢測準確性 -- [ ] 命條消耗和恢復機制 +- [ ] 命條消耗機制(參考業務規則) - [ ] 道具購買和使用流程 - [ ] 限時模式倒數計時精確性 @@ -309,7 +309,7 @@ - WebRTC語音功能需要HTTPS環境 - 對話數據需要即時同步到學習記錄 - 道具使用需要防重複消費機制 -- 命條系統需要跨模組數據一致性 +- 命條系統需要跨模組數據一致性(參考共同業務規則) ## 📚 參考資源 diff --git a/docs/02_design/function-specs/mobile/02_vocabulary-learning-mobile.md b/docs/02_design/function-specs/mobile/02_vocabulary-learning-mobile.md index d06b856..4853391 100644 --- a/docs/02_design/function-specs/mobile/02_vocabulary-learning-mobile.md +++ b/docs/02_design/function-specs/mobile/02_vocabulary-learning-mobile.md @@ -120,7 +120,7 @@ | 選項按鈕A-D | 單選按鈕 | 選擇答案選項 | 未選->已選 | 只能選擇一個選項 | | 確認答案按鈕 | 按鈕 | 提交當前選擇 | 正常->已提交 | 選擇選項後啟用 | | 題目發音按鈕 | 按鈕 | 播放題目中的詞彙 | 正常->播放中 | 聽力輔助功能 | -| 跳過題目按鈕 | 按鈕 | 跳過當前題目 | - | 記為答錯,扣命條 | +| 跳過題目按鈕 | 按鈕 | 跳過當前題目 | - | 允許跳過題目 | | 暫停練習按鈕 | 按鈕 | 暫停當前練習 | 進行中->暫停 | 保存當前進度 | | 退出練習按鈕 | 按鈕 | 退出練習模式 | - | 需要二次確認 | @@ -182,8 +182,8 @@ - **相關擴展**: 學習相關詞彙 → 詞彙族群學習 → 主題式詞彙掌握 ### 錯誤流程 -- **答題錯誤**: 顯示正確答案 → 提供解釋說明 → 加入錯題複習 → 扣除命條 -- **命條不足**: 學習中止 → 提供命條購買 → 或等待自然恢復 → 重新開始學習 +- **答題錯誤**: 顯示正確答案 → 提供解釋說明 → 加入錯題複習 +- **命條不足**: 學習無法啟動 → 提供命條購買 → 或等待自然恢復 → 重新開始學習 - **網路問題**: 保存學習進度 → 提供離線模式 → 同步恢復功能 ## 📊 商業邏輯規則 @@ -194,9 +194,10 @@ - **難度自適應**: 根據用戶表現自動調整後續詞彙難度 ### 命條消耗機制 -- **答錯題目**: 扣除1個命條 -- **跳過題目**: 視為答錯,扣除1個命條 -- **重複錯誤**: 同一詞彙反覆答錯繼續扣除命條 +> 詳細規格請參閱 → **[共同業務規則 - 命條系統](../common/business-rules.md#🎮-命條系統-life-points-system)** + +- **啟動關卡**: 進入詞彙學習關卡時消耗1個命條,無論答對答錯 +- **跳過題目**: 允許跳過,不額外扣除命條 ### 獎勵機制 - **完美通關**: 全對且用時短,獲得額外經驗值和鑽石獎勵 diff --git a/docs/02_design/function-specs/mobile/03_learning-map-mobile.md b/docs/02_design/function-specs/mobile/03_learning-map-mobile.md index 4ab21c5..f3932b1 100644 --- a/docs/02_design/function-specs/mobile/03_learning-map-mobile.md +++ b/docs/02_design/function-specs/mobile/03_learning-map-mobile.md @@ -8,11 +8,11 @@ **負責團隊**: 產品/設計/開發 ### 主要功能 -- 階段化學習路徑:13階段×20劇本×3關卡的完整學習架構 -- 順序解鎖機制:必須按順序完成前置關卡才能解鎖後續內容 -- 關卡選擇系統:支援詞彙認識、詞彙熟悉、對話訓練三種關卡類型 -- 進度可視化:清楚顯示當前學習進度和成就狀態 -- 星級評價系統:基於三維度表現給予1-3星評價 +- 階段化學習路徑:13階段×20劇本×4關卡的完整學習架構 +- 線性闖關機制:必須按 詞彙學習→詞彙熟悉→口說練習特別關卡→情境對話 順序闖關,特別關卡可跳過 +- 進度導航系統:地圖直接顯示當前可進行的關卡,無需選擇彈窗 +- 關卡狀態管理:🔒鎖定/⏳可進行/🔄進行中/✅已完成 四種狀態 +- 星級評價系統:基於各關卡特定標準給予1-3星評價 ### 適用場景 - 新用戶學習路徑規劃和引導 @@ -21,83 +21,89 @@ - 關卡成就的展示和炫耀 ### 與其他功能的關聯 -- **情境對話系統**: 地圖關卡跳轉到具體對話場景 -- **詞彙學習系統**: 地圖關卡跳轉到詞彙練習模組 -- **命條系統**: 關卡挑戰前檢查命條資源狀態 +- **線性闖關系統**: 依循 [線性闖關學習系統規格](../common/progressive-stage-system.md) 的四關順序 +- **詞彙學習系統**: 第1、2關的詞彙學習和熟悉訓練 +- **口說評分系統**: 第2+關的口說練習特別關卡評估 +- **情境對話系統**: 第3關的綜合對話應用 +- **命條系統**: 關卡啟動時的資源消耗管理 - **成就系統**: 關卡完成觸發成就和徽章解鎖 -- **訂閱系統**: VIP用戶可解鎖專屬關卡內容 ## 📱 涉及的UI畫面 ### 主要畫面 -1. **UI_Level_Map** - 學習地圖主畫面 -2. **UI_Level_Selection_Modal** - 關卡選擇彈窗 -3. **UI_Level_Selection_Modal_A** - 基礎關卡選擇界面 -4. **UI_Level_Selection_Modal_B** - 進階關卡選擇界面 +1. **UI_Level_Map** - 學習地圖主畫面 (線性闖關版) +2. **UI_Current_Level_Info** - 當前可進行關卡資訊面板 +3. **UI_Level_Progress_Detail** - 關卡進度詳情頁面 +4. **UI_Stage_Overview** - 階段總覽和劇本選擇 5. **UI_Level_Locked_Modal** - 關卡鎖定提示彈窗 ### 輔助畫面 -1. **UI_Cost_Confirm_Popup** - 關卡成本確認彈窗 +1. **UI_Cost_Confirm_Popup** - 口說練習特別關卡付費確認彈窗 2. **UI_Insufficient_Resources** - 資源不足提示頁面 -3. **UI_Task_Display** - 任務進度顯示組件 +3. **UI_Level_Status_Indicator** - 關卡狀態指示器組件 +4. **UI_Progress_Path_Visual** - 闖關路徑可視化組件 ## 🎯 詳細畫面規格 -### UI_Level_Map - 學習地圖主畫面 +### UI_Level_Map - 學習地圖主畫面 (線性闖關版) #### 功能說明 -- **畫面目的**: 為用戶提供完整的學習路徑導航,清楚展示13階段學習進度和關卡狀態 +- **畫面目的**: 展示線性闖關學習路徑,清楚標示13階段×20劇本×4關卡的進度狀態 - **進入條件**: 完成用戶註冊和等級評估,或從底部導航進入 -- **退出條件**: 選擇具體關卡進入學習,或切換到其他功能模組 +- **退出條件**: 直接進入當前可進行的關卡,或切換到其他功能模組 +- **核心變化**: 取消關卡選擇彈窗,地圖直接顯示下一個可進行的關卡 #### 畫面欄位細節 | 欄位名稱 | 資料類型 | 必填 | 預設值 | 驗證規則 | 顯示條件 | |---------|---------|------|--------|----------|----------| | 當前階段編號 | Number | 是 | 1 | 1-13 | 始終顯示 | +| 當前劇本編號 | Number | 是 | 1 | 1-20+ | 始終顯示 | +| 當前關卡類型 | String | 是 | "詞彙學習" | 關卡枚舉 | 始終顯示 | | 階段名稱 | String | 是 | - | 5-50字 | 始終顯示 | +| 劇本標題 | String | 是 | - | 3-30字 | 始終顯示 | | 階段背景圖 | Image URL | 是 | - | 有效圖片格式 | 始終顯示 | | 階段完成度 | Number | 是 | 0 | 0-100% | 始終顯示 | -| 可用劇本數量 | Number | 是 | 0 | 0-20+ | 始終顯示 | +| 劇本完成度 | Number | 是 | 0 | 0-100% | 始終顯示 | | 已完成關卡數 | Number | 是 | 0 | ≥0 | 始終顯示 | -| 總關卡數 | Number | 是 | 60 | ≥60 | 始終顯示 | +| 總關卡數 | Number | 是 | 80 | ≥80 | 始終顯示 (4關×20劇本) | | 累積星數 | Number | 是 | 0 | ≥0 | 始終顯示 | | 連續學習天數 | Number | 是 | 0 | ≥0 | 始終顯示 | | 用戶命條數量 | Number | 是 | 5 | 0-5 | 始終顯示 | | 用戶鑽石數量 | Number | 是 | 0 | ≥0 | 始終顯示 | -| 今日推薦關卡 | Object | 否 | null | 關卡物件 | 有推薦時顯示 | -| 特殊活動關卡 | Array | 否 | [] | 活動陣列 | 有活動時顯示 | +| 下一關卡資訊 | Object | 是 | - | 關卡物件 | 始終顯示 | +| 四關進度狀態 | Array | 是 | [] | 狀態陣列 | 始終顯示 | #### 互動元素 | 元素名稱 | 元素類型 | 點擊行為 | 狀態變化 | 備註 | |---------|---------|----------|----------|------| -| 關卡節點 | 六角形按鈕 | 開啟關卡選擇彈窗 | 正常->選中 | 不同狀態有不同顏色 | -| 上一階段按鈕 | 按鈕 | 切換到上一學習階段 | - | 第1階段時禁用 | -| 下一階段按鈕 | 按鈕 | 切換到下一學習階段 | - | 未解鎖時禁用 | -| 階段選擇下拉 | 下拉選單 | 快速跳轉到指定階段 | - | 只顯示已解鎖階段 | -| 進度總覽按鈕 | 按鈕 | 查看整體學習統計 | - | 跳轉到個人中心 | -| 每日任務按鈕 | 按鈕 | 查看今日學習任務 | - | 跳轉到任務系統 | -| 好友排行按鈕 | 按鈕 | 查看好友學習排名 | - | 跳轉到排行榜 | -| 設定按鈕 | 按鈕 | 開啟學習設定選項 | - | 個人化學習參數 | +| 當前可進行關卡 | 大型卡片按鈕 | 直接進入關卡 | - | 清楚標示關卡類型和要求 | +| 四關進度指示器 | 進度條組件 | 查看劇本四關進度 | - | 🔒鎖定/⏳可進行/🔄進行中/✅已完成 | +| 劇本選擇區域 | 水平滾動列表 | 查看其他劇本進度 | - | 只顯示已解鎖劇本 | +| 階段切換按鈕 | 按鈕組 | 切換到其他階段 | - | 未解鎖階段禁用 | +| 學習統計面板 | 資訊卡片 | 查看詳細學習數據 | - | 展開/收合統計資訊 | +| 時光關卡按鈕 | 特殊按鈕 | 使用時光卷挑戰 | - | 需要時光卷道具 | +| 每日任務指示 | 提示標誌 | 查看今日學習任務 | - | 跳轉到任務系統 | +| 成就通知 | 浮動提示 | 查看新獲得成就 | - | 自動消失或手動關閉 | -#### 使用者操作流程 -1. **地圖瀏覽**: 進入地圖 → 查看當前階段 → 瀏覽可用關卡 → 查看學習進度 -2. **關卡選擇**: 點擊關卡節點 → 確認關卡類型 → 檢查資源需求 → 確認進入 -3. **階段切換**: 使用階段按鈕 → 或下拉選單 → 快速跳轉到目標階段 → 查看新階段內容 -4. **進度查看**: 檢查完成度 → 查看星級評價 → 確認下一個目標 → 規劃學習計劃 +#### 使用者操作流程 (線性闖關版) +1. **進度確認**: 進入地圖 → 查看當前階段和劇本 → 確認四關進度狀態 +2. **直接闖關**: 點擊當前可進行關卡 → 確認資源需求 → 直接進入關卡 +3. **劇本瀏覽**: 查看四關進度指示器 → 了解完成狀況 → 規劃後續學習 +4. **階段導航**: 完成劇本後 → 自動解鎖下一劇本 → 或切換到其他階段 #### 異常狀況處理 - **資源不足**: 顯示資源不足提示 → 引導到商店購買 → 或提供免費獲得方式 - **網路中斷**: 顯示離線模式 → 載入快取內容 → 恢復連線時同步進度 - **關卡載入失敗**: 顯示載入錯誤 → 提供重試選項 → 或跳到其他可用關卡 -### UI_Level_Selection_Modal - 關卡選擇彈窗 +### UI_Current_Level_Info - 當前可進行關卡資訊面板 #### 功能說明 -- **畫面目的**: 當用戶點擊地圖關卡時,顯示該關卡的詳細資訊和不同類型的學習選項 -- **進入條件**: 從學習地圖點擊任意關卡節點 -- **退出條件**: 選擇具體關卡類型進入學習,或取消關閉彈窗 +- **畫面目的**: 清楚展示當前可進行關卡的詳細資訊,引導用戶直接進入學習 +- **進入條件**: 學習地圖主畫面的核心組件,始終可見 +- **顯示邏輯**: 根據四關線性闖關進度,自動顯示下一個可進行的關卡資訊 #### 畫面欄位細節 @@ -189,8 +195,12 @@ - **連續獎勵**: 7天連續、14天連續、30天連續分別給予不同獎勵 ### 資源消耗規則 -- **詞彙關卡**: 免費進入,答錯扣命條 -- **對話訓練**: 免費進入,失敗扣命條 +> 詳細命條系統規格請參閱 → **[共同業務規則 - 命條系統](../common/business-rules.md#🎮-命條系統-life-points-system)** + +- **詞彙學習**: 啟動關卡消耗1個命條 +- **詞彙熟悉**: 啟動關卡消耗1個命條 +- **口說練習特別關卡**: 付費進入(5鑽石),不扣命條,可跳過 +- **情境對話**: 啟動關卡消耗1個命條 - **限時挑戰**: 首次免費,後續50鑽石/次 - **命條不足**: 無法開始新關卡,需要購買或等待恢復 diff --git a/docs/02_design/function-specs/mobile/04_item-shop-mobile.md b/docs/02_design/function-specs/mobile/04_item-shop-mobile.md index 4134cfa..bcc8bc5 100644 --- a/docs/02_design/function-specs/mobile/04_item-shop-mobile.md +++ b/docs/02_design/function-specs/mobile/04_item-shop-mobile.md @@ -22,7 +22,7 @@ ### 與其他功能的關聯 - **情境對話系統**: 回覆提示道具、加時道具的直接使用場景 -- **命條系統**: 補命道具購買和消費的核心機制 +- **命條系統**: 補命道具購買和消費的核心機制,詳見 [共同業務規則](../common/business-rules.md#🎮-命條系統-life-points-system) - **學習地圖系統**: 道具購買入口和使用場景整合 - **訂閱系統**: 與VIP訂閱的差異化定位和互補 - **支付系統**: 鑽石購買和第三方支付整合 @@ -75,7 +75,7 @@ ##### ❤️ 生命管理類道具 | 道具名稱 | 價格 | 組合包價格 | 功能說明 | 使用場景 | |---------|------|------------|----------|----------| -| 補命道具 | 100鑽石/個 | 400鑽石/5個 | 補充1個命條,上限5個 | 命條不足時購買 | +| 補命道具 | 100鑽石/個 | 400鑽石/5個 | 補充1個命條,依用戶等級上限 | 命條不足時購買 | | 生命保護罩 | 200鑽石/個 | 900鑽石/5個 | 一次闖關失敗不扣命條 | 重要挑戰前使用 | ##### ⏰ 時間控制類道具 diff --git a/docs/02_design/function-specs/web/item-shop-web.md b/docs/02_design/function-specs/web/item-shop-web.md index 3339a45..6baf206 100644 --- a/docs/02_design/function-specs/web/item-shop-web.md +++ b/docs/02_design/function-specs/web/item-shop-web.md @@ -9,7 +9,7 @@ **對應Mobile規格**: `../mobile/04_道具商店功能規格.md` ### 主要功能 -- 多層次道具系統,涵蓋命條、提示、加速、裝飾等類型 +- 多層次道具系統,涵蓋生命管理、提示、加速、裝飾等類型 - 靈活的定價策略,包含鑽石、學習幣、真實貨幣支付 - 組合優惠機制,促進多道具購買和長期訂閱 - 個人化推薦,基於學習習慣推薦合適道具 @@ -33,7 +33,7 @@ ### 與其他功能的關聯 - **學習系統**: 道具使用提升學習效率和體驗 -- **命條系統**: 命條相關道具的購買和補充 +- **命條系統**: 命條相關道具的購買和補充,詳見 [共同業務規則](../common/business-rules.md#🎮-命條系統-life-points-system) - **成就系統**: 購買特殊道具解鎖成就 - **用戶系統**: 付費狀態影響功能權限 - **分析系統**: 購買行為數據用於商品推薦 diff --git a/docs/02_design/function-specs/web/situational-dialogue-web.md b/docs/02_design/function-specs/web/situational-dialogue-web.md index fa9d32a..03b8389 100644 --- a/docs/02_design/function-specs/web/situational-dialogue-web.md +++ b/docs/02_design/function-specs/web/situational-dialogue-web.md @@ -34,7 +34,7 @@ - **詞彙學習系統**: 整合指定詞彙到對話情境中 - **學習地圖系統**: 提供情境對話的關卡和進度管理 - **道具商店系統**: 回覆提示道具、加時道具的商業整合 -- **命條系統**: 對話失敗消耗命條的生命管理機制 +- **命條系統**: 關卡啟動消耗命條的生命管理機制,詳見 [共同業務規則](../common/business-rules.md#🎮-命條系統-life-points-system) - **排行榜系統**: 限時挑戰成績和社交競爭功能 ## 💻 涉及的Web頁面 diff --git a/docs/02_design/gamification-mechanics.md b/docs/02_design/gamification-mechanics.md index 31e4065..3fcfe36 100644 --- a/docs/02_design/gamification-mechanics.md +++ b/docs/02_design/gamification-mechanics.md @@ -35,11 +35,11 @@ #### 核心成就系統 ✅ (已實現) - [x] **過關獎勵** (通關寶箱) ✅ (已實現於 `api/daily-missions.md`) - 完成對話場景即可獲得 - - 獎勵: +10 鑽石 + 10 閃電能量 + - 獎勵: 請參考/Users/jettcheng1018/code/dramaling-app/docs/02_design/function-specs/common/business-rules.md - [x] **完美語法** ✅ (已實現於 成就系統) - 語法評分達到優秀標準 - - 獎勵: +10 鑽石 + 10 閃電能量 + - 獎勵: 請參考/Users/jettcheng1018/code/dramaling-app/docs/02_design/function-specs/common/business-rules.md - [x] **表達流利** ✅ (已實現於 成就系統) - 流暢度評分達到優秀標準 @@ -95,12 +95,11 @@ - [x] **通關標準**: 成功完成即解鎖下一關(即使0星) ✅ (已實現於 解鎖系統) #### 命條生命系統 ✅ (已實現於 `api/gamification.md`) -- [x] **命條機制**: 新用戶預設5命條,上限5條 ✅ (已實現於 Life Points API) -- [x] **命條消耗**: ✅ (已實現於 遊戲邏輯) - - 詞彙認識答錯 -1命條 - - 詞彙熟悉答錯 -1命條 - - 對話訓練失敗 -1命條 -- [x] **命條回復**: 每5小時自動回復1命條 ✅ (已實現於 自動回復系統) +> 詳細規格請參閱 → **[共同業務規則 - 命條系統](./function-specs/common/business-rules.md#🎮-命條系統-life-points-system)** + +- [x] **命條機制**: 依用戶等級不同命條上限和恢復速度 ✅ (已實現於 Life Points API) +- [x] **命條消耗**: 關卡啟動時消耗(1、2、3關) ✅ (已實現於 遊戲邏輯) +- [x] **命條回復**: 依用戶等級自動回復 ✅ (已實現於 自動回復系統) - [x] **命條購買**: 1命條=100鑽石,5命條=400鑽石 ✅ (已實現於 購買系統) #### 連續學習獎勵系統 ✅ (已實現於 用戶進度系統) @@ -108,7 +107,7 @@ - [x] **學習判定**: 當日完成至少1個關卡即計為學習 ✅ (已實現於 進度邏輯) - [x] **階段性獎勵**: ✅ (已實現於 獎勵系統) - 7天連續: +100經驗值 + 特殊徽章 - - 14天連續: +200經驗值 + 2命條補充 + - 14天連續: +200經驗值 + 命條補充 - 30天連續: +500經驗值 + 特殊成就徽章 + 100鑽石 ### 詞彙學習成就系統 *(新增功能)* @@ -167,66 +166,6 @@ - [ ] **表達流利**: 流暢度表現優秀時獲得額外獎勵 - [ ] **輔助功能成就** *(新增)*: 智慧使用回覆輔助功能的學習進步獎勵 -## 300秒限時挑戰系統 *(新增核心功能)* - -### 限時挑戰機制設計 -基於最新規格的競技式學習系統: - -#### 倒數計時系統 -- [ ] **精準計時**: 300秒(5分鐘)的精確倒數顯示 -- [ ] **視覺化時間**: 動態進度條和數字倒數的雙重顯示 -- [ ] **時間警告**: 剩餘60秒和30秒時的視覺和音效提醒 -- [ ] **自動結算**: 時間歸零時自動觸發結算流程 - -#### 限時挑戰獎勵機制 -- [ ] **時間效率獎勵**: - - 180秒內完成: 1.5x 基礎獎勵倍數 - - 120秒內完成: 2.0x 基礎獎勵倍數 - - 60秒內完成: 2.5x 基礎獎勵倍數 -- [ ] **雙重條件加成**: 限時環境下達成雙重通關額外 +50 鑽石 -- [ ] **壓力挑戰獎勵**: 最後30秒內完成額外 +25 鑽石壓力獎勵 -- [ ] **完美限時成就**: 限時內達成完美對話獲得特殊限時徽章 - -#### 限時挑戰排行榜 -- [ ] **每日排行榜**: 每日限時挑戰最佳成績排名 -- [ ] **每週冠軍賽**: 週末特殊限時挑戰競賽 -- [ ] **好友競技**: 好友間的限時挑戰比較和挑戰 -- [ ] **全球排名**: 全體用戶的限時挑戰成績排行 - -### 限時挑戰成就系統 -基於時間壓力下的特殊成就機制: - -#### 時間相關成就 -- [ ] **閃電戰士** - - 首次在180秒內完成限時挑戰 - - 獎勵: +30 鑽石 + 30 閃電能量 + 速度徽章 - -- [ ] **時間大師** - - 累計完成10次限時挑戰且平均時間<4分鐘 - - 獎勵: +50 鑽石 + 50 閃電能量 + 時間掌控徽章 - -- [ ] **壓力之王** - - 在最後30秒內完成5次限時挑戰 - - 獎勵: +75 鑽石 + 75 閃電能量 + 壓力專家徽章 - -#### 限時雙重通關成就 -- [ ] **限時劇情大師** - - 在限時挑戰中完成劇情任務且時間<4分鐘 - - 獎勵: +40 鑽石 + 40 閃電能量 + 限時劇情徽章 - -- [ ] **限時詞彙專家** - - 在限時挑戰中正確使用所有指定詞彙且時間<3分鐘 - - 獎勵: +35 鑽石 + 35 閃電能量 + 限時詞彙徽章 - -- [ ] **限時完美對話** - - 在限時挑戰中達成雙重通關且時間<2.5分鐘 - - 獎勵: +100 鑽石 + 100 閃電能量 + 限時完美徽章 + 3個回覆提示道具 - -### 獎勵統一標準 -- [ ] **統一獎勵**: 每項成就固定給予 +10 鑽石 + 10 閃電能量 -- [ ] **即時反饋**: 完成對話後立即顯示獲得的成就 -- [ ] **視覺化展示**: 使用寶箱和貨幣圖示清楚顯示獎勵 - ## 闖關系統設計 ### 關卡結構 diff --git a/docs/04_technical/01_architecture/backend-api-separation-plan.md b/docs/04_technical/01_architecture/backend-api-separation-plan.md index 9fbfba9..ff192b7 100644 --- a/docs/04_technical/01_architecture/backend-api-separation-plan.md +++ b/docs/04_technical/01_architecture/backend-api-separation-plan.md @@ -575,12 +575,443 @@ public class WebApiResponse 2. **Week 10**: 效能和安全性評估,決定微服務遷移時機 3. **Week 18**: 全面評估,決定生產環境部署策略 +## 📚 詞彙學習系統API實施計畫 + +### 階段一:核心詞彙API開發 (Week 1-3) + +#### 1.1 資料庫架構建立 +```sql +-- 詞彙基礎表設計 (基於database-schema.md) +CREATE TABLE vocabulary_bank ( + vocab_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + word VARCHAR(100) NOT NULL, + phonetic VARCHAR(200), + part_of_speech VARCHAR(50), + definition_en TEXT, + definition_native JSONB, + category VARCHAR(50), + difficulty_level VARCHAR(10), + frequency_rank INTEGER, + audio_url TEXT, + example_sentences JSONB, + synonyms JSONB, + antonyms JSONB, + created_at TIMESTAMPTZ DEFAULT NOW(), + updated_at TIMESTAMPTZ DEFAULT NOW(), + UNIQUE(word, part_of_speech) +); + +-- 用戶詞彙進度表 +CREATE TABLE user_vocabulary_progress ( + progress_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + user_id UUID REFERENCES users(user_id) ON DELETE CASCADE, + vocab_id UUID REFERENCES vocabulary_bank(vocab_id) ON DELETE CASCADE, + mastery_level VARCHAR(20) DEFAULT 'learning', + mastery_score INTEGER DEFAULT 0, + review_count INTEGER DEFAULT 0, + correct_count INTEGER DEFAULT 0, + ease_factor DECIMAL(4,2) DEFAULT 2.50, + interval_days INTEGER DEFAULT 1, + next_review_date DATE, + first_encountered TIMESTAMPTZ DEFAULT NOW(), + last_reviewed TIMESTAMPTZ, + UNIQUE(user_id, vocab_id) +); +``` + +#### 1.2 核心服務層實現 +```csharp +// IVocabularyService 介面設計 +public interface IVocabularyService +{ + // 基本詞彙CRUD + Task GetByIdAsync(Guid vocabId); + Task> GetVocabularyListAsync(VocabularyFilter filter); + Task> SearchVocabularyAsync(string query, int limit = 20); + + // 用戶學習進度 + Task GetUserProgressAsync(Guid userId, Guid vocabId); + Task UpdateProgressAsync(Guid userId, UpdateProgressRequest request); + Task> GetDueForReviewAsync(Guid userId); + + // 間隔重複演算法 + Task ProcessReviewResultAsync( + Guid userId, Guid vocabId, ReviewQuality quality); + + // 學習分析 + Task GetLearningAnalyticsAsync(Guid userId); +} + +// 間隔重複演算法實現 +public class SpacedRepetitionService : ISpacedRepetitionService +{ + public SpacedRepetitionResult CalculateNextReview( + double easeFactor, int interval, ReviewQuality quality) + { + // SuperMemo SM-2 算法實現 + var newEaseFactor = Math.Max(1.3, easeFactor + + (0.1 - (5 - (int)quality) * (0.08 + (5 - (int)quality) * 0.02))); + + int newInterval = quality switch + { + ReviewQuality.Again => 1, + ReviewQuality.Hard => (int)(interval * 1.2), + ReviewQuality.Good => (int)(interval * newEaseFactor), + ReviewQuality.Easy => (int)(interval * newEaseFactor * 1.3), + _ => 1 + }; + + return new SpacedRepetitionResult + { + NextInterval = newInterval, + NewEaseFactor = newEaseFactor, + NextReviewDate = DateTime.UtcNow.AddDays(newInterval) + }; + } +} +``` + +#### 1.3 API控制器實現 +```csharp +// 移動端詞彙API控制器 +[ApiController] +[Route("api/v1/mobile/vocabulary")] +[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)] +public class MobileVocabularyController : MobileBaseController +{ + private readonly IVocabularyService _vocabularyService; + + [HttpGet("daily-review")] + public async Task>>> GetDailyReview() + { + var userId = GetCurrentUserId(); + var vocabularyList = await _vocabularyService.GetDueForReviewAsync(userId); + var mobileDtos = Mapper.Map>(vocabularyList); + + return MobileSuccess(mobileDtos); + } + + [HttpPost("{vocabId}/review")] + public async Task>> SubmitReview( + Guid vocabId, [FromBody] SubmitReviewRequest request) + { + var userId = GetCurrentUserId(); + var result = await _vocabularyService.ProcessReviewResultAsync( + userId, vocabId, request.Quality); + + return MobileSuccess(new ReviewResultDto + { + NextReviewDate = result.NextReviewDate, + MasteryLevelChange = result.MasteryLevelChange, + PointsEarned = result.PointsEarned + }); + } + + [HttpGet("search")] + public async Task>>> Search( + [FromQuery] string query, [FromQuery] int limit = 10) + { + var results = await _vocabularyService.SearchVocabularyAsync(query, limit); + var mobileDtos = Mapper.Map>(results); + + return MobileSuccess(mobileDtos); + } +} + +// Web端詞彙API控制器 +[ApiController] +[Route("api/v1/web/vocabulary")] +[Authorize] +public class WebVocabularyController : WebBaseController +{ + [HttpGet("{id}")] + public async Task>> GetVocabulary(Guid id) + { + var vocabulary = await _vocabularyService.GetByIdAsync(id); + var webDto = Mapper.Map(vocabulary); + + return WebSuccess(webDto, new { + RelatedWords = await _vocabularyService.GetRelatedWordsAsync(id), + LearningTips = await _vocabularyService.GetLearningTipsAsync(id), + UsageExamples = await _vocabularyService.GetUsageExamplesAsync(id) + }); + } + + [HttpGet("analytics")] + public async Task>> GetAnalytics( + [FromQuery] DateTime? from, [FromQuery] DateTime? to) + { + var userId = GetCurrentUserId(); + var analytics = await _vocabularyService.GetLearningAnalyticsAsync( + userId, from, to); + + return WebSuccess(analytics); + } +} +``` + +### 階段二:智能學習功能 (Week 4-6) + +#### 2.1 AI驅動的詞彙推薦系統 +```csharp +public interface IVocabularyRecommendationService +{ + Task> GetPersonalizedRecommendationsAsync( + Guid userId, int count = 10); + Task> GetContextualVocabularyAsync( + string context, DifficultyLevel level); + Task> GetRelatedVocabularyAsync(Guid vocabId); +} + +public class AIVocabularyRecommendationService : IVocabularyRecommendationService +{ + private readonly IOpenAIService _openAiService; + private readonly IVocabularyRepository _vocabularyRepo; + + public async Task> GetPersonalizedRecommendationsAsync( + Guid userId, int count = 10) + { + // 獲取用戶學習歷史和偏好 + var userProfile = await GetUserLearningProfileAsync(userId); + + // 使用GPT-4o-mini分析用戶需求 + var prompt = $@" + Based on user learning profile: + - Current level: {userProfile.Level} + - Weak categories: {string.Join(',', userProfile.WeakCategories)} + - Interests: {string.Join(',', userProfile.Interests)} + + Recommend 10 vocabulary words that would be most beneficial + for this learner's progression."; + + var aiResponse = await _openAiService.GetCompletionAsync(prompt); + + // 解析AI回應並匹配資料庫詞彙 + return await MatchWordsFromDatabase(aiResponse, count); + } +} +``` + +#### 2.2 自適應複習系統 +```csharp +public class AdaptiveReviewService : IAdaptiveReviewService +{ + public async Task CreateReviewSessionAsync(Guid userId) + { + var dueWords = await _vocabularyService.GetDueForReviewAsync(userId); + var userStats = await GetUserStatisticsAsync(userId); + + // 根據用戶表現調整複習策略 + var strategy = DetermineReviewStrategy(userStats); + + // 智能排序複習詞彙 + var optimizedOrder = OptimizeReviewOrder(dueWords, strategy); + + return new AdaptiveReviewSession + { + SessionId = Guid.NewGuid(), + UserId = userId, + Words = optimizedOrder, + Strategy = strategy, + EstimatedDuration = CalculateEstimatedDuration(optimizedOrder.Count) + }; + } + + private ReviewStrategy DetermineReviewStrategy(UserStatistics stats) + { + // 基於用戶統計數據選擇最佳複習策略 + if (stats.AccuracyRate < 0.7) + return ReviewStrategy.Reinforcement; // 加強練習 + else if (stats.ReviewStreak > 7) + return ReviewStrategy.Challenging; // 挑戰模式 + else + return ReviewStrategy.Balanced; // 平衡模式 + } +} +``` + +### 階段三:高級分析與遊戲化 (Week 7-9) + +#### 3.1 學習分析API +```csharp +[ApiController] +[Route("api/v1/mobile/vocabulary/analytics")] +public class MobileVocabularyAnalyticsController : MobileBaseController +{ + [HttpGet("dashboard")] + public async Task>> GetDashboard() + { + var userId = GetCurrentUserId(); + var data = new DashboardData + { + TodayProgress = await _analyticsService.GetTodayProgressAsync(userId), + WeeklyStreak = await _analyticsService.GetWeeklyStreakAsync(userId), + MasteryDistribution = await _analyticsService.GetMasteryDistributionAsync(userId), + RecentAchievements = await _analyticsService.GetRecentAchievementsAsync(userId) + }; + + return MobileSuccess(data); + } + + [HttpGet("progress-chart")] + public async Task>> GetProgressChart( + [FromQuery] ChartPeriod period = ChartPeriod.Month) + { + var userId = GetCurrentUserId(); + var chartData = await _analyticsService.GetProgressChartDataAsync(userId, period); + + return MobileSuccess(chartData); + } +} +``` + +#### 3.2 遊戲化系統整合 +```csharp +public interface IVocabularyGamificationService +{ + Task CheckAchievementsAsync(Guid userId, LearningActivity activity); + Task> GetUserBadgesAsync(Guid userId); + Task GetLeaderboardPositionAsync(Guid userId); + Task CalculateExperiencePointsAsync(ReviewResult result); +} + +public class VocabularyGamificationService : IVocabularyGamificationService +{ + public async Task CalculateExperiencePointsAsync(ReviewResult result) + { + var basePoints = result.Quality switch + { + ReviewQuality.Again => 1, + ReviewQuality.Hard => 3, + ReviewQuality.Good => 5, + ReviewQuality.Easy => 8, + _ => 0 + }; + + // 連續正確答案加成 + var streakMultiplier = Math.Min(result.StreakCount / 5.0 + 1, 2.0); + + // 詞彙難度加成 + var difficultyMultiplier = result.Difficulty switch + { + "A1" => 1.0, + "A2" => 1.2, + "B1" => 1.5, + "B2" => 1.8, + "C1" => 2.0, + "C2" => 2.5, + _ => 1.0 + }; + + return (int)(basePoints * streakMultiplier * difficultyMultiplier); + } +} +``` + +### 階段四:效能優化與快取 (Week 10-12) + +#### 4.1 Redis快取策略 +```csharp +public class CachedVocabularyService : IVocabularyService +{ + private readonly IVocabularyService _baseService; + private readonly IRedisCache _cache; + + public async Task GetByIdAsync(Guid vocabId) + { + var cacheKey = $"vocabulary:{vocabId}"; + var cached = await _cache.GetAsync(cacheKey); + + if (cached != null) + return cached; + + var vocabulary = await _baseService.GetByIdAsync(vocabId); + await _cache.SetAsync(cacheKey, vocabulary, TimeSpan.FromHours(6)); + + return vocabulary; + } + + public async Task> GetDueForReviewAsync(Guid userId) + { + var cacheKey = $"user:{userId}:due-review"; + var cached = await _cache.GetAsync>(cacheKey); + + if (cached != null) + return cached; + + var dueWords = await _baseService.GetDueForReviewAsync(userId); + await _cache.SetAsync(cacheKey, dueWords, TimeSpan.FromMinutes(15)); + + return dueWords; + } +} +``` + +#### 4.2 資料庫查詢優化 +```sql +-- 高效能索引設計 +CREATE INDEX CONCURRENTLY idx_user_vocab_due_review +ON user_vocabulary_progress(user_id, next_review_date) +WHERE next_review_date <= CURRENT_DATE; + +CREATE INDEX CONCURRENTLY idx_vocabulary_search +ON vocabulary_bank USING gin(to_tsvector('english', word || ' ' || definition_en)); + +-- 用戶學習統計物化視圖 +CREATE MATERIALIZED VIEW user_vocabulary_stats AS +SELECT + user_id, + COUNT(*) as total_words, + COUNT(*) FILTER (WHERE mastery_level = 'mastered') as mastered_count, + AVG(mastery_score) as average_mastery, + COUNT(*) FILTER (WHERE last_reviewed >= CURRENT_DATE - INTERVAL '7 days') as weekly_reviews +FROM user_vocabulary_progress +GROUP BY user_id; + +CREATE UNIQUE INDEX ON user_vocabulary_stats(user_id); +``` + +### 詞彙學習API端點總結 + +#### 移動端API端點 +| 端點 | 方法 | 描述 | 快取策略 | +|------|------|------|----------| +| `/api/v1/mobile/vocabulary/daily-review` | GET | 獲取每日複習詞彙 | 15分鐘 | +| `/api/v1/mobile/vocabulary/{id}/review` | POST | 提交複習結果 | 無快取 | +| `/api/v1/mobile/vocabulary/search` | GET | 詞彙搜尋 | 30分鐘 | +| `/api/v1/mobile/vocabulary/recommendations` | GET | 個人化推薦 | 1小時 | +| `/api/v1/mobile/vocabulary/analytics/dashboard` | GET | 學習儀表板 | 10分鐘 | + +#### Web端API端點 +| 端點 | 方法 | 描述 | 快取策略 | +|------|------|------|----------| +| `/api/v1/web/vocabulary/{id}` | GET | 詞彙詳細資訊 | 6小時 | +| `/api/v1/web/vocabulary/analytics` | GET | 學習分析報告 | 30分鐘 | +| `/api/v1/web/vocabulary/batch` | GET | 批量詞彙資料 | 1小時 | +| `/api/v1/web/vocabulary/export` | POST | 匯出學習資料 | 無快取 | + +### 實施優先級 + +#### 高優先級 (Week 1-6) +1. 基礎詞彙CRUD API +2. 用戶學習進度追蹤 +3. 間隔重複演算法 +4. 移動端基礎API + +#### 中優先級 (Week 7-9) +1. AI推薦系統 +2. 學習分析功能 +3. 遊戲化元素 +4. Web端豐富功能 + +#### 低優先級 (Week 10-12) +1. 效能優化 +2. 進階快取策略 +3. 資料匯出功能 +4. 管理後台API + --- **最後更新**: 2025-09-10 -**版本**: 1.0 - 初始架構分離計劃 -**維護者**: Drama Ling 開發團隊 - - - -[{"content": "\u64b0\u5beb\u5f8c\u7aef\u67b6\u69cb\u5206\u96e2\u8a08\u5283\u6587\u4ef6", "status": "completed", "activeForm": "\u64b0\u5beb\u5f8c\u7aef\u67b6\u69cb\u5206\u96e2\u8a08\u5283\u6587\u4ef6\u4e2d"}, {"content": "\u898f\u5283API Gateway\u5fae\u670d\u52d9\u67b6\u69cb", "status": "completed", "activeForm": "\u898f\u5283API Gateway\u5fae\u670d\u52d9\u67b6\u69cb\u4e2d"}, {"content": "\u8a2d\u8a08\u79fb\u52d5\u7aef\u548cWeb\u7aefAPI\u5dee\u7570\u5316", "status": "completed", "activeForm": "\u8a2d\u8a08\u79fb\u52d5\u7aef\u548cWeb\u7aefAPI\u5dee\u7570\u5316\u4e2d"}, {"content": "\u5236\u5b9a\u9077\u79fb\u6b65\u9a5f\u548c\u6642\u7a0b", "status": "in_progress", "activeForm": "\u5236\u5b9a\u9077\u79fb\u6b65\u9a5f\u548c\u6642\u7a0b\u4e2d"}] \ No newline at end of file +**版本**: 1.1 - 新增詞彙學習系統實施計畫 +**維護者**: Drama Ling 開發團隊 \ No newline at end of file diff --git a/docs/02_design/ai-algorithm-specs.md b/sop/archive/20250911005436_ai-algorithm-specs.md similarity index 55% rename from docs/02_design/ai-algorithm-specs.md rename to sop/archive/20250911005436_ai-algorithm-specs.md index ff4e937..95ac52a 100644 --- a/docs/02_design/ai-algorithm-specs.md +++ b/sop/archive/20250911005436_ai-algorithm-specs.md @@ -1,33 +1,67 @@ # AI 對話分析算法規格 ## 概述 -定義 Drama Ling 應用中 AI 對話分析系統的具體實現方案,包含語法、語意、流暢度三維度評分邏輯。 +定義 Drama Ling 應用中 AI 對話分析系統的具體實現方案,包含語法、語用、口說三維度評分邏輯。 ## 核心評分維度 -基於 UI_LevelResult_ScoreSummary.png 的實際設計,採用簡化的三維評分顯示: +基於 UI_LevelResult_ScoreSummary.png 的實際設計,採用三維對話評估指標顯示: -### 簡化評分系統 +### 三維對話評估系統 **目標**: 提供清楚的學習反饋,觸發對應成就獎勵 -#### 三項評分指標 +#### 三維對話評分指標 - [ ] **語法評分**: 評估語法正確性 - - 達到優秀標準時觸發「完美語法」成就 - - 獎勵: +10 鑽石 + 10 閃電能量 + - 所有對話皆正確時即為完美表現,若有藉由錯誤訂正功能將全部錯誤訂正完畢,則一樣給予完美表現 + - 獲得完美表現則過關獎勵雙倍 + - 過關獎勵: +1 鑽石 + 10 XP -- [ ] **語意評分**: 評估內容理解和表達適切性 - - 作為整體表現參考 - - 不單獨觸發特定成就 +- [ ] **語用分析**: 評估內容理解和表達適切性(只建議,不評分) -- [ ] **流暢度評分**: 評估表達的自然度和流暢性 - - 達到優秀標準時觸發「表達流利」成就 - - 獎勵: +10 鑽石 + 10 閃電能量 +- [ ] **口說評分**: 評估口說表達的自然度和流暢性 + - 評分標準: + - 🗣️ **發音評分 (Pronunciation)**: 音素準確度、尾音收口、鼻音共鳴 + - ✅ **完整度評分 (Completeness)**: 句子完整性、遺漏詞彙檢測 + - 📈 **流暢度評分 (Fluency)**: 語速自然度、停頓合理性 + - 🎶 **韻律評分 (Prosody)**: 語調變化、重音位置、節奏感 + - 🎯 **準確度評分 (Accuracy)**: 整體表達精準度 + - 分數標準 + - 96~100:完美 + - 81~95:優秀 + - 71~80:尚可 + - 0~70:不合格 + - 過關獎勵: + - 96~100:+3 鑽石 + 30 XP + - 81~95:+2 鑽石 + 20 XP + - 71~80:+1 鑽石 + 10 XP + - 0~70:時光卷 + - **詳細評分顯示範例**: + ``` + 📊 Speaking Score + + 【Sentence】91.9分: + Please make sure you have all the necessary documents before submitting your application. + + 🗣️ Pronunciation:91.9 + 📈 Fluency:97 + 🎶 Prosody:83.3 + ✅ Completeness:100 + 🎯 Accuracy:96 + + 【單字需要加強❌】 + application ⭐⭐: + 🟡 n + + 【建議改善】 + • 🔚 尾音收口明確(-m, -n, -l, -k, -t),避免吞音。 + 🎯 針對音素練習:n + 🤧 鼻音(m/n/ŋ):軟顎下放,確保鼻腔共鳴與口型到位。 + ``` #### 技術實現方案 - [ ] **AI 模型選擇**: 待決定 (GPT-4/Claude/自建模型) -- [ ] **評分閾值設定**: 定義「優秀」標準的具體分數 - [ ] **即時分析**: 目標響應時間 < 2秒 -- [ ] **成就觸發機制**: 自動檢測並發放對應獎勵 +- [ ] **成就觸發機制**: 於遊戲結束時,自動檢測並發放對應獎勵 ## AI 對話分析功能 @@ -36,13 +70,16 @@ - [ ] **每句話即時分析**: 用戶說出的每句話都進行即時判斷 - 語法正確性分析(即時顯示於對話功能欄) + - 口說評分(即時顯示於對話功能欄) - 任務完成狀態檢測 - 指定詞彙使用檢測 +- [ ] **每句話點擊後分析**:用戶說出的每句話,點擊後才觸發 + - 語用建議(當用戶點擊對話查看語用建議,則生成當前對話相對於整體對話的語用建議) - [ ] **即時成功通知**: 當用戶提及詞彙或完成任務時立即回饋 - [ ] **三維度結算評分**: 對話結束後的綜合評分 - - 對話語意合適分數(滿分100,>60為合格) - - 語法錯誤率(必須=0,所有句子都正確或訂正後正確) - - 表達流暢平均分數(滿分100,>60為合格) + - 語法錯誤率:整個劇本對話語法錯誤清單 + - 語用建議:整個劇本對話的語用建議 + - 口說整體的平均分數 ## 情境對話核心系統 @@ -91,7 +128,7 @@ - [ ] **回應思緒引導**: 分析用戶聽到這句話的反應及可能的回覆方向 - [ ] **回覆範例生成**: 生成一句具體的回覆範例 -#### 免費輔助工具 +#### 免費輔助功能 - [ ] **劇情任務範例**: - 點擊任務提示按鈕後顯示一句範例 - 說明「這樣說可以完成任務」 @@ -128,7 +165,7 @@ - [ ] **詞彙選擇題**: - 根據示意圖選出正確的英文詞彙 - 4選1的單選題形式 - - 答錯會扣除命條(-1)並在最後重新測試 + - 答錯時,將題目並在最後重新測試 - [ ] **通關機制**: 所有詞彙題目都答對才算通關,直接獲得三顆星 #### 詞彙熟悉關卡 @@ -142,6 +179,26 @@ - 提升詞彙識別和記憶連結 - [ ] **通關機制**: 所有配對和重組正確才算通關,直接獲得三顆星 +#### 詞彙口說關卡 +- 這關如果要玩,是要消耗5鑽石, +- 一一秀出詞彙例句,用戶要念出例句,系統會進行口說評分 +- +- [ ] **口說評分**: 評估口說表達的自然度和流暢性 + - 評分標準:整體評分 = 發音評分 & 完整度評分 & 流暢度評分 + - 發音評分 + - 完整度評分 + - 流暢度評分 + - 分數標準 + - 96~100:完美 + - 81~95:優秀 + - 71~80:尚可 + - 0~70:不合格 + - 過關獎勵: + - 96~100:+3 鑽石 + 30 XP + - 81~95:+2 鑽石 + 20 XP + - 71~80:+1 鑽石 + 10 XP + - 0~70:時光卷 + #### 詞彙內容設計標準 基於劇本的5詞彙組合設計: - [ ] **詞彙組合**: 每個劇本包含5個詞彙 @@ -186,38 +243,6 @@ - 更新詞彙複習次數和下次複習時間 - 強化學習動機和持續性 -## 限時對話系統 *(新增功能)* - -### 300秒倒數計時機制 -基於最新規格的時間管理系統: - -#### 時間控制引擎 -- [ ] **精準計時系統**: - - 300秒(5分鐘)的精確倒數計時 - - 支援暫停和恢復功能(特殊情況下) - - 時間剩餘的視覺化顯示 - -- [ ] **時間壓力分析**: - - 分析時間壓力對用戶表現的影響 - - 記錄不同時間段的對話品質變化 - - 優化時間分配的學習建議 - -- [ ] **結算觸發機制**: - - 時間歸零自動觸發結算 - - 支援用戶主動點擊「結算表現」 - - 確保數據完整保存和分析 - -#### 時間效率優化 -- [ ] **進度加權評分**: - - 基於完成時間給予額外評分 - - 鼓勵高效但準確的對話完成 - - 平衡速度與品質的評分機制 - -- [ ] **時間管理指導**: - - 提供時間分配的策略建議 - - 分析用戶的時間使用模式 - - 協助提升對話效率 - ## 關卡結算與訂正系統 *(新增基於最新規格)* ### 關卡表現結算 @@ -230,16 +255,121 @@ #### 表現評分系統 - [ ] **評分標準** (每合格一項獲得一顆星): - 1. **對話語意合適分數 > 60** (滿分100) - - 根據上下文一致性進行評分 - - 語境適應性評估 - - 意圖匹配度分析 - 2. **語法錯誤率 = 0** + 1. **語法錯誤率 = 0** - 用戶說的每句話經過語法判定都正確 - 或者訂正後都正確亦可 - 3. **表達流暢平均分數 > 60** (滿分100) + 2. **表達流暢平均分數 > 60** (滿分100) - 用戶說的每句話都會有流暢度分數 - 所有分數平均即為表達流暢平均分數 + 3. **對話語用評估分數 只建議不評分** + - 語用標準定義與用途: + 1. **日常寒暄 (Small Talk)** + - 定義:不以傳遞實質資訊為主要目的,而是用於建立或維持社交關係的言談 + - 用途: + - 建立對話氛圍與人際連結 + - 作為開場、轉場或緩和氣氛的策略 + - 在客服或 AI 助手中,用來提升「人性化」感 + 2. **間接表達 (Indirectness)** + - 定義:透過暗示、委婉語或迂迴方式表達意圖,避免直接衝突 + - 用途: + - 避免冒犯,維持人際和諧 + - 展現禮貌或文化上的尊重 + - 在跨文化溝通中,辨識不同社會的表達習慣 + 3. **填充語 (Fillers)** + - 定義:非必要詞語,用來填補語流空隙、保持連續或爭取思考時間 + - 用途: + - 提示對方「話還沒說完」 + - 增加口語自然度(模擬真實對話) + - 作為語音辨識或對話系統的特徵,用於偵測自然口語 + 4. **同理回應 (Backchanneling)** + - 定義:聽話者以簡短語言或聲音表達注意、理解或支持,不打斷主要話輪 + - 用途: + - 提供傾聽與理解的訊號,維持互動流暢 + - 增強情感支持與共鳴 + - 在對話系統中,提升使用者「被理解」的感受 + 5. **模糊語 (Hedging)** + - 定義:降低語氣確定性,避免過度斷言的語言策略 + - 用途: + - 顯示謹慎,降低爭議風險 + - 表達禮貌,避免武斷或冒犯 + - 在學術或專業語境中,用來維持客觀或彈性 + 6. **文化慣用語 (Idioms)** + - 定義:文化群體中固定的表達方式,通常無法逐字翻譯 + - 用途: + - 增加語言的自然性與文化深度 + - 強化群體認同感 + - 作為語言學習與跨文化理解的重要素材 + + - **語用評分範例**: + ``` + --- Dialogue + + 👨(Client):How is Mr. Davies feeling about our upcoming meeting? + + 👨(Business Professional):Wow, you know what he is very anxious to meet you + + The client is responding to the business professional's statement about Mr. Davies being anxious to meet him. He acknowledges the information and expresses his own anticipation for the meeting, maintaining a professional and engaged tone.... + + 👨(Client):Anxious, you say? That's good to hear. I'm looking forward to it as well. + + --- Overall Comment + + 【分數】:✅ 通過 + 【評論】:客戶在本次對話中展現了良好的專業溝通能力。他能夠清晰、直接地回應對方的信息,並有效使用附和語來維持對話的參與感。 + 【建議】:建議客戶在未來的對話中,根據情境需要,可以考慮適度運用間接表達和模糊語,以增加語氣的彈性與委婉度,尤其是在面對敏感話題或需要更細緻溝通的場合。持續保持積極的傾聽和回應,將有助於建立更良好的互動關係。 + + --- Intent Achievement Evaluation + + 🌍 Scenario: + A professional setting where a person is informing another about a third party's eagerness to meet them, possibly before an introduction or a significant meeting. The man in the suit suggests a formal context. + + 🎯 Intent: + Inform about someone's eagerness to meet. + + 🎯 是否實踐意圖: + + 【分數】:Yes + 【評論】:客戶成功地表達了對對方所提供信息的理解,並明確傳達了他對即將到來的會議的期待。 + 【建議】:意圖已完全達成,表現良好,無需改進。 + + --- Pragmatic Evaluation + + 😊 日常寒暄 (Small Talk) + + 【分數】:4分 + 【評論】:客戶的應答簡潔專業,直接表達了對會面的期待,符合商務情境。 + 【建議】:在此情境下,客戶的表現良好,無需特別改進。如果想在開場時增加一點點寒暄,可以簡短地說 "It's a pleasure to finally connect, I hear great things." + + 🌀 間接表達 (Indirectness) + + 【分數】:0分 + 【評論】:客戶的回應直接且清晰,沒有使用間接表達。在此情境下,直接性是可接受的,因此此項得分0分並非表示表現不佳,而是因為間接表達在此情境中並非必要且客戶未採用。 + 【建議】:如果想讓語氣更委婉或在某些情況下顯得更為謹慎,可以使用間接句型,例如 "I appreciate you sharing that. It sounds like he's quite keen, and I share that sentiment." 或 "It's certainly encouraging to hear his eagerness; I'm equally enthusiastic." + + 🤔 填充語 (Fillers) + + 【分數】:0分 + 【評論】對話中沒有使用語氣詞。在此情境下,不使用語氣詞保持了專業和清晰度。此項得分0分,因其在本次對話中屬於非必要項目且未被使用。 + 【建議】:保持清晰流暢的表達是良好的習慣。若未來在需要思考或組織語言時,可適度使用一些無害的填充詞如 "Well," 或 "You know," 來避免冷場,但應避免過度使用。例如:"Well, that's good to hear. I'm looking forward to it as well." + + 🙆 同理回應 (Backchanneling) + + 【分數】:5分 + 【評論】:客戶有效地使用了附和語 "Anxious, you say?",這表明他專注於對話並確認了對方提供的信息,有助於維持對話的流暢性與參與感。 + 【建議】:繼續保持這種積極的傾聽和回應。在其他情況下,也可以使用 "I see what you mean," "Right," 或 "Exactly," 等來表示理解和附和。 + + 🤷 模糊語 (Hedging) + + 【分數】:2分 + 【評論】:客戶的表達比較直接,沒有使用模糊語來軟化語氣或預留彈性。在這種專業且直接的語境下,雖然直接表達沒問題,但適度的模糊語可以使語氣更溫和或為未來討論留下空間。 + 【建議】:在某些情境下,尤其是在討論尚未確定的事項或表達個人看法時,適當使用模糊語(hedging)可以讓語氣更委婉,避免過於武斷。例如,可以說 "I suppose that's good to hear" 或 "I'm certainly looking forward to it as well, assuming everything goes according to plan." + + 🐉 文化慣用語 (Idioms) + + 【分數】:0分 + 【評論】:對話中沒有使用慣用語。在正式的商務場合,避免使用過多的慣用語有助於保持溝通的清晰度,尤其是在面對不同文化背景的對話者時。此項得分0分,因其在本次對話中屬於非必要項目且未被使用。 + 【建議】:在正式場合,直接清晰的表達比慣用語更受青睞。如果希望增加語言的豐富性,可以在非正式場合適度使用,但務必確保對方能理解。 + ``` ### 結算流程系統 #### 過關流程