Natural-language alerts
Write rules in plain language. A detector watches every frame for what the rules mention; when something appears, leaves or moves, or every second otherwise, a small VLM screens each rule on the last 3 s of frames and a larger one confirms and explains. Only confirmed verdicts become events.
LIVE
or publish a camera into this session
Monitor
qwen-monitor-v1not attached
s when nothing changes
import * as rgb from '@rgb-live/sdk';
const client = rgb.client({ apiKey: KEY, origin: ORIGIN });
const session = await client.sessions.create({ name: 'alerts-demo' });
const alerts = await session.attach('qwen-monitor-v1', { to: 'cam0', as: 'alerts', params: { rules: ['person raising their hand'] } });
alerts.on('event', async (e) => { // confirmed events only
showAlert(`${e.rule} — ${e.reason}`);
const clip = await cam.record({ from: e.ts - 5, to: e.ts + 10 }); // the stream is already buffered: cut 5 s before, 10 s after
slack.post(`${e.rule}: ${e.reason} ${clip.url}`);
});
alerts.on('check', (c) => timeline.add(c)); // every VLM call
Session graph
- video frames
- 0
- events
- 0
- VLM checks
- 0
timeline red = event · green = positive screen awaiting confirmation · grey = negative