# TobiichiGPT - Rocket.Chat 整合指南 ## 🚀 快速開始 ### 1. 準備環境檔案 ```powershell # 複製環境變數範例 Copy-Item .env.example .env # 編輯 .env notepad .env ``` 設定以下變數: ```env DB_PASSWORD=your_secure_password_here ROCKETCHAT_USER=admin ROCKETCHAT_PASSWORD=your_secure_password_here ``` ### 2. 啟動服務 ```powershell # 啟動所有服務 docker-compose up -d # 查看啟動狀態 docker-compose ps # 查看日誌 docker-compose logs -f ``` **啟動順序**: 1. PostgreSQL (資料庫) 2. MongoDB (Rocket.Chat 資料庫) 3. MongoDB Replica Set 初始化 4. Rocket.Chat (管理員介面) 5. API (轉接層) 6. Open WebUI (用戶介面) ### 3. 初始化 Rocket.Chat 訪問 http://localhost:13000 #### 首次設定步驟: 1. **創建管理員帳號** - Username: `admin` (必須與 .env 中的 ROCKETCHAT_USER 一致) - Password: 設定密碼 (必須與 .env 中的 ROCKETCHAT_PASSWORD 一致) - Email: 填寫郵箱 2. **基本設定** - Organization Name: TobiichiGPT - Language: 繁體中文(可選) - Server Type: Private 3. **關閉註冊(可選)** - 進入 Administration → Settings → Accounts - 關閉 "Allow User Registration" ### 4. 配置 Open WebUI 1. 訪問 http://localhost:10060 2. 首次訪問會要求創建管理員帳號 3. 登入後,進入 **Settings** → **Connections** 4. 新增 OpenAI Connection: - **API Base URL**: `http://tobiichiGPT-api:8000/v1` - **API Key**: `sk-anything` (任意值即可) 5. 點選 **Save** 6. 模型列表會出現 **tobiichiGPT** ## 💬 使用流程 ### 用戶端(Open WebUI) 1. 在 Open WebUI 中選擇 **tobiichiGPT** 模型 2. 開始對話 3. 訊息會被轉發到 Rocket.Chat 4. 等待管理員回覆(畫面會顯示 "Thinking...") ### 管理員端(Rocket.Chat) 1. 登入 Rocket.Chat: http://localhost:13000 2. 左側會看到新增的用戶頻道,格式為 `#user-{user_id}` 3. 點開頻道,會看到執行緒列表(每個對話一個執行緒) 4. 點開執行緒,查看用戶訊息 5. **在執行緒中回覆**(重要!必須在執行緒內回覆) 6. 回覆後,用戶端會在 3 秒內收到回覆 ### 回覆方式說明 **正確回覆方式**: 1. 點擊訊息右側的 **Reply in Thread** 圖標 2. 在執行緒視窗中輸入回覆 3. 按 Enter 送出 **錯誤回覆方式**: - ❌ 直接在頻道主畫面回覆(不會被系統偵測到) - ❌ 私訊用戶(系統無法接收) ## 📊 系統監控 ### 健康檢查 訪問 http://localhost:18000/health 正常回應: ```json { "status": "healthy", "database": "ok", "rocketchat": "ok" } ``` ### 查看日誌 ```powershell # API 日誌 docker-compose logs -f api # Rocket.Chat 日誌 docker-compose logs -f rocketchat # Open WebUI 日誌 docker-compose logs -f openwebui ``` ### 常見日誌訊息 **API 正常運作**: ``` ✅ 資料庫連接成功 ✅ Rocket.Chat 登入成功 📝 收到訊息 用戶: 張三 對話: chat-abc 內容: 如何學習 Python?... ✅ 創建頻道: user-abc123 (張三) ✅ 創建執行緒訊息: xyz789 ✅ 收到管理員回覆 ✅ 完成回覆 [chat:chat-abc] ``` **錯誤訊息**: ``` ⚠️ Rocket.Chat 登入失敗: 401 ❌ Rocket.Chat 頻道操作錯誤: ... ⚠️ 等待回覆超時 (600秒) ``` ## 🔧 故障排除 ### 問題 1: Rocket.Chat 無法啟動 **症狀**:容器一直重啟 **解決方案**: ```powershell # 檢查 MongoDB 狀態 docker-compose logs mongo # 重新初始化 Replica Set docker-compose restart mongo-init-replica ``` ### 問題 2: API 無法登入 Rocket.Chat **症狀**:API 日誌顯示 "Rocket.Chat 登入失敗" **解決方案**: 1. 確認 Rocket.Chat 已完成初始化 2. 確認 .env 中的 ROCKETCHAT_USER 和 ROCKETCHAT_PASSWORD 正確 3. 重啟 API: ```powershell docker-compose restart api ``` ### 問題 3: 管理員回覆後用戶沒收到 **可能原因**: 1. ❌ 沒有在執行緒中回覆(在頻道主畫面回覆) 2. ❌ 回覆的訊息為空 **解決方案**: 1. 確認在執行緒視窗中回覆 2. 確認回覆內容不為空 3. 檢查 API 日誌是否有 "收到管理員回覆" ### 問題 4: 等待超時 **症狀**:用戶收到 "抱歉,目前客服繁忙,請稍後再試。" **原因**:管理員在 10 分鐘內未回覆 **解決方案**: - 修改 `api/server.py` 第 timeout 參數(預設 600 秒) - 或者加快回覆速度 ### 問題 5: Open WebUI 無法連接 API **症狀**:模型列表為空或顯示錯誤 **解決方案**: 1. 確認 API URL 正確: `http://tobiichiGPT-api:8000/v1` 2. 檢查容器網路: ```powershell docker network inspect tobiichiGPT-network ``` 3. 測試 API: ```powershell curl http://localhost:18000/v1/models ``` ## 🎨 進階配置 ### 修改等待超時時間 編輯 `api/server.py`: ```python async def wait_for_thread_reply(room_id: str, thread_id: str, timeout: int = 600): # 改為 1200 秒(20 分鐘) timeout: int = 1200 ``` ### 修改檢查間隔 編輯 `api/server.py`: ```python async def wait_for_thread_reply(room_id: str, thread_id: str, timeout: int = 600): check_interval = 3 # 改為 5 秒檢查一次 ``` ### 自訂頻道名稱格式 編輯 `api/server.py`: ```python async def get_or_create_channel(user_id: str, user_name: str = None): # 原本: channel_name = f"user-{user_id[:8]}" # 改為使用用戶名稱 channel_name = f"{user_name}" if user_name else f"user-{user_id[:8]}" ``` ## 📦 資料持久化 所有資料都會持久化保存: ``` /mnt/data/External/tobiichiGPT/ ├── db_data/ # PostgreSQL 資料 ├── mongo_data/ # Rocket.Chat 資料 ├── api_data/ # API 程式碼 └── ui_data/ # Open WebUI 資料 ``` ## 🔄 更新與維護 ### 更新 API 程式碼 ```powershell # 編輯程式碼 notepad api\server.py # 重啟服務 docker-compose restart api # 查看日誌確認 docker-compose logs -f api ``` ### 更新 Docker 映像 ```powershell # 拉取最新映像 docker-compose pull # 重新啟動 docker-compose up -d ``` ### 備份資料 ```powershell # 備份 PostgreSQL docker exec tobiichiGPT-postgres pg_dump -U tobiichi3227 tobiichiGPT > backup.sql # 備份 MongoDB docker exec tobiichiGPT-mongo mongodump --out /backup ``` ## 🎯 效能優化 ### 建議配置 **最小需求**: - CPU: 2 核心 - RAM: 4 GB - 磁碟: 20 GB **推薦配置**: - CPU: 4 核心 - RAM: 8 GB - 磁碟: 50 GB ### 容器資源限制 編輯 `docker-compose.yml` 加入: ```yaml rocketchat: # ... 其他設定 deploy: resources: limits: cpus: '2' memory: 2G reservations: cpus: '0.5' memory: 512M ``` ## 📞 技術支援 - GitHub Issues: [open-webui/open-webui](https://github.com/open-webui/open-webui/issues) - Rocket.Chat 文檔: [docs.rocket.chat](https://docs.rocket.chat) - Discord: [Rocket.Chat Community](https://discord.gg/rocketchat)