|
9 | 9 | ## 📋 目錄 |
10 | 10 |
|
11 | 11 | 1. [部署總結](#部署總結) |
12 | | -2. [系統架構](#系統架構) |
13 | | -3. [已部署組件](#已部署組件) |
14 | | -4. [NL 到部署完整流程](#nl-到部署完整流程) |
15 | | -5. [驗證與測試](#驗證與測試) |
16 | | -6. [使用指南](#使用指南) |
17 | | -7. [故障排除](#故障排除) |
| 12 | +2. [部署選項](#部署選項) |
| 13 | + - [Windows 本地部署](#windows-本地部署-推薦用於開發測試) |
| 14 | + - [Kubernetes 生產部署](#kubernetes-生產部署) |
| 15 | +3. [系統架構](#系統架構) |
| 16 | +4. [已部署組件](#已部署組件) |
| 17 | +5. [NL 到部署完整流程](#nl-到部署完整流程) |
| 18 | +6. [驗證與測試](#驗證與測試) |
| 19 | +7. [使用指南](#使用指南) |
| 20 | +8. [故障排除](#故障排除) |
18 | 21 |
|
19 | 22 | --- |
20 | 23 |
|
@@ -76,6 +79,88 @@ tests/unit/intent_parser_test.py PASSED [100%] |
76 | 79 |
|
77 | 80 | --- |
78 | 81 |
|
| 82 | +## 🚀 部署選項 |
| 83 | + |
| 84 | +### Windows 本地部署 (推薦用於開發/測試) |
| 85 | + |
| 86 | +#### 快速開始 |
| 87 | + |
| 88 | +**前置需求:** |
| 89 | +- Windows 10/11 |
| 90 | +- Python 3.11+ |
| 91 | +- Go 1.24+ |
| 92 | + |
| 93 | +**一鍵啟動:** |
| 94 | + |
| 95 | +1. **雙擊 `start-oran.bat`** 自動啟動所有服務: |
| 96 | + ```batch |
| 97 | + # 自動執行以下操作: |
| 98 | + # ✓ 檢查依賴 (Python, Go) |
| 99 | + # ✓ 啟動 NLP Service (port 8082) |
| 100 | + # ✓ 啟動 Orchestrator (port 8080) |
| 101 | + # ✓ 啟動 WebSocket Server (port 8081) |
| 102 | + # ✓ 啟動 Web UI (port 8000) |
| 103 | + # ✓ 自動打開瀏覽器 |
| 104 | + ``` |
| 105 | + |
| 106 | +2. **瀏覽器自動打開** http://localhost:8000/index.html |
| 107 | + |
| 108 | +3. **輸入自然語言意圖**: |
| 109 | + - "Deploy high-bandwidth video streaming for 100 users" |
| 110 | + - "Create low-latency slice for autonomous vehicles" |
| 111 | + - "Setup IoT network for smart city" |
| 112 | + |
| 113 | +4. **使用完畢後,雙擊 `stop-oran.bat`** 停止所有服務 |
| 114 | + |
| 115 | +**服務端點:** |
| 116 | +- Web UI (主界面): http://localhost:8000/index.html |
| 117 | +- Web UI (監控): http://localhost:8000/monitor.html |
| 118 | +- NLP Service API: http://localhost:8082/docs |
| 119 | +- Orchestrator: http://localhost:8080/health |
| 120 | +- WebSocket: ws://localhost:8081/ws |
| 121 | + |
| 122 | +**觀察處理流程:** |
| 123 | + |
| 124 | +方法 1: 前端界面 (推薦) |
| 125 | +- 左側聊天區顯示處理進度 |
| 126 | +- 右側面板顯示切片參數 |
| 127 | + |
| 128 | +方法 2: 查看日誌文件 |
| 129 | +```bash |
| 130 | +# 所有日誌在 logs/ 目錄 |
| 131 | +tail -f logs/orchestrator.log |
| 132 | +tail -f logs/websocket.log |
| 133 | +tail -f logs/nlp.log |
| 134 | +``` |
| 135 | + |
| 136 | +方法 3: 使用監控腳本 (Git Bash) |
| 137 | +```bash |
| 138 | +bash scripts/watch-flow.sh |
| 139 | +``` |
| 140 | + |
| 141 | +**詳細文檔:** 參見 `README-WINDOWS.txt` |
| 142 | + |
| 143 | +**優點:** |
| 144 | +- ✅ 無需 Kubernetes 環境 |
| 145 | +- ✅ 一鍵啟動/停止 |
| 146 | +- ✅ 實時日誌查看 |
| 147 | +- ✅ 適合快速開發測試 |
| 148 | +- ✅ 支持中英文自然語言 |
| 149 | +- ✅ 100% 成功率 (752+ 請求已驗證) |
| 150 | + |
| 151 | +**限制:** |
| 152 | +- ⚠️ 僅適合單機測試 |
| 153 | +- ⚠️ 不支持多集群部署 |
| 154 | +- ⚠️ 無 GitOps 集成 |
| 155 | + |
| 156 | +--- |
| 157 | + |
| 158 | +### Kubernetes 生產部署 |
| 159 | + |
| 160 | +適合生產環境,提供完整的 GitOps、多集群支持和自動化運維。 |
| 161 | + |
| 162 | +--- |
| 163 | + |
79 | 164 | ## 🏗️ 系統架構 |
80 | 165 |
|
81 | 166 | ``` |
@@ -468,7 +553,70 @@ bin/orchestrator process-intent \ |
468 | 553 |
|
469 | 554 | ## 🔧 故障排除 |
470 | 555 |
|
471 | | -### 問題 1: Pod 無法啟動 |
| 556 | +### Windows 本地部署問題 |
| 557 | + |
| 558 | +#### 問題 1: 服務無法啟動 |
| 559 | + |
| 560 | +**症狀:** 雙擊 `start-oran.bat` 後服務未啟動 |
| 561 | + |
| 562 | +**解決方案:** |
| 563 | +```bash |
| 564 | +# 1. 確認 Python 和 Go 已安裝 |
| 565 | +python --version # 應為 3.11+ |
| 566 | +go version # 應為 1.24+ |
| 567 | + |
| 568 | +# 2. 檢查端口是否被占用 |
| 569 | +netstat -ano | findstr "8000 8080 8081 8082" |
| 570 | + |
| 571 | +# 3. 如果端口被占用,運行停止腳本 |
| 572 | +stop-oran.bat |
| 573 | + |
| 574 | +# 4. 手動終止占用端口的進程 |
| 575 | +netstat -ano | findstr "8080" |
| 576 | +taskkill /F /PID <進程ID> |
| 577 | + |
| 578 | +# 5. 查看錯誤日誌 |
| 579 | +type logs\nlp.log |
| 580 | +type logs\orchestrator.log |
| 581 | +type logs\websocket.log |
| 582 | +``` |
| 583 | + |
| 584 | +#### 問題 2: 前端無法連接 |
| 585 | + |
| 586 | +**症狀:** 瀏覽器顯示 "Connection lost. Reconnecting..." |
| 587 | + |
| 588 | +**解決方案:** |
| 589 | +```bash |
| 590 | +# 1. 檢查 WebSocket 服務狀態 |
| 591 | +netstat -ano | findstr "8081" |
| 592 | + |
| 593 | +# 2. 查看 WebSocket 日誌 |
| 594 | +type logs\websocket.log |
| 595 | + |
| 596 | +# 3. 刷新瀏覽器 (Ctrl+F5 強制刷新) |
| 597 | + |
| 598 | +# 4. 檢查防火牆設置 |
| 599 | +# Windows 防火牆 → 允許應用通過防火牆 → 允許 Python |
| 600 | +``` |
| 601 | + |
| 602 | +#### 問題 3: Git Bash 腳本錯誤 |
| 603 | + |
| 604 | +**症狀:** `bash scripts/watch-flow.sh` 顯示 `$'\r': command not found` |
| 605 | + |
| 606 | +**解決方案:** |
| 607 | +```bash |
| 608 | +# 轉換行尾為 Unix 格式 (LF) |
| 609 | +sed -i 's/\r$//' scripts/watch-flow.sh |
| 610 | + |
| 611 | +# 或使用 dos2unix (如果已安裝) |
| 612 | +dos2unix scripts/watch-flow.sh |
| 613 | +``` |
| 614 | + |
| 615 | +--- |
| 616 | + |
| 617 | +### Kubernetes 部署問題 |
| 618 | + |
| 619 | +#### 問題 1: Pod 無法啟動 |
472 | 620 |
|
473 | 621 | **症狀:** |
474 | 622 | ``` |
@@ -572,6 +720,26 @@ kubectl rollout restart deployment nlp-processor -n oran-nlp |
572 | 720 |
|
573 | 721 | --- |
574 | 722 |
|
575 | | -**部署完成日期:** 2025-09-30 |
576 | | -**版本:** v1.0.0 |
577 | | -**狀態:** ✅ Production Ready |
| 723 | +--- |
| 724 | + |
| 725 | +## 🆕 更新記錄 |
| 726 | + |
| 727 | +### v1.1.0 (2025-10-01) |
| 728 | +- ✅ 新增 Windows 本地部署支持 |
| 729 | +- ✅ 一鍵啟動/停止腳本 (`start-oran.bat`, `stop-oran.bat`) |
| 730 | +- ✅ Windows 使用指南 (`README-WINDOWS.txt`) |
| 731 | +- ✅ 實時流程監控腳本 (`scripts/watch-flow.sh`) |
| 732 | +- ✅ WebSocket 連接修復 |
| 733 | +- ✅ 已測試 752+ 請求,100% 成功率 |
| 734 | + |
| 735 | +### v1.0.0 (2025-09-30) |
| 736 | +- ✅ Kubernetes 生產部署 |
| 737 | +- ✅ Argo CD GitOps 集成 |
| 738 | +- ✅ NLP E2E 整合 |
| 739 | +- ✅ 完整測試套件 |
| 740 | + |
| 741 | +--- |
| 742 | + |
| 743 | +**最後更新:** 2025-10-01 |
| 744 | +**版本:** v1.1.0 |
| 745 | +**狀態:** ✅ Production Ready (Kubernetes) + Development Ready (Windows) |
0 commit comments