# DramaLing AI功能使用說明 ## 🎯 **功能概述** DramaLing的AI生成功能現已完全實現,支持智能英文句子分析、語法修正、詞彙標記和慣用語識別。 ## 🛠️ **開發環境設置** ### **1. 設置Gemini API Key** #### **方法一:使用.NET User Secrets** ```bash cd backend/DramaLing.Api dotnet user-secrets set "Gemini:ApiKey" "你的真實Gemini API Key" ``` ### **2. 啟動服務** #### **後端服務(port 5000)** ```bash cd backend/DramaLing.Api dotnet run ``` #### **前端服務(port 3000)** ```bash cd frontend npm run dev ``` ## 🔧 **技術架構** ### **後端API端點** - `POST /api/ai/analyze-sentence` - 句子智能分析 - `GET /api/ai/health` - AI服務健康檢查 ### **前端頁面** - `http://localhost:3000/generate` - AI分析主頁面 ## 🎯 **使用流程** ### **1. 用戶操作** 1. 在輸入框中輸入英文句子(最多300字符) 2. 點擊「🔍 分析句子」按鈕 3. 查看語法修正建議(如有) 4. 瀏覽詞彙統計卡片 5. 點擊標記的詞彙查看詳細資訊 6. 點擊慣用語查看解釋 7. 保存感興趣的詞彙到詞卡 ### **2. 系統處理** 1. 前端發送API請求到後端 2. 後端檢查使用限制和快取 3. 調用Gemini API進行分析 4. 處理和格式化回應數據 5. 快取結果並返回前端 6. 前端渲染分析結果 ## 📊 **功能特色** ### **✅ 已實現功能** #### **🤖 AI智能分析** - **語法檢查** - 自動檢測時態、主謂一致等錯誤 - **詞彙分析** - 提供翻譯、定義、發音、CEFR等級 - **慣用語識別** - 智能識別句子中的習語和片語 - **中文翻譯** - 自然流暢的繁體中文翻譯 #### **🎯 個人化學習** - **CEFR等級比較** - 基於用戶程度標記詞彙難度 - **視覺化分類** - 不同顏色標記不同難度詞彙 - **統計卡片** - 直觀展示詞彙分布 - **學習提示** - 幫助用戶理解標記含義 #### **💡 互動體驗** - **彈窗詳情** - 點擊詞彙查看完整資訊 - **智能定位** - 彈窗自動避開螢幕邊界 - **一鍵保存** - 直接保存到個人詞卡庫 - **響應式設計** - 支援桌面和移動設備 #### **⚡ 性能優化** - **快取機制** - 避免重複分析相同句子 - **使用限制** - 免費用戶每日5次分析 - **錯誤處理** - 優雅的錯誤回饋和回退機制 - **記憶化** - 前端性能優化 ## 🔒 **安全設計** ### **API認證** - 使用JWT Bearer Token認證 - 每個請求都需要有效的認證Token ### **使用限制** - 免費用戶:每日5次分析 - 付費用戶:無限制使用 - 3小時重置週期 ### **數據安全** - API Key使用User Secrets安全存儲 - 敏感資訊不寫入代碼 - HTTPS傳輸加密 ## 🧪 **測試模式** ### **真實API模式** 設置真實Gemini API Key後: - 調用Google Gemini Pro模型 - 真實的AI分析結果 - 動態的詞彙和語法分析 - 支援任意英文句子 ## 📈 **測試案例** ### **測試句子** ``` She just join the team, so let's cut her some slack until she get used to the workflow. ``` ### **預期結果(A2用戶)** - **語法修正**: 2個錯誤修正(join→joined, get→gets) - **詞彙統計**: 太簡單8個,重點學習4個,有挑戰3個,慣用語1個 - **慣用語**: "cut someone some slack" - **翻譯**: "她剛加入團隊,所以讓我們對她寬容一點,直到她習慣工作流程。" ## 🔧 **故障排除** ### **常見問題** #### **Q: API請求失敗** ``` 錯誤: API請求失敗: 401 解決: 檢查localStorage中是否有有效的auth_token ``` #### **Q: 編譯錯誤** ``` 錯誤: IGeminiService無法解析 解決: 確保Program.cs中正確註冊了服務 ``` #### **Q: Gemini API調用失敗** ``` 錯誤: Gemini API call failed 解決: 檢查API Key是否正確設置,會自動回退到Mock模式 ``` ### **除錯方式** #### **檢查後端日誌** ```bash # 查看後端控制台輸出 # 尋找 "Starting sentence analysis" 和相關錯誤訊息 ``` #### **檢查前端控制台** ```javascript // 在瀏覽器開發者工具Console中查看 // API調用和錯誤訊息 ``` #### **檢查網路請求** ``` 瀏覽器 → F12 → Network → 查看API請求和回應 ``` ## 🚀 **生產部署** ### **環境變數設置** ```bash # 生產環境必需設置 GEMINI_API_KEY=你的真實Gemini API Key DRAMALING_SUPABASE_JWT_SECRET=你的JWT Secret ``` ### **健康檢查** ```bash # 檢查服務狀態 curl http://your-domain/health curl http://your-domain/api/ai/health ``` ## 📚 **開發參考** ### **相關文檔** - `/AI生成功能後端API規格.md` - 完整API技術規格 - `/AI生成網頁前端實際功能規格.md` - 前端功能規格 - `/AI生成網頁前端需求規格.md` - 前端需求規格 ### **核心檔案** - `backend/DramaLing.Api/Controllers/AIController.cs` - API控制器 - `backend/DramaLing.Api/Services/GeminiService.cs` - AI分析服務 - `frontend/app/generate/page.tsx` - 前端主頁面 - `frontend/components/ClickableTextV2.tsx` - 詞彙互動組件 --- **最後更新**: 2025-01-25 **狀態**: ✅ 功能完整,可投入使用