How juiec/sentinel works
This repository combines a COCO hard-negative dataset workflow with a local vision-alert pipeline and a separate Sentinel chat web app. The README’s documented dataset path is selecting curated negatives, downloading images, and wiring them into YOLO training data. Sampled sources also show frame processing and alert logging, plus browser-to-server streamed chat. Some dataset utilities and vision internals are only partially sampled, so their connections are limited to documented or directly evidenced relationships.
Main entry points: app.js Chat UI State · server.js Chat Server · download_coco_negatives.py Negative Downloader · api.js SSE Client
Components 16
Negative Dataset
- Negative Downloader
download_coco_negatives.py - Dataset Merger
merge_datasets.py - Empty Label Creator
make_label_files.py - YOLO Trainer
yolo26_train.py
Vision Alerts
- Frame Pipeline
detection.py - Alert Payload Logger
backend.py
Chat Application
- Chat UI State
public/js/app.js - Message Renderer
public/js/chat.js - SSE Client
public/js/api.js - Chat Server
server.js - Browser Storage
Other components
- Dataset Maintainer
- COCO Images
- Video Frames
- Chat User
- OpenAI-Compatible API
Connections 15
- Dataset Maintainer → Negative Downloader: runs download
README.md - COCO Images → Negative Downloader: provides images
README.md - Negative Downloader → Dataset Merger: supplies negatives
- Dataset Maintainer → Dataset Merger: merges datasets
merge_datasets.py - Dataset Maintainer → Empty Label Creator: creates labels
make_label_files.py - Dataset Maintainer → YOLO Trainer: trains model
yolo26_train.py - Video Frames → Frame Pipeline: processes frames
- Frame Pipeline → Alert Payload Logger: writes alerts
detection.py - Chat User → Chat UI State: submits messages
public/js/app.js - Chat UI State → Message Renderer: renders messages
public/js/app.js - Chat UI State → SSE Client: streams chat
public/js/app.js - Chat UI State → Browser Storage: persists history
public/js/app.js - SSE Client → Chat Server: posts to /chat
public/js/api.js - Chat Server → OpenAI-Compatible API: requests completions
server.js - Chat Server → SSE Client: streams SSE
server.js