Files
sentinel-home-ai/PROGRESS.md
ericwyuan 47658fa068 [deploy] PyMySQL 替换 + Tailscale 组网 + config.yaml + 路径修复
- db_layer.py: mysql-connector-python(19MB) → PyMySQL(45KB), 去掉连接池
- config_loader.py: 修复路径解析 (2级→3级 dirname), FAM-Core + FAM-Edge 均修复
- Tailscale 组网完成: Oracle=100.74.137.126, NAS=100.70.234.39, 互通验证通过
- NAS Python 依赖: flask/gunicorn/pymysql/PyYAML 全部安装成功
- NAS 代码部署: /volume1/web/sentinel-home-ai/, FAM-Core 7 模块导入 PASS
- NAS DB 连接验证: PyMySQL → MariaDB 10.11.11, 6 张表可见, PASS
- config.yaml 创建: FAM-Core + FAM-Edge + FAM-UI (Tailscale IP + 密码)
- requirements.txt: mysql-connector-python → PyMySQL
2026-08-19 23:27:28 +08:00

102 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 项目进度追踪
> 最后更新: 2026-08-19 23:06
## 环境状态
### Oracle Cloud (129.146.203.203) - FAM-Edge 节点
| 项目 | 状态 | 备注 |
|------|------|------|
| OS | Ubuntu 20.04 ARM64 | Ampere A1 2C12G |
| Python | 3.8.10 | python3-venv 已安装 |
| pip | 25.0.1 (venv内) | |
| FFmpeg | 已安装 | apt 安装 |
| Ollama | 0.32.14 | |
| llava-phi3:latest | 2.9 GB 已拉取 | |
| Python 依赖 | 全部安装成功 | flask, gunicorn, requests, PyYAML, opencv, numpy |
| 模块导入验证 | PASS | FAM-Edge 全部 8 个模块导入正常 |
| 代码部署 | /opt/fam-edge/ | rsync 同步 |
| venv | /opt/fam-edge/venv/ | 已创建 |
| Tailscale | 1.102.2 已安装 | **待用户认证** |
### Synology NAS (192.168.50.64) - FAM-Core + FAM-UI 节点
| 项目 | 状态 | 备注 |
|------|------|------|
| 型号 | DS220+ (Geminilake) | DSM 7 |
| Python | 3.8.15 | |
| pip3 | 未安装 | 待安装 |
| MariaDB | **10.11.11 已运行** | 端口 3306, root 密码 iLoveJava5! |
| sentinel_home_ai 库 | **6 张表已创建** | DDL 执行成功 |
| Docker | 24.0.2 (ContainerManager) | 路径 /var/packages/ContainerManager/target/usr/bin/docker |
| Tailscale | **已运行** | IP: 100.70.234.39, hostname: ericwyuan-nas |
| Streamlit | 未安装 | 待安装 |
### 网络互通 (Tailscale)
| 节点 | Tailscale IP | 状态 |
|------|-------------|------|
| NAS (ericwyuan-nas) | 100.70.234.39 | 已连接 |
| Oracle (oracle-fam-edge) | 待认证 | **需用户访问认证 URL** |
| 当前方案 | Oracle Tailscale 待认证,认证后可直连 | |
## 模型可行性基准测试 (Task 1.4)
### 测试环境
- Oracle Ampere A1 2C12G ARM64
- Ollama 0.32.14 + llava-phi3:latest (2.9 GB)
- Python 3.8.10 + requests
### 测试结果
| 场景 | 加载时间 | Prompt 处理 | 生成时间 | Token 数 | 总耗时 | 是否达标(≤8s) |
|------|---------|------------|---------|---------|--------|-------------|
| 冷启动 (首次推理) | 54.56s | 37.40s | 17.22s | 86 | 109.21s | 否 (首次加载) |
| 预热 (无限制) | 0.06s | 0.20s | 13.06s | 65 | 13.35s | 否 |
| 预热 (num_predict=30) | 0.07s | 1.41s | 2.83s | 15 | **4.34s** | **PASS** |
### 结论
1. **冷启动延迟**: 首次推理需加载 2.9GB 模型到内存,耗时 ~55s。建议通过 systemd keep-alive 或定时心跳保持模型常驻
2. **预热性能**: 模型加载后,单图推理可控制在 4-5s限制输出 30 token满足 ≤8s 设计目标
3. **ARM CPU 瓶颈**: token 生成速度 ~0.1-0.2s/token多帧分析(5-8帧)需合理设置 `num_predict`(默认 500)
4. **已优化**: OllamaAdapter 新增 `num_predict` 可配置参数,默认 500
## 任务进度
### 已完成
| # | 任务 | 提交 | 日期 |
|---|------|------|------|
| 1 | 项目骨架 + 全部 Python 模块代码 | `d741ade` 等 | 2026-08-19 |
| 2 | DDL 数据库建表脚本 | `d741ade` | 2026-08-19 |
| 3 | 部署脚本 + 文档 | `d741ade` | 2026-08-19 |
| 4 | __init__.py 导出链路 | `c45464c` | 2026-08-19 |
| 5 | Storage-Cleaner 补全 | `5e4587b` | 2026-08-19 |
| 6 | 服务器凭证写入 README | `ba905d2` | 2026-08-19 |
| 7 | requirements.txt 兼容 Python 3.8 | `c1bfac5` | 2026-08-19 |
| 8 | Oracle 部署: venv + 依赖 + 导入验证 | `50d8353` | 2026-08-19 |
| 9 | 模型基准测试 (llava-phi3 ≤8s PASS) | `50d8353` | 2026-08-19 |
| 10 | OllamaAdapter 优化 (num_predict) | `50d8353` | 2026-08-19 |
| 11 | Tailscale 安装 (Oracle + NAS) + 认证 | `e5ac667` | 2026-08-19 |
| 12 | NAS MariaDB DDL 执行 (6 张表) | `e5ac667` | 2026-08-19 |
| 13 | db_layer.py 切换 PyMySQL (45KB 替代 19MB) | 进行中 | 2026-08-19 |
| 14 | config_loader.py 路径修复 (3 级 dirname) | 进行中 | 2026-08-19 |
| 15 | NAS Python 依赖安装 (flask/gunicorn/pymysql/PyYAML) | 进行中 | 2026-08-19 |
| 16 | NAS 代码部署 + FAM-Core 导入验证 PASS | 进行中 | 2026-08-19 |
| 17 | NAS DB 连接验证 PASS (PyMySQL → MariaDB 10.11.11) | 进行中 | 2026-08-19 |
| 18 | config.yaml 实际配置 (FAM-Core + FAM-Edge + FAM-UI) | 进行中 | 2026-08-19 |
### 待完成
| # | 任务 | 依赖 | 优先级 |
|---|------|------|--------|
| 19 | NAS 启动 FAM-Core (gunicorn) | 依赖安装 ✅ | 高 |
| 20 | Oracle 启动 FAM-Edge (gunicorn) | 依赖安装 ✅ | 高 |
| 21 | NAS 安装 Streamlit + 部署 FAM-UI | pip3 ✅ | 中 |
| 22 | 端到端集成测试 | FAM-Core + FAM-Edge 启动 | 高 |
| 23 | 单元测试 (JSON parser, circuit breaker, schema) | - | 中 |
## 技术决策记录
1. **移除 google-generativeai SDK 硬依赖** - 代码用 requests 直接调 REST API兼容 Python 3.8
2. **rsync 替代 git clone** - Oracle 无法直连 NAS Gitea (无 Tailscale),用 rsync 从本地同步
3. **num_predict 参数** - ARM CPU 上 llava-phi3 生成速度较慢,限制输出 token 数控制延迟