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

135 lines
8.6 KiB
Markdown
Raw Permalink 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: 5e6d18991d69aad15311aae811f35206aa0b5ee6
synchronized_at: 2026-08-27T09:04:26Z
<!-- gitea-wiki-mirror:end -->
# 项目档案
## 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | YoVision |
| 仓库 | `ila/yovision` |
| 默认分支 | `main` |
| 一句话目标 | 将现有视频设备升级为能够自动形成异常证据并把预警追到人确认处置的安全基础设施 |
| 首期客户场景 | 民办寄宿学校,默认 16 路高风险点位 |
| 首期规则 | 越线、危险区域、聚集等匿名安全规则;不启用人脸 |
| 产品形态 | Sense 与 Bell 两个独立销售产品,Brain 为独立推理交付单元 |
| 当前阶段 | 进入 GoAdmin 源码派生重建:旧实现归档于 `explore`,`main` 为审核基线,`dev` 为集成开发分支 |
| 历史来源 | `D:\OPC\yovision_old`,只读追溯 |
## DevHarness 来源与基线
| 项目 | 内容 |
|---|---|
| 上游仓库 | `https://git.ilapage.cn/OPC/dev_harness` |
| 本次升级前基线 | `f23c2cf81f9792495f696d49e88d79b16cf29810` |
| 当前目标基线 | `4bbacf4d7fb265984396bb5589c544105043fa0b` |
| 升级日期 | 2026-08-27 |
| 识别方式 | 初始导入文件 blob 与上游历史逐项对照;完整 commit 是基线标识 |
YoVision 采用 DevHarness 的共同工作流、统一 `harness.py` 命令、Gitea 工单/Wiki 事实源边界和模板;项目适配保留三项目并行与写路径所有权、`explore/main/dev` 分支治理、Sense/Bell GoAdmin 固定基线、UI 精简复用门禁和现有产品文档结构。升级不得整页覆盖项目事实,也不得复制 DevHarness 自身任务状态。
## 子项目与交付单元
| 单元 | 职责 | 技术栈目标 | 独立构建/测试/发布 | 规则入口 | 共享边界 |
|---|---|---|---|---|---|
| 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。
2026-08-14 起,原 Sense、Bell 实现只在 `explore` 和原功能分支中作为迁移参考,不再作为新开发基础。新的 Sense、Bell 必须从下述冻结 go-admin/go-admin-ui 完整提交派生;实施时必须核对冻结 go-admin-doc。Brain 尚未初始化。
## 阅读入口
- 新维护者: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/harness.py check --strict
python -m unittest discover -s tests -v
python dev_scripts/harness.py sync --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 实现保存在 `explore`,不进入新 `main` / `dev` 基线。新 Sense 尚未初始化;后续必须从冻结的 go-admin 后端和 go-admin-ui 前端源码派生,保留上游骨架、许可证和来源证据,并在工单记录实际参考的 go-admin-doc 页面。
<!-- sense-runtime:end -->
<!-- bell-runtime:start -->
## Bell 重建状态
当前 Bell MVP 实现在 `explore` 和原功能分支中保留,只作需求、行为和迁移对照。新 Bell 尚未初始化;后续必须从与 Sense 相同的冻结 go-admin/go-admin-ui 基线独立派生,不能复制旧自研基础框架或共享 Sense 的认证与数据库。
<!-- bell-runtime:end -->
## 分支治理
- `explore`:2026-08-14 前实现的只读聚合快照;不接受新功能。
- `main`:用户审核通过的最小/发布基线;禁止直接开发和未经用户明确审核的合并。
- `dev`:集成开发与测试分支;功能分支从 `dev` 派生,并通过 PR 合回 `dev`。
- 只有用户明确审核通过,才能把 `dev` 合入 `main`。
<!-- sense-root-launcher:start -->
## Sense Windows 项目目录启动入口
工单 #90 在 `Sense/start_sense.bat` 提供项目目录快捷入口。它只使用脚本自身路径定位 `Sense/dist/sense-windows-amd64/start-sense.bat`,透传 production、demo 和其他包内启动参数,并保留包内脚本退出码;不读取配置、不自动构建,也不直接启动 Go 或 Node 开发服务。
使用前必须先按 Windows 交付流程生成 `Sense/dist/sense-windows-amd64`。从仓库根目录可运行 `Sense\start_sense.bat`,进入 Sense 目录后可运行 `start_sense.bat` 或 `start_sense.bat demo`。交付包不存在时脚本返回非零并提示执行 `Sense\scripts\build\build-windows.bat`。
<!-- sense-root-launcher:end -->