3a195d69b9404e003e861fee7cd56092f987fbe4
- db_layer 新增 reclaim_stale_processing: PROCESSING 超过 push_timeout+120s 重置 PENDING - dispatcher 轮询前先回收僵尸任务(进程重启/Edge重启导致 in-flight 请求丢失的场景) - logger 增加 fam-core/logs/fam-core.log 文件输出(daemon 模式 stdout 不可见)
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%