- 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
4.7 KiB
4.7 KiB
项目进度追踪
最后更新: 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 |
结论
- 冷启动延迟: 首次推理需加载 2.9GB 模型到内存,耗时 ~55s。建议通过 systemd keep-alive 或定时心跳保持模型常驻
- 预热性能: 模型加载后,单图推理可控制在 4-5s(限制输出 30 token),满足 ≤8s 设计目标
- ARM CPU 瓶颈: token 生成速度 ~0.1-0.2s/token,多帧分析(5-8帧)需合理设置
num_predict(默认 500) - 已优化: 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) | - | 中 |
技术决策记录
- 移除 google-generativeai SDK 硬依赖 - 代码用 requests 直接调 REST API,兼容 Python 3.8
- rsync 替代 git clone - Oracle 无法直连 NAS Gitea (无 Tailscale),用 rsync 从本地同步
- num_predict 参数 - ARM CPU 上 llava-phi3 生成速度较慢,限制输出 token 数控制延迟