2025-06-10 09:01:53 +08:00
|
|
|
|
# 系統架構總覽
|
|
|
|
|
|
|
|
|
|
## 🏗️ 整體架構設計
|
|
|
|
|
|
|
|
|
|
MCP Feedback Enhanced 採用**單一活躍會話 + 持久化 Web UI**的創新架構設計,實現 AI 助手與用戶之間的高效、無縫交互體驗。
|
|
|
|
|
|
2025-06-12 22:45:23 +08:00
|
|
|
|
### 核心設計理念
|
|
|
|
|
|
|
|
|
|
- **Web-Only 架構**:完全基於 Web 技術,已移除所有 Electron 桌面應用功能
|
|
|
|
|
- **四層架構設計**:清晰的層次分離,便於維護和擴展
|
|
|
|
|
- **智能環境檢測**:自動識別本地、SSH Remote、WSL 環境並優化配置
|
|
|
|
|
- **單一活躍會話**:替代傳統多會話管理,提升性能和用戶體驗
|
|
|
|
|
- **模組化設計**:每層職責明確,支援獨立開發和測試
|
|
|
|
|
|
|
|
|
|
### 技術棧概覽
|
|
|
|
|
|
|
|
|
|
**後端技術**:
|
|
|
|
|
- Python 3.11+ (核心語言)
|
|
|
|
|
- FastMCP 2.0+ (MCP 協議實現)
|
|
|
|
|
- FastAPI 0.115+ (Web 框架)
|
|
|
|
|
- uvicorn 0.30+ (ASGI 服務器)
|
|
|
|
|
- WebSocket (實時通信)
|
|
|
|
|
|
|
|
|
|
**前端技術**:
|
|
|
|
|
- HTML5 + CSS3 (現代化 UI)
|
|
|
|
|
- JavaScript ES6+ (模組化架構)
|
|
|
|
|
- WebSocket API (雙向通信)
|
2025-06-14 20:10:27 +08:00
|
|
|
|
- Web Audio API (音效通知系統)
|
|
|
|
|
- localStorage API (本地數據存儲)
|
|
|
|
|
- ResizeObserver API (元素尺寸監控)
|
2025-06-12 22:45:23 +08:00
|
|
|
|
- 響應式設計 (多設備支援)
|
|
|
|
|
|
|
|
|
|
**開發工具**:
|
|
|
|
|
- pytest + pytest-asyncio (測試框架)
|
|
|
|
|
- Ruff + mypy (代碼品質)
|
|
|
|
|
- pre-commit (提交檢查)
|
|
|
|
|
- uv (依賴管理)
|
|
|
|
|
|
2025-06-10 09:01:53 +08:00
|
|
|
|
### 系統整體架構圖
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
graph TB
|
|
|
|
|
subgraph "AI 助手環境"
|
2025-06-12 22:45:23 +08:00
|
|
|
|
AI[AI 助手<br/>Cursor/Claude/Windsurf/Augment]
|
2025-06-10 09:01:53 +08:00
|
|
|
|
end
|
2025-06-11 03:25:08 +08:00
|
|
|
|
|
2025-06-12 22:45:23 +08:00
|
|
|
|
subgraph "MCP Feedback Enhanced - 四層架構"
|
|
|
|
|
subgraph "第一層:MCP 服務層"
|
|
|
|
|
SERVER[server.py<br/>MCP 服務器]
|
|
|
|
|
TOOL[interactive_feedback<br/>核心工具]
|
|
|
|
|
I18N[i18n.py<br/>國際化支援]
|
|
|
|
|
DEBUG[debug.py<br/>統一調試]
|
2025-06-10 09:01:53 +08:00
|
|
|
|
end
|
2025-06-11 03:25:08 +08:00
|
|
|
|
|
2025-06-12 22:45:23 +08:00
|
|
|
|
subgraph "第二層:Web UI 管理層"
|
|
|
|
|
MANAGER[WebUIManager<br/>單例管理器]
|
|
|
|
|
SESSION[WebFeedbackSession<br/>會話模型]
|
|
|
|
|
MODELS[數據模型<br/>FeedbackResult/SessionStatus]
|
2025-06-10 09:01:53 +08:00
|
|
|
|
end
|
2025-06-11 03:25:08 +08:00
|
|
|
|
|
2025-06-12 22:45:23 +08:00
|
|
|
|
subgraph "第三層:Web 服務層"
|
|
|
|
|
FASTAPI[FastAPI 應用<br/>main.py]
|
2025-06-10 09:01:53 +08:00
|
|
|
|
ROUTES[路由處理<br/>main_routes.py]
|
2025-06-12 22:45:23 +08:00
|
|
|
|
WS[WebSocket 通信<br/>實時雙向通信]
|
2025-06-10 09:01:53 +08:00
|
|
|
|
end
|
2025-06-11 03:25:08 +08:00
|
|
|
|
|
2025-06-12 22:45:23 +08:00
|
|
|
|
subgraph "第四層:前端交互層"
|
|
|
|
|
HTML[HTML 模板<br/>feedback.html/index.html]
|
|
|
|
|
JS[JavaScript 模組<br/>app.js + 功能模組]
|
|
|
|
|
CSS[樣式系統<br/>響應式設計]
|
2025-06-13 17:03:59 +08:00
|
|
|
|
PROMPT[提示詞管理<br/>PromptManager + UI 組件]
|
2025-06-14 20:10:27 +08:00
|
|
|
|
SESSION_MGR[會話管理<br/>SessionManager + 歷史追蹤<br/>v2.4.3 重構增強]
|
2025-06-13 17:03:59 +08:00
|
|
|
|
AUTO_SUBMIT[自動提交<br/>AutoSubmitManager + 倒數計時]
|
2025-06-14 20:10:27 +08:00
|
|
|
|
AUDIO_MGR[音效通知系統<br/>AudioManager + 自訂音效<br/>v2.4.3 新增]
|
|
|
|
|
MEMORY_MGR[智能記憶功能<br/>高度管理 + 一鍵複製<br/>v2.4.3 新增]
|
2025-06-10 09:01:53 +08:00
|
|
|
|
end
|
2025-06-11 03:25:08 +08:00
|
|
|
|
|
2025-06-10 09:01:53 +08:00
|
|
|
|
subgraph "工具層"
|
2025-06-12 22:45:23 +08:00
|
|
|
|
UTILS[工具模組<br/>error_handler/memory_monitor]
|
|
|
|
|
BROWSER[瀏覽器控制<br/>智能開啟]
|
|
|
|
|
NETWORK[網路工具<br/>埠管理]
|
|
|
|
|
CLEANUP[資源管理<br/>會話清理]
|
2025-06-10 09:01:53 +08:00
|
|
|
|
end
|
|
|
|
|
end
|
2025-06-11 03:25:08 +08:00
|
|
|
|
|
2025-06-10 09:01:53 +08:00
|
|
|
|
subgraph "用戶環境"
|
2025-06-12 22:45:23 +08:00
|
|
|
|
BROWSER_UI[Web 瀏覽器]
|
|
|
|
|
USER[用戶互動<br/>文字/圖片/命令]
|
2025-06-10 09:01:53 +08:00
|
|
|
|
end
|
2025-06-11 03:25:08 +08:00
|
|
|
|
|
2025-06-12 22:45:23 +08:00
|
|
|
|
subgraph "運行環境"
|
|
|
|
|
LOCAL[本地環境]
|
|
|
|
|
SSH[SSH Remote]
|
|
|
|
|
WSL[WSL 環境]
|
|
|
|
|
end
|
2025-06-11 03:25:08 +08:00
|
|
|
|
|
2025-06-12 22:45:23 +08:00
|
|
|
|
AI -->|MCP 協議| SERVER
|
|
|
|
|
SERVER --> TOOL
|
|
|
|
|
TOOL --> MANAGER
|
|
|
|
|
MANAGER --> SESSION
|
|
|
|
|
MANAGER --> FASTAPI
|
|
|
|
|
FASTAPI --> ROUTES
|
|
|
|
|
ROUTES --> HTML
|
|
|
|
|
HTML --> JS
|
|
|
|
|
JS --> WS
|
|
|
|
|
WS -->|HTTP/WebSocket| BROWSER_UI
|
|
|
|
|
BROWSER_UI --> USER
|
|
|
|
|
|
2025-06-13 17:03:59 +08:00
|
|
|
|
%% 新功能模組連接
|
|
|
|
|
JS --> PROMPT
|
|
|
|
|
JS --> SESSION_MGR
|
|
|
|
|
JS --> AUTO_SUBMIT
|
2025-06-14 20:10:27 +08:00
|
|
|
|
JS --> AUDIO_MGR
|
|
|
|
|
JS --> MEMORY_MGR
|
2025-06-13 17:03:59 +08:00
|
|
|
|
PROMPT --> WS
|
|
|
|
|
SESSION_MGR --> WS
|
|
|
|
|
AUTO_SUBMIT --> WS
|
2025-06-14 20:10:27 +08:00
|
|
|
|
AUDIO_MGR --> WS
|
|
|
|
|
MEMORY_MGR --> WS
|
2025-06-13 17:03:59 +08:00
|
|
|
|
|
2025-06-12 22:45:23 +08:00
|
|
|
|
I18N --> ROUTES
|
|
|
|
|
DEBUG --> SERVER
|
|
|
|
|
UTILS --> MANAGER
|
|
|
|
|
BROWSER --> FASTAPI
|
|
|
|
|
NETWORK --> FASTAPI
|
|
|
|
|
CLEANUP --> SESSION
|
|
|
|
|
|
|
|
|
|
LOCAL -.->|環境檢測| MANAGER
|
|
|
|
|
SSH -.->|環境檢測| MANAGER
|
|
|
|
|
WSL -.->|環境檢測| MANAGER
|
2025-06-11 03:25:08 +08:00
|
|
|
|
|
2025-06-10 09:01:53 +08:00
|
|
|
|
USER -->|回饋提交| WS
|
2025-06-12 22:45:23 +08:00
|
|
|
|
MODELS --> SESSION
|
2025-06-10 09:01:53 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 🎯 核心設計理念
|
|
|
|
|
|
2025-06-12 22:45:23 +08:00
|
|
|
|
### 1. Web-Only 架構優勢
|
|
|
|
|
|
|
|
|
|
**完全移除桌面應用依賴**:
|
|
|
|
|
- 無需安裝 Electron 或其他桌面應用框架
|
|
|
|
|
- 減少系統資源佔用和安全風險
|
|
|
|
|
- 支援所有具備現代瀏覽器的環境
|
|
|
|
|
- 簡化部署和維護流程
|
|
|
|
|
|
|
|
|
|
**跨平台統一體驗**:
|
|
|
|
|
- Windows、macOS、Linux 完全一致的用戶介面
|
|
|
|
|
- SSH Remote 和 WSL 環境無縫支援
|
|
|
|
|
- 響應式設計適應不同螢幕尺寸
|
|
|
|
|
- 無需平台特定的配置或調整
|
|
|
|
|
|
|
|
|
|
### 2. 四層架構設計
|
|
|
|
|
|
|
|
|
|
**第一層 - MCP 服務層**:
|
|
|
|
|
- 實現 MCP 協議標準
|
|
|
|
|
- 提供 `interactive_feedback` 核心工具
|
|
|
|
|
- 統一的國際化和調試支援
|
|
|
|
|
- 錯誤處理和日誌記錄
|
|
|
|
|
|
|
|
|
|
**第二層 - Web UI 管理層**:
|
|
|
|
|
- 單例模式的 WebUIManager
|
|
|
|
|
- 會話生命週期管理
|
|
|
|
|
- 數據模型和狀態管理
|
|
|
|
|
- 瀏覽器智能控制
|
|
|
|
|
|
|
|
|
|
**第三層 - Web 服務層**:
|
|
|
|
|
- FastAPI 高性能 Web 框架
|
|
|
|
|
- RESTful API 和 WebSocket 支援
|
|
|
|
|
- 路由處理和中間件
|
|
|
|
|
- 靜態資源服務
|
|
|
|
|
|
|
|
|
|
**第四層 - 前端交互層**:
|
|
|
|
|
- 模組化 JavaScript 架構
|
|
|
|
|
- 響應式 HTML/CSS 設計
|
|
|
|
|
- 實時 WebSocket 通信
|
|
|
|
|
- 豐富的用戶交互功能
|
2025-06-13 17:03:59 +08:00
|
|
|
|
- **提示詞管理系統**:常用提示詞的 CRUD 操作和快速選擇
|
2025-06-14 20:10:27 +08:00
|
|
|
|
- **會話管理功能**:會話歷史追蹤和統計分析(v2.4.3 重構增強)
|
2025-06-13 17:03:59 +08:00
|
|
|
|
- **自動提交機制**:倒數計時器和自動回饋提交
|
2025-06-14 20:10:27 +08:00
|
|
|
|
- **音效通知系統**:智能音效提醒和自訂音效管理(v2.4.3 新增)
|
|
|
|
|
- **智能記憶功能**:輸入框高度記憶和一鍵複製(v2.4.3 新增)
|
2025-06-12 22:45:23 +08:00
|
|
|
|
|
|
|
|
|
### 3. 單一活躍會話模式
|
2025-06-10 09:01:53 +08:00
|
|
|
|
```mermaid
|
|
|
|
|
stateDiagram-v2
|
|
|
|
|
[*] --> NoSession: 系統啟動
|
|
|
|
|
NoSession --> ActiveSession: AI 首次調用
|
|
|
|
|
ActiveSession --> SessionUpdated: AI 再次調用
|
|
|
|
|
SessionUpdated --> ActiveSession: 會話切換完成
|
|
|
|
|
ActiveSession --> Cleanup: 超時或手動清理
|
|
|
|
|
Cleanup --> NoSession: 資源釋放
|
2025-06-11 03:25:08 +08:00
|
|
|
|
|
2025-06-10 09:01:53 +08:00
|
|
|
|
note right of ActiveSession
|
|
|
|
|
只維護一個活躍會話
|
|
|
|
|
提升性能和用戶體驗
|
|
|
|
|
end note
|
|
|
|
|
```
|
|
|
|
|
|
2025-06-12 22:45:23 +08:00
|
|
|
|
### 4. 持久化 Web UI 架構
|
|
|
|
|
|
|
|
|
|
**智能會話管理**:
|
|
|
|
|
- **瀏覽器標籤頁保持**: 避免重複開啟瀏覽器視窗
|
|
|
|
|
- **WebSocket 連接復用**: 減少連接建立開銷和延遲
|
|
|
|
|
- **狀態無縫切換**: 從 SUBMITTED → WAITING 自動轉換
|
|
|
|
|
- **內容局部更新**: 只更新必要的 UI 元素,保持用戶操作狀態
|
|
|
|
|
|
|
|
|
|
**會話持久性**:
|
|
|
|
|
- 支援 AI 助手多次循環調用
|
|
|
|
|
- 會話狀態在調用間保持
|
|
|
|
|
- 自動超時清理機制
|
|
|
|
|
- 記憶體使用優化
|
|
|
|
|
|
|
|
|
|
### 5. 國際化與本地化
|
|
|
|
|
|
|
|
|
|
**多語言支援**:
|
|
|
|
|
- 繁體中文、簡體中文、英文
|
|
|
|
|
- 系統語言自動檢測
|
|
|
|
|
- 用戶偏好設定保存
|
|
|
|
|
- 動態語言切換
|
|
|
|
|
|
|
|
|
|
**本地化特性**:
|
|
|
|
|
- 文化適應的日期時間格式
|
|
|
|
|
- 本地化的錯誤訊息
|
|
|
|
|
- 地區特定的 UI 佈局
|
|
|
|
|
- 字體和排版優化
|
2025-06-10 09:01:53 +08:00
|
|
|
|
|
|
|
|
|
### 3. 智能環境檢測
|
|
|
|
|
```mermaid
|
|
|
|
|
flowchart TD
|
|
|
|
|
START[啟動檢測] --> LOCAL{本地環境?}
|
|
|
|
|
LOCAL -->|是| DIRECT[直接開啟瀏覽器]
|
|
|
|
|
LOCAL -->|否| REMOTE{SSH 遠程?}
|
|
|
|
|
REMOTE -->|是| TUNNEL[建立 SSH 隧道]
|
|
|
|
|
REMOTE -->|否| WSL{WSL 環境?}
|
|
|
|
|
WSL -->|是| WSLOPEN[WSL 瀏覽器開啟]
|
|
|
|
|
WSL -->|否| FALLBACK[回退模式]
|
2025-06-11 03:25:08 +08:00
|
|
|
|
|
2025-06-10 09:01:53 +08:00
|
|
|
|
DIRECT --> SUCCESS[成功啟動]
|
|
|
|
|
TUNNEL --> SUCCESS
|
|
|
|
|
WSLOPEN --> SUCCESS
|
|
|
|
|
FALLBACK --> SUCCESS
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 🔧 技術亮點
|
|
|
|
|
|
2025-06-12 22:45:23 +08:00
|
|
|
|
### 1. 創新的會話管理架構
|
|
|
|
|
|
|
|
|
|
**單一活躍會話設計**:
|
2025-06-10 09:01:53 +08:00
|
|
|
|
```python
|
|
|
|
|
# 傳統多會話設計 (已棄用)
|
|
|
|
|
self.sessions: Dict[str, WebFeedbackSession] = {}
|
|
|
|
|
|
|
|
|
|
# 創新單一活躍會話設計
|
|
|
|
|
self.current_session: Optional[WebFeedbackSession] = None
|
|
|
|
|
self.global_active_tabs: Dict[str, dict] = {} # 全局標籤頁狀態
|
|
|
|
|
```
|
|
|
|
|
|
2025-06-12 22:45:23 +08:00
|
|
|
|
**會話生命週期管理**:
|
|
|
|
|
- 自動會話創建和清理
|
|
|
|
|
- 超時檢測和資源回收
|
|
|
|
|
- 狀態持久化和恢復
|
|
|
|
|
- 併發安全的會話操作
|
|
|
|
|
|
|
|
|
|
### 2. 智能環境檢測與適配
|
|
|
|
|
|
|
|
|
|
**環境自動識別**:
|
|
|
|
|
- 本地開發環境檢測
|
|
|
|
|
- SSH Remote 環境識別
|
|
|
|
|
- WSL 子系統檢測
|
|
|
|
|
- 容器化環境支援
|
|
|
|
|
|
|
|
|
|
**瀏覽器智能開啟**:
|
2025-06-10 09:01:53 +08:00
|
|
|
|
- **活躍標籤頁檢測**: 避免重複開啟瀏覽器視窗
|
|
|
|
|
- **跨平台支援**: Windows, macOS, Linux 自動適配
|
|
|
|
|
- **環境感知**: SSH/WSL 環境特殊處理
|
2025-06-12 22:45:23 +08:00
|
|
|
|
- **錯誤恢復**: 開啟失敗時的備用方案
|
|
|
|
|
|
|
|
|
|
### 3. 高性能實時通信
|
2025-06-10 09:01:53 +08:00
|
|
|
|
|
2025-06-12 22:45:23 +08:00
|
|
|
|
**WebSocket 雙向通信**:
|
|
|
|
|
- 前後端狀態實時同步
|
|
|
|
|
- 低延遲消息傳遞
|
|
|
|
|
- 自動重連機制
|
|
|
|
|
- 心跳檢測保持連接
|
|
|
|
|
|
|
|
|
|
**狀態管理優化**:
|
2025-06-10 09:01:53 +08:00
|
|
|
|
- **會話更新通知**: 立即推送會話變更
|
2025-06-12 22:45:23 +08:00
|
|
|
|
- **增量更新**: 只傳輸變更的數據
|
|
|
|
|
- **狀態快照**: 支援狀態回滾和恢復
|
|
|
|
|
- **錯誤處理**: 連接斷線自動重連
|
|
|
|
|
|
|
|
|
|
### 4. 模組化前端架構
|
|
|
|
|
|
|
|
|
|
**JavaScript 模組系統**:
|
|
|
|
|
```javascript
|
|
|
|
|
// 模組化載入順序
|
|
|
|
|
utils → tab-manager → websocket-manager →
|
|
|
|
|
image-handler → settings-manager → ui-manager →
|
|
|
|
|
auto-refresh-manager → app
|
|
|
|
|
```
|
2025-06-10 09:01:53 +08:00
|
|
|
|
|
2025-06-12 22:45:23 +08:00
|
|
|
|
**功能模組分離**:
|
|
|
|
|
- 標籤頁管理 (tab-manager.js)
|
|
|
|
|
- WebSocket 通信 (websocket-manager.js)
|
|
|
|
|
- 圖片處理 (image-handler.js)
|
|
|
|
|
- 設定管理 (settings-manager.js)
|
|
|
|
|
- UI 控制 (ui-manager.js)
|
|
|
|
|
- 自動刷新 (auto-refresh-manager.js)
|
2025-06-13 17:03:59 +08:00
|
|
|
|
- **提示詞管理模組群組**:
|
|
|
|
|
- prompt-manager.js (核心管理器)
|
|
|
|
|
- prompt-modal.js (編輯彈窗)
|
|
|
|
|
- prompt-settings-ui.js (設定界面)
|
|
|
|
|
- prompt-input-buttons.js (快速選擇按鈕)
|
2025-06-14 20:10:27 +08:00
|
|
|
|
- **會話管理模組群組(v2.4.3 重構增強)**:
|
2025-06-13 17:03:59 +08:00
|
|
|
|
- session-manager.js (會話控制器)
|
2025-06-14 20:10:27 +08:00
|
|
|
|
- session-data-manager.js (數據管理器,新增本地存儲)
|
|
|
|
|
- session-ui-renderer.js (UI 渲染器,頁籤化設計)
|
|
|
|
|
- session-details-modal.js (詳情彈窗)
|
|
|
|
|
- **音效通知模組群組(v2.4.3 新增)**:
|
|
|
|
|
- audio-manager.js (音效管理器)
|
|
|
|
|
- audio-settings-ui.js (音效設定界面)
|
|
|
|
|
- **智能記憶功能(v2.4.3 新增)**:
|
|
|
|
|
- textarea-height-manager.js (輸入框高度管理)
|
|
|
|
|
- 一鍵複製功能整合在各 UI 組件中
|
2025-06-13 17:03:59 +08:00
|
|
|
|
- **自動提交功能**:
|
|
|
|
|
- 整合在 app.js 中的 AutoSubmitManager
|
|
|
|
|
- 與提示詞管理和設定管理的深度整合
|
2025-06-12 22:45:23 +08:00
|
|
|
|
|
|
|
|
|
## 📊 性能特性與優化
|
2025-06-10 09:01:53 +08:00
|
|
|
|
|
|
|
|
|
### 資源使用優化
|
2025-06-12 22:45:23 +08:00
|
|
|
|
|
|
|
|
|
**記憶體管理**:
|
|
|
|
|
- **單一會話模式**: 相比傳統多會話減少 60% 記憶體使用
|
|
|
|
|
- **智能垃圾回收**: 自動清理過期會話和臨時資源
|
|
|
|
|
- **記憶體監控**: 實時監控記憶體使用情況
|
|
|
|
|
- **資源池化**: 重用常用對象減少分配開銷
|
|
|
|
|
|
|
|
|
|
**網路性能**:
|
2025-06-10 09:01:53 +08:00
|
|
|
|
- **連接復用**: WebSocket 連接保持,減少建立開銷
|
2025-06-12 22:45:23 +08:00
|
|
|
|
- **數據壓縮**: 自動壓縮大型數據傳輸
|
|
|
|
|
- **批量操作**: 合併多個小請求減少網路往返
|
|
|
|
|
- **快取策略**: 靜態資源和翻譯文件快取
|
|
|
|
|
|
|
|
|
|
**啟動性能**:
|
|
|
|
|
- **延遲載入**: 按需載入 JavaScript 模組
|
|
|
|
|
- **預載入優化**: 關鍵資源優先載入
|
|
|
|
|
- **並行初始化**: 多個組件並行啟動
|
|
|
|
|
- **快速響應**: 首屏渲染時間 < 500ms
|
2025-06-10 09:01:53 +08:00
|
|
|
|
|
|
|
|
|
### 用戶體驗提升
|
2025-06-12 22:45:23 +08:00
|
|
|
|
|
|
|
|
|
**交互響應性**:
|
2025-06-10 09:01:53 +08:00
|
|
|
|
- **零等待切換**: 會話更新無需重新載入頁面
|
2025-06-12 22:45:23 +08:00
|
|
|
|
- **即時反饋**: 用戶操作立即響應
|
|
|
|
|
- **平滑動畫**: CSS3 動畫提升視覺體驗
|
|
|
|
|
- **鍵盤快捷鍵**: 提升操作效率
|
|
|
|
|
|
|
|
|
|
**連續工作流程**:
|
2025-06-10 09:01:53 +08:00
|
|
|
|
- **連續交互**: 支援 AI 助手多次循環調用
|
2025-06-12 22:45:23 +08:00
|
|
|
|
- **狀態保持**: 用戶輸入和設定在會話間保持
|
|
|
|
|
- **自動聚焦**: 新會話自動聚焦到輸入框
|
|
|
|
|
- **智能預填**: 根據上下文預填常用內容
|
|
|
|
|
|
|
|
|
|
**視覺與反饋**:
|
|
|
|
|
- **實時狀態指示**: 連接狀態、處理進度即時顯示
|
|
|
|
|
- **進度條**: 長時間操作顯示進度
|
|
|
|
|
- **錯誤提示**: 友善的錯誤訊息和解決建議
|
|
|
|
|
- **成功確認**: 操作完成的明確視覺反饋
|
|
|
|
|
|
|
|
|
|
### 可靠性保證
|
|
|
|
|
|
|
|
|
|
**錯誤處理**:
|
|
|
|
|
- **優雅降級**: 功能失效時提供備用方案
|
|
|
|
|
- **自動重試**: 網路錯誤自動重試機制
|
|
|
|
|
- **錯誤恢復**: 從錯誤狀態自動恢復
|
|
|
|
|
- **日誌記錄**: 詳細的錯誤日誌便於調試
|
|
|
|
|
|
|
|
|
|
**穩定性措施**:
|
|
|
|
|
- **超時保護**: 防止長時間無響應
|
|
|
|
|
- **資源限制**: 防止資源耗盡
|
|
|
|
|
- **併發控制**: 安全的多執行緒操作
|
|
|
|
|
- **數據驗證**: 嚴格的輸入驗證和清理
|
2025-06-10 09:01:53 +08:00
|
|
|
|
|
2025-06-14 20:10:27 +08:00
|
|
|
|
## 🆕 v2.4.3 版本新功能架構
|
|
|
|
|
|
|
|
|
|
### 1. 音效通知系統架構
|
|
|
|
|
|
|
|
|
|
**系統組成**:
|
|
|
|
|
```mermaid
|
|
|
|
|
graph TB
|
|
|
|
|
subgraph "音效通知系統"
|
|
|
|
|
AM[AudioManager<br/>音效管理器]
|
|
|
|
|
ASU[AudioSettingsUI<br/>設定界面]
|
|
|
|
|
DA[DefaultAudios<br/>內建音效]
|
|
|
|
|
CA[CustomAudios<br/>自訂音效]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
subgraph "Web Audio API"
|
|
|
|
|
AUDIO[Audio 物件]
|
|
|
|
|
BASE64[Base64 音效數據]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
subgraph "設定存儲"
|
|
|
|
|
LS[localStorage]
|
|
|
|
|
SM[SettingsManager]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
AM --> ASU
|
|
|
|
|
AM --> DA
|
|
|
|
|
AM --> CA
|
|
|
|
|
AM --> AUDIO
|
|
|
|
|
AUDIO --> BASE64
|
|
|
|
|
ASU --> SM
|
|
|
|
|
SM --> LS
|
|
|
|
|
|
|
|
|
|
WS[WebSocket] -->|會話更新事件| AM
|
|
|
|
|
AM -->|播放通知| AUDIO
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**核心特性**:
|
|
|
|
|
- **內建音效**: 經典提示音、通知鈴聲、輕柔鐘聲
|
|
|
|
|
- **自訂音效**: 支援 MP3、WAV、OGG 格式上傳
|
|
|
|
|
- **音量控制**: 0-100% 可調節音量
|
|
|
|
|
- **測試播放**: 即時測試音效效果
|
|
|
|
|
- **設定持久化**: 音效偏好自動保存
|
|
|
|
|
|
|
|
|
|
### 2. 會話管理重構架構
|
|
|
|
|
|
|
|
|
|
**從側邊欄到頁籤的遷移**:
|
|
|
|
|
```mermaid
|
|
|
|
|
graph LR
|
|
|
|
|
subgraph "v2.4.2 設計"
|
|
|
|
|
SIDEBAR[左側邊欄<br/>會話管理]
|
|
|
|
|
COMPAT[瀏覽器相容性問題<br/>小視窗按鈕無法點擊]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
subgraph "v2.4.3 重構"
|
|
|
|
|
TAB[獨立頁籤<br/>會話管理]
|
|
|
|
|
ENHANCED[增強功能<br/>本地存儲 + 隱私控制]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
SIDEBAR -->|重構| TAB
|
|
|
|
|
COMPAT -->|解決| ENHANCED
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**新增功能模組**:
|
|
|
|
|
- **session-ui-renderer.js**: 專門的 UI 渲染器
|
|
|
|
|
- **session-details-modal.js**: 會話詳情彈窗
|
|
|
|
|
- **本地歷史存儲**: 支援 72 小時可配置保存期限
|
|
|
|
|
- **隱私控制**: 三級用戶訊息記錄設定
|
|
|
|
|
- **數據管理**: 匯出和清理功能
|
|
|
|
|
|
|
|
|
|
### 3. 智能記憶功能架構
|
|
|
|
|
|
|
|
|
|
**輸入框高度管理**:
|
|
|
|
|
```mermaid
|
|
|
|
|
graph TB
|
|
|
|
|
subgraph "高度管理系統"
|
|
|
|
|
THM[TextareaHeightManager<br/>高度管理器]
|
|
|
|
|
RO[ResizeObserver<br/>尺寸監控]
|
|
|
|
|
DEBOUNCE[防抖機制<br/>500ms 延遲]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
subgraph "存儲機制"
|
|
|
|
|
SETTINGS[SettingsManager]
|
|
|
|
|
HEIGHT_KEY[combinedFeedbackTextHeight]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
TEXTAREA[combinedFeedbackText] --> RO
|
|
|
|
|
RO --> THM
|
|
|
|
|
THM --> DEBOUNCE
|
|
|
|
|
DEBOUNCE --> SETTINGS
|
|
|
|
|
SETTINGS --> HEIGHT_KEY
|
|
|
|
|
|
|
|
|
|
THM -->|恢復高度| TEXTAREA
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**一鍵複製功能**:
|
|
|
|
|
- **專案路徑複製**: 點擊路徑文字即可複製
|
|
|
|
|
- **會話ID複製**: 點擊會話ID即可複製
|
|
|
|
|
- **複製反饋**: 視覺提示複製成功
|
|
|
|
|
- **國際化支援**: 複製提示支援多語言
|
|
|
|
|
|
2025-06-10 09:01:53 +08:00
|
|
|
|
## 🔄 核心工作流程
|
|
|
|
|
|
2025-06-14 20:10:27 +08:00
|
|
|
|
### AI 助手調用流程(v2.4.3 增強)
|
2025-06-10 09:01:53 +08:00
|
|
|
|
```mermaid
|
|
|
|
|
sequenceDiagram
|
|
|
|
|
participant AI as AI 助手
|
|
|
|
|
participant MCP as MCP 服務
|
|
|
|
|
participant WM as WebUIManager
|
|
|
|
|
participant UI as Web UI
|
2025-06-14 20:10:27 +08:00
|
|
|
|
participant AUDIO as 音效管理器
|
2025-06-10 09:01:53 +08:00
|
|
|
|
participant User as 用戶
|
2025-06-11 03:25:08 +08:00
|
|
|
|
|
2025-06-10 09:01:53 +08:00
|
|
|
|
AI->>MCP: interactive_feedback()
|
|
|
|
|
MCP->>WM: 創建/更新會話
|
|
|
|
|
WM->>UI: 啟動 Web 服務
|
|
|
|
|
WM->>User: 智能開啟瀏覽器
|
2025-06-14 20:10:27 +08:00
|
|
|
|
|
|
|
|
|
Note over UI,AUDIO: v2.4.3 新增音效通知
|
|
|
|
|
UI->>AUDIO: 會話更新事件
|
|
|
|
|
AUDIO->>User: 播放通知音效
|
|
|
|
|
|
2025-06-10 09:01:53 +08:00
|
|
|
|
User->>UI: 提交回饋
|
|
|
|
|
UI->>WM: WebSocket 傳送
|
|
|
|
|
WM->>MCP: 回饋完成
|
|
|
|
|
MCP->>AI: 返回結果
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 多次循環調用
|
|
|
|
|
```mermaid
|
|
|
|
|
graph LR
|
|
|
|
|
A[AI 首次調用] --> B[用戶回饋]
|
|
|
|
|
B --> C[AI 處理回饋]
|
|
|
|
|
C --> D[AI 再次調用]
|
|
|
|
|
D --> E[會話無縫更新]
|
|
|
|
|
E --> F[用戶再次回饋]
|
|
|
|
|
F --> G[持續循環...]
|
2025-06-11 03:25:08 +08:00
|
|
|
|
|
2025-06-10 09:01:53 +08:00
|
|
|
|
style D fill:#e1f5fe
|
|
|
|
|
style E fill:#e8f5e8
|
|
|
|
|
```
|
|
|
|
|
|
2025-06-12 22:45:23 +08:00
|
|
|
|
## 🔍 安全性考量
|
|
|
|
|
|
|
|
|
|
### 數據安全
|
|
|
|
|
|
|
|
|
|
**輸入驗證**:
|
|
|
|
|
- 嚴格的參數類型檢查
|
|
|
|
|
- SQL 注入防護
|
|
|
|
|
- XSS 攻擊防護
|
|
|
|
|
- 文件上傳安全檢查
|
|
|
|
|
|
|
|
|
|
**網路安全**:
|
|
|
|
|
- 本地綁定 (127.0.0.1) 減少攻擊面
|
|
|
|
|
- WebSocket 連接驗證
|
|
|
|
|
- CORS 政策控制
|
|
|
|
|
- 安全標頭設定
|
|
|
|
|
|
|
|
|
|
**資源保護**:
|
|
|
|
|
- 文件系統訪問限制
|
|
|
|
|
- 記憶體使用限制
|
|
|
|
|
- 執行時間限制
|
|
|
|
|
- 臨時文件安全清理
|
|
|
|
|
|
|
|
|
|
## 🚀 部署與維護
|
|
|
|
|
|
|
|
|
|
### 環境需求
|
|
|
|
|
|
|
|
|
|
**最低系統需求**:
|
|
|
|
|
- Python 3.11 或更高版本
|
|
|
|
|
- 512MB 可用記憶體
|
|
|
|
|
- 現代瀏覽器 (Chrome 90+, Firefox 88+, Safari 14+)
|
|
|
|
|
- 網路連接 (本地環境可離線運行)
|
|
|
|
|
|
|
|
|
|
**推薦配置**:
|
|
|
|
|
- Python 3.12
|
|
|
|
|
- 1GB 可用記憶體
|
|
|
|
|
- SSD 儲存
|
|
|
|
|
- 穩定的網路連接
|
|
|
|
|
|
|
|
|
|
### 維護特性
|
|
|
|
|
|
|
|
|
|
**自動化維護**:
|
|
|
|
|
- 自動日誌輪轉
|
|
|
|
|
- 定期資源清理
|
|
|
|
|
- 健康狀態檢查
|
|
|
|
|
- 性能指標收集
|
|
|
|
|
|
|
|
|
|
**監控與診斷**:
|
|
|
|
|
- 詳細的調試日誌
|
|
|
|
|
- 性能指標追蹤
|
|
|
|
|
- 錯誤統計分析
|
|
|
|
|
- 系統資源監控
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 📚 相關文檔
|
|
|
|
|
|
|
|
|
|
- **[組件詳細說明](./component-details.md)** - 深入了解各層組件的具體實現
|
|
|
|
|
- **[交互流程文檔](./interaction-flows.md)** - 詳細的用戶交互和系統流程
|
|
|
|
|
- **[API 參考文檔](./api-reference.md)** - 完整的 API 端點和參數說明
|
|
|
|
|
- **[部署指南](./deployment-guide.md)** - 環境配置和部署最佳實踐
|
|
|
|
|
|
2025-06-10 09:01:53 +08:00
|
|
|
|
---
|
|
|
|
|
|
2025-06-14 20:10:27 +08:00
|
|
|
|
**版本**: 2.4.3
|
|
|
|
|
**最後更新**: 2025年6月14日
|
2025-06-12 22:45:23 +08:00
|
|
|
|
**維護者**: Minidoracat
|
|
|
|
|
**架構類型**: Web-Only 四層架構
|
2025-06-14 20:10:27 +08:00
|
|
|
|
**v2.4.3 新功能**: 音效通知系統、會話管理重構、智能記憶功能、一鍵複製
|
|
|
|
|
**歷史功能**: 提示詞管理、自動提交、會話管理、語系切換優化
|