47658fa068313ccfbdb41d91963f7a328ffab7cd
- 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
Sentinel Home AI - 家庭多模态智能监控系统
多模型并行 + 交互式命名 + AI 对话的家庭监控系统。
架构概览
| 节点 | 角色 | 服务 |
|---|---|---|
| Synology NAS | FAM-Core + FAM-UI + 数据库 | Flask (8000), Streamlit (8501), MariaDB (3306) |
| Oracle Cloud | FAM-Edge | Flask (5000), Ollama (11434), FFmpeg |
| 家庭网络 | 用户入口 | 浏览器访问 FAM-UI |
目录结构
sentinel-home-ai/
├── fam-core/ # NAS 端 - 任务调度/事件接收/对话/成员管理/视频服务
├── fam-edge/ # Oracle 端 - 视频预处理/AI编排/模型适配器
├── fam-ui/ # NAS 端 - Streamlit 前端
├── scripts/ # 数据库初始化/部署脚本
├── tests/ # 单元测试与集成测试
└── docs/ # 设计文档
技术栈
- 后端: Python 3.10+, Flask, Gunicorn
- 数据库: MariaDB (MySQL 兼容)
- AI 模型: Ollama (llava-phi3), Gemini 1.5 Flash
- 视频处理: FFmpeg, OpenCV
- 前端: Streamlit
快速开始
- 数据库初始化:
python scripts/init_db.py - 启动 FAM-Core:
cd fam-core && gunicorn -w 1 -b 0.0.0.0:8000 src.app:app - 启动 FAM-Edge:
cd fam-edge && gunicorn -w 1 -b 0.0.0.0:5000 src.app:app - 启动 FAM-UI:
cd fam-ui && streamlit run src/app.py
服务器访问信息
Synology NAS (FAM-Core + FAM-UI + MariaDB)
| 项目 | 值 |
|---|---|
| IP | 192.168.50.64 |
| SSH 端口 | 2222 |
| SSH 用户 | ericwyuan |
| SSH 密码 | iLoveJava5 |
| 系统 | Synology DS220+ (Geminilake), DSM 7 |
| Tailscale IP | 100.70.234.39 |
| 登录命令 | ssh -p 2222 ericwyuan@192.168.50.64 |
MariaDB 数据库 (NAS)
| 项目 | 值 |
|---|---|
| 版本 | MariaDB 10.11.11 |
| 端口 | 3306 |
| Socket | /run/mysqld/mysqld10.sock |
| Root 密码 | iLoveJava5! |
| 数据库名 | sentinel_home_ai |
| 连接命令 | /usr/local/mariadb10/bin/mysql -S /run/mysqld/mysqld10.sock -u root -p |
| mysql 路径 | /usr/local/mariadb10/bin/mysql |
Oracle Cloud (FAM-Edge + Ollama + FFmpeg)
| 项目 | 值 |
|---|---|
| 公网 IP | 129.146.203.203 |
| SSH 端口 | 22 |
| SSH 用户 | ubuntu |
| 认证方式 | RSA 私钥 |
| 私钥文件 | ~/.ssh/oracle_sentinel |
| 系统 | aarch64 (ARM Ampere A1 2C12G), Ubuntu 20.04 LTS |
| Tailscale | 已安装,待认证 |
| 登录命令 | ssh -i ~/.ssh/oracle_sentinel ubuntu@129.146.203.203 |
Gitea 代码仓库
| 项目 | 值 |
|---|---|
| URL | http://192.168.50.64:3000/ericwyuan/sentinel-home-ai |
| 账号 | ericwyuan |
| 密码 | iLoveJava5 |
代码仓库
- Gitea:
http://192.168.50.64:3000/ericwyuan/sentinel-home-ai
Description
Languages
Python
86%
Vue
11%
JavaScript
1.4%
Shell
1.2%
CSS
0.3%