Files
yovision/docs/00-project-profile.md
T

110 lines
7.0 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.
<!-- gitea-wiki-mirror:start -->
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
wiki_page: Project-Profile
wiki_url: https://git.ilapage.cn/ila/yovision/wiki/Project-Profile.-
wiki_revision: 8d21b036c7a4077560b44790bb55602c84caaab1
synchronized_at: 2026-08-12T10:21:47Z
<!-- gitea-wiki-mirror:end -->
# 项目档案
## 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | YoVision |
| 仓库 | `ila/yovision` |
| 默认分支 | `main` |
| 一句话目标 | 将现有视频设备升级为能够自动形成异常证据并把预警追到人确认处置的安全基础设施 |
| 首期客户场景 | 民办寄宿学校,默认 16 路高风险点位 |
| 首期规则 | 越线、危险区域、聚集等匿名安全规则;不启用人脸 |
| 产品形态 | Sense 与 Bell 两个独立销售产品,Brain 为独立推理交付单元 |
| 当前阶段 | Sense 与 Bell 首个独立 MVP 纵切已实现并待验收;Brain 尚未初始化 |
| 历史来源 | `D:\OPC\yovision_old`,只读追溯 |
## 子项目与交付单元
| 单元 | 职责 | 技术栈目标 | 独立构建/测试/发布 | 规则入口 | 共享边界 |
|---|---|---|---|---|---|
| Sense | ONVIF/RTSP、设备台账、MediaMTX、实时监看、区域配置、运维与 Outbox | Go;Vue 3 + Element Plus;PostgreSQL | 是;可在没有 Bell 时独立运行 | `Sense/AGENTS.md` | 通过版本化源/事件/证据契约与 Brain、Bell 集成 |
| Brain | 解码、检测、姿态、跟踪、ReID、区域判定、事件 mapper | Python/CUDA | 是;无界面,默认随 Sense 交付 | `Brain/AGENTS.md` | 只消费媒体/配置契约并输出标准事件 |
| Bell | 外部事件接入、规则、Alert、ack/close、联系人、排班、升级、通知、审计 | Go;Vue 3 + Element Plus;PostgreSQL | 是;可用合成或第三方事件独立验收 | `Bell/AGENTS.md` | 发布事件接入与证据接口,不读取 Sense 内部状态 |
| contracts | 三端共享的 OpenAPI、JSON Schema、SQL 契约和兼容说明 | 版本化文档与契约测试 | 随受影响项目验证 | `contracts/AGENTS.md` | 唯一共享事实来源,不承载业务代码 |
三个项目允许不同版本和发布节奏。技术栈不同不是拆仓理由;若未来团队权限、发布责任或仓库性能长期分离,再以独立工单评估拆仓。
## 技术栈与运行环境
- Sense/Bell:目标采用固定上游版本的 GoAdmin server 与 go-admin-ui,首阶段保持 Vue 3 + Element Plus + Vue CLI,不同时迁移 TypeScript/Vite。
- Brain:Python、CUDA/NVIDIA 主路径;模型许可必须在商用前确认。
- 正式数据库:PostgreSQL;Sense 与 Bell 使用独立数据库角色和数据边界。
- 媒体:MediaMTX 独立二进制,由 Sense 管理配置和生命周期。
- 证据:客户侧 MinIO/S3 兼容对象存储;常态录像优先留在客户已有 NVR。
- 首期验证平台:NVIDIA x86/Jetson;M1-M3 不承诺 GB/T 28181、信创或原生 App。
Sense 与 Bell 的独立业务骨架及首个 MVP 纵切已实现并待验收;Brain 尚未初始化。Sense/Bell 的 Go/Node 基线已冻结并记录于下文,Brain 的 Python/CUDA 版本仍须在对应骨架工单中冻结。
## 阅读入口
- 新维护者:Home → Product-Requirements → Architecture-and-Code-Map。
- Sense agent:根 `AGENTS.md` → `Sense/AGENTS.md` → 当前工单。
- Brain agent:根 `AGENTS.md` → `Brain/AGENTS.md` → 事件契约 → 当前工单。
- Bell agent:根 `AGENTS.md` → `Bell/AGENTS.md` → 当前工单。
- 协调 agent:Multi-Agent-Collaboration → `contracts/AGENTS.md` → 所有受影响工单。
## 常用命令
当前初始化阶段可执行:
```powershell
python dev_scripts/check_harness.py --strict
python -m unittest discover -s tests -v
python dev_scripts/sync_wiki_docs.py --check
git diff --check
```
Sense、Brain、Bell 的构建、运行和测试命令尚待各自骨架工单建立,不以旧仓库命令冒充新仓库事实。
## 环境、配置与凭据
- Gitea 凭据仅通过 MCP 安全配置或进程环境提供。
- 摄像头密码、JWT secret、数据库连接、对象存储和通知供应商凭据不得提交。
- Sense 与 Bell 必须使用不同用户库、JWT/会话密钥、Cookie、Casbin 策略和数据库角色。
- Brain 不接收交互式用户会话;机器身份按调用方和实例独立分配。
- `.env.example` 只能放变量名和无敏感示例,不放真实地址、客户名或 token。
## 负责人确认的边界
- 单仓包含 Sense、Brain、Bell 三个开发项目。
- 计划由三名主 agent 尽量并行处理各自独立工单;需要跨项目协作时再建立协调工单并启用新 agent。
- 旧仓库在新纵切验收前保留,不删除、不覆盖。
## Sense/Bell GoAdmin 固定技术基线
Sense、Bell 共用的可复现技术基线记录在仓库根 `goadmin-baseline.json`。正式版本标识是上游 URL 与完整 commit 的组合;本机目录、分支名、最近 tag 和 `package.json` version 只作辅助信息。
| 参考源 | 用途 | 冻结提交 | 描述版本 | 本机只读位置 |
|---|---|---|---|---|
| go-admin | 后端骨架 | `f06540883b41d03782bb6b2c4150f298f328c6b6` | `v2.2.0-25-gf065408` | `D:\github\goadmin\go-admin` |
| go-admin-ui | 前端骨架 | `67d393d713877572fab0b897296a4c1d525fc81d` | `v2.0.9-170-g67d393d` | `D:\github\goadmin\go-admin-ui` |
| go-admin-doc | 只读用法参考 | `424855aacf6905f3fde860c3331385cb25529a0d` | 无精确 tag | `D:\github\goadmin\go-admin-doc` |
固定工具链为 Go 1.26.5、Node.js 22.22.1、pnpm 9.15.1。go-admin-ui 的 `package.json` version 仍为 2.0.9,但冻结提交位于 `v2.0.9` 后 170 个提交,因此不得只用“2.0.9”代表当前基线。
三个上游仓库均使用 MIT 许可证。派生代码必须保留许可证和版权声明。Sense、Bell 使用同一上游基线,但分别维护代码、配置、构建、测试、版本和发布。任何上游或工具链升级必须建立影响 Sense/Bell 的协同工单。
<!-- sense-runtime:start -->
## Sense 当前实现基线
Sense 已从冻结的 GoAdmin 基线初始化为独立产品:后端使用 Go 1.26.5 与 PostgreSQL,管理端使用 Node.js 22.22.1、pnpm 9.15.1、Vue 3.5.41、Element Plus 2.14.4 和 Vue CLI 5.0.9。产品代码只位于 `Sense/`,不依赖 Brain 或 Bell 启动;`D:\github\goadmin` 仍为只读参考。
<!-- sense-runtime:end -->
<!-- bell-runtime:start -->
## Bell 当前实现基线
Bell 已从冻结的 GoAdmin 基线实现独立 Event → Alert → ack → close 纵切:后端使用 Go 1.26.5 与独立 PostgreSQL 数据库,管理端使用 Node.js 22.22.1、pnpm 9.15.1、Vue 3.5.41、Element Plus 2.14.4 和 Vue CLI 5.0.9。产品代码只位于 `Bell/`,不依赖 Sense 或 Brain 启动;`D:\github\goadmin` 仍为只读参考。
Bell 不提供默认账户、默认密码或默认会话密钥。部署时必须从进程环境提供独立 `BELL_DATABASE_URL` 和至少 32 字符的 `BELL_SESSION_SECRET`;Cookie 固定为 `bell_session`,不接受 Sense 的用户会话。
<!-- bell-runtime:end -->