docs: 订正 FAM-UI 部署位置描述(NAS -> 云服务器 Caddy)

多处历史遗留描述仍写 FAM-UI 部署在 NAS(含不存在的 static_app.py),
实际已迁至甲骨文云服务器由 Caddy 静态托管,逐处订正。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
ericwyuan
2026-08-31 21:50:42 +08:00
parent 5e1230d9b0
commit feb096ff3d
2 changed files with 7 additions and 7 deletions

View File

@@ -198,9 +198,9 @@ Orchestrator 视觉阶段按 `fallback` 模式顺序降级Gemini → NVIDIA N
| Model-Adapters | `model_adapters/` | `BaseModelAdapter.analyze_video(video_path, known_members_context, event_start_time)`GeminiFiles API/ NVIDIA整视频 `video_url`)——**只有视觉分析用2026-08-23 起不再含 Ollama/文字模型**,问答模型完全移交 AI-Gateway | | Model-Adapters | `model_adapters/` | `BaseModelAdapter.analyze_video(video_path, known_members_context, event_start_time)`GeminiFiles API/ NVIDIA整视频 `video_url`)——**只有视觉分析用2026-08-23 起不再含 Ollama/文字模型**,问答模型完全移交 AI-Gateway |
| QA-Proxy | `qa.py` | **2026-08-23 重写为 HTTP 转发客户端**(原来自己遍历适配器 `chat()` 做 NVIDIA→Gemini→Ollama 三级降级的逻辑已整个搬到 AI-Gateway调 AI-Gateway `/v1/chat/completions`,把 OpenAI 兼容响应翻译回原有 `run_qa`/`run_qa_stream` 契约,`api_gateway.py` 和 FAM-Core 调用方零改动 | | QA-Proxy | `qa.py` | **2026-08-23 重写为 HTTP 转发客户端**(原来自己遍历适配器 `chat()` 做 NVIDIA→Gemini→Ollama 三级降级的逻辑已整个搬到 AI-Gateway调 AI-Gateway `/v1/chat/completions`,把 OpenAI 兼容响应翻译回原有 `run_qa`/`run_qa_stream` 契约,`api_gateway.py` 和 FAM-Core 调用方零改动 |
### 3.3 FAM-UINAS 端 ### 3.3 FAM-UI云服务器端Caddy 托管
Vue3 + Vite + Tailwind SPA`fam-ui/src/views/*.vue`,构建产物 `fam-ui/dist/` 由 FAM-Core `static_app.py` 托管Vue Router history 模式),页面均读本地同步镜像: Vue3 + Vite + Tailwind SPA`fam-ui/src/views/*.vue`,构建产物 `fam-ui/dist/` 部署到甲骨文云服务器由 Caddy 静态托管Vue Router history 模式;`/api/*` 经 frp 隧道反代回 NAS FAM-Core),页面均读本地同步镜像:
| 页面 | 功能 | | 页面 | 功能 |
|------|------| |------|------|
@@ -541,7 +541,7 @@ task_id=28930s 测试片段)全链路打通:推送 5.7MB → Edge 分析
| 组件 | 节点 | 路径 | 启动 | | 组件 | 节点 | 路径 | 启动 |
|------|------|------|------| |------|------|------|------|
| FAM-Core | NAS | `/volume1/web/sentinel-home-ai/fam-core/` | `bash start_core.sh`gunicorn -w 1 :8000source .env 注入 DSM_*/ORACLE_SYNC_TOKEN/AUTH_HUB_* | | FAM-Core | NAS | `/volume1/web/sentinel-home-ai/fam-core/` | `bash start_core.sh`gunicorn -w 1 :8000source .env 注入 DSM_*/ORACLE_SYNC_TOKEN/AUTH_HUB_* |
| FAM-UI | NAS | `/volume1/web/sentinel-home-ai/fam-ui/dist/` | Vue3 构建产物,由 FAM-Core `static_app.py` 托管(无需独立进程);本地改代码后 `npm run build` 并 tar 部署 dist | | FAM-UI | 云服务器甲骨文129.146.26.249 | `/var/www/fam-ui/` | Vue3 构建产物,由 Caddy :80 静态托管(无需独立进程);本地改代码后 `npm run build``dist/` rsync/tar 到云服务器 |
| FAM-Edge | Oracle | `/opt/fam-edge/` | **systemd `fam-edge.service` 守护**Restart=always部署代码后 `sudo systemctl restart fam-edge`(勿手动 setsid会端口冲突 | | FAM-Edge | Oracle | `/opt/fam-edge/` | **systemd `fam-edge.service` 守护**Restart=always部署代码后 `sudo systemctl restart fam-edge`(勿手动 setsid会端口冲突 |
| **AI-Gateway** | Oracle | `/opt/ai-gateway/` | **systemd `ai-gateway.service` 守护**Restart=always独立 venvPython 3.8gunicorn 绑定 `0.0.0.0:5100`(对外直接开放,非仅本机);部署代码后 `sudo systemctl restart ai-gateway` | | **AI-Gateway** | Oracle | `/opt/ai-gateway/` | **systemd `ai-gateway.service` 守护**Restart=always独立 venvPython 3.8gunicorn 绑定 `0.0.0.0:5100`(对外直接开放,非仅本机);部署代码后 `sudo systemctl restart ai-gateway` |
| Ollama | Oracle | systemd 托管 | 环境变量 `OLLAMA_KEEP_ALIVE=-1`**被 AI-Gateway 调用,不再被 FAM-Edge 调用** | | Ollama | Oracle | systemd 托管 | 环境变量 `OLLAMA_KEEP_ALIVE=-1`**被 AI-Gateway 调用,不再被 FAM-Edge 调用** |
@@ -557,7 +557,7 @@ task_id=28930s 测试片段)全链路打通:推送 5.7MB → Edge 分析
### 8.2 依赖 ### 8.2 依赖
- **FAM-CoreNAS, Python 3.10 venv**Flask, Gunicorn, **PyMySQL**45KB 纯 Python 替代 19MB mysql-connector, PyYAML, requests - **FAM-CoreNAS, Python 3.10 venv**Flask, Gunicorn, **PyMySQL**45KB 纯 Python 替代 19MB mysql-connector, PyYAML, requests
- **FAM-UINAS, Node**Vue3 + Vite + Tailwind`fam-ui/`,构建产物 dist 不入库);**不再依赖 Streamlit** - **FAM-UI云服务器, Node**Vue3 + Vite + Tailwind`fam-ui/`,构建产物 dist 不入库);**不再依赖 Streamlit**
- **FAM-EdgeOracle, Python venv**Flask, Gunicorn, requests, PyYAML, opencv-python, numpy, **openai**NVIDIA NIM 兼容 OpenAI API 规范仅视觉分析用Gemini 用 requests 直调 REST**问答不再直接调模型,只用 requests 转发到 AI-Gateway** - **FAM-EdgeOracle, Python venv**Flask, Gunicorn, requests, PyYAML, opencv-python, numpy, **openai**NVIDIA NIM 兼容 OpenAI API 规范仅视觉分析用Gemini 用 requests 直调 REST**问答不再直接调模型,只用 requests 转发到 AI-Gateway**
- **AI-GatewayOracle, Python 3.8 venv独立部署单元**Flask, Gunicorn, requests, PyYAML, **openai**NVIDIA 问答模型用) - **AI-GatewayOracle, Python 3.8 venv独立部署单元**Flask, Gunicorn, requests, PyYAML, **openai**NVIDIA 问答模型用)
- **系统级**FFmpeg两端Oracle 端用于运动片段分割 + 帧图/头像、Ollama + qwen2.5:7bOracle**被 AI-Gateway 调用**、MariaDB 10.11NAS、rcloneOracle同步 Google Drive 素材) - **系统级**FFmpeg两端Oracle 端用于运动片段分割 + 帧图/头像、Ollama + qwen2.5:7bOracle**被 AI-Gateway 调用**、MariaDB 10.11NAS、rcloneOracle同步 Google Drive 素材)
@@ -733,7 +733,7 @@ cd fam-ui && npm run build # 产物 fam-ui/dist/
## 10. 服务器访问信息 ## 10. 服务器访问信息
### 10.1 Synology NASFAM-Core + FAM-UI + MariaDB ### 10.1 Synology NASFAM-Core + MariaDB
| 项目 | 值 | | 项目 | 值 |
|------|-----| |------|-----|

View File

@@ -1,6 +1,6 @@
# 部署指南v3 运动事件驱动架构2026-08-22 同步) # 部署指南v3 运动事件驱动架构2026-08-22 同步)
## 1. NAS 端部署 (FAM-Core + FAM-UI + MariaDB) ## 1. NAS 端部署 (FAM-Core + MariaDBFAM-UI 见 §1.3,部署在云服务器)
### 1.1 MariaDB ### 1.1 MariaDB
```bash ```bash
@@ -94,7 +94,7 @@ tar czf - --exclude=venv --exclude=__pycache__ --exclude=data --exclude=gdrive_v
| NAS MariaDB | `mysql -u root -p -e "SHOW DATABASES"` | 包含 sentinel_home_ai | | NAS MariaDB | `mysql -u root -p -e "SHOW DATABASES"` | 包含 sentinel_home_ai |
| NAS FAM-Core | `curl http://localhost:8000/health` | `{"status":"ok"}` | | NAS FAM-Core | `curl http://localhost:8000/health` | `{"status":"ok"}` |
| NAS 运动监测 | `curl http://localhost:8000/api/ss/status` | `poll_enabled: true, running: true` | | NAS 运动监测 | `curl http://localhost:8000/api/ss/status` | `poll_enabled: true, running: true` |
| NAS FAM-UI | 浏览器访问 `http://192.168.50.64:8000` | 未登录被 302 到 auth-hub 登录页;登录(审批过的 auth-hub 账号)后跳回展示 Vue3 SPA时间轴/人物管理/统计) | | 云服务器 FAM-UI | 浏览器访问 `http://129.146.26.249/`Caddy 托管) | 未登录被 302 到 auth-hub 登录页;登录(审批过的 auth-hub 账号)后跳回展示 Vue3 SPA时间轴/人物管理/统计) |
| Oracle FAM-Edge | `curl http://localhost:5000/health` | `{"status":"ok","queue_alive":true}` | | Oracle FAM-Edge | `curl http://localhost:5000/health` | `{"status":"ok","queue_alive":true}` |
| Oracle 运动事件 | `sqlite3 /opt/fam-edge/data/oracle.db "SELECT COUNT(*) FROM ss_motion_events"` | >0NAS 推送) | | Oracle 运动事件 | `sqlite3 /opt/fam-edge/data/oracle.db "SELECT COUNT(*) FROM ss_motion_events"` | >0NAS 推送) |
| Oracle 运动片段 | `ls /opt/fam-edge/motion_clips/` | 存在 motion_*.mp4素材分割产物 | | Oracle 运动片段 | `ls /opt/fam-edge/motion_clips/` | 存在 motion_*.mp4素材分割产物 |