Spaces:
Sleeping
Sleeping
| # Tiny Trigger Demo Runbook | |
| Use this if you need to run the demo without rebuilding context. | |
| ## Launch | |
| ```bash | |
| pip install -r requirements.txt | |
| python server.py | |
| ``` | |
| Or: | |
| ```bash | |
| poetry install | |
| poetry run python server.py | |
| ``` | |
| Open: | |
| ```text | |
| http://127.0.0.1:7860 | |
| ``` | |
| For Hugging Face Spaces, the entrypoint is `server.py`; it serves the already | |
| built frontend from `frontend/dist`. | |
| ## API Keys | |
| Open Settings, choose one compiler provider, and paste its API key: | |
| - Replicate: `REPLICATE_API_TOKEN` | |
| - OpenAI: `OPENAI_API_KEY` | |
| - Claude: `ANTHROPIC_API_KEY` | |
| Keys pasted in the UI are only sent with compile requests. If you own the Space, | |
| set the matching variable as a Space secret instead. | |
| ## Demo Video | |
| No demo video is checked in yet. Record a short MP4 or MOV with: | |
| - one obvious person or hand | |
| - one clear object such as guitar, monitor, steering wheel, cup, laptop, chair | |
| - at least one moment where the object appears or disappears | |
| - 5-15 seconds is enough | |
| The detector downloads YOLOE weights on first use, so the first run can be slow. | |
| Recommended starting detector settings: | |
| - Classes: leave defaults, or add obvious objects from the video. | |
| - Confidence: `0.15` for normal objects, `0.05` if detections are missing. | |
| - Sample interval: `1.0s`. | |
| - Max frames: `120`. | |
| - Model size: Small for speed, Large/XLarge for a stronger demo. | |
| - Resolution: `640` by default, `960` or `1280` if detections are missing. | |
| Rules automatically add their referenced labels to the detector class list. | |
| Rules can use presence, count, near, far, moving, enter, exit, change, and | |
| cooldown. Moving uses detector-provided track IDs across sampled frames; YOLOE | |
| uses Ultralytics ByteTrack only when active rules include motion. It requires at | |
| least three tracked observations and tolerates one missed sampled frame by | |
| default. Speed, direction, long-gap re-identification, and trajectory paths are | |
| not supported yet. | |
| ## Prompts To Try | |
| State assertion, should fire once when true: | |
| ```text | |
| While there is a guitar in the scene, amplifier must be on. | |
| ``` | |
| Enter/exit behavior: | |
| ```text | |
| If a person is near the monitor, turn on the LED lights. When the person leaves, turn them off. | |
| ``` | |
| Cooldown behavior: | |
| ```text | |
| If a person is near the steering wheel, turn on the PC. Do not repeat for five minutes. | |
| ``` | |
| Simple presence: | |
| ```text | |
| When a laptop is visible, notify me. | |
| ``` | |
| Simple motion: | |
| ```text | |
| If a car is moving, notify me. | |
| ``` | |
| ## Expected Flow | |
| 1. Upload the video in Detector. | |
| 2. Go to Settings and choose a cloud compiler provider. | |
| 3. Paste the API key if the Space has no secret configured. | |
| 4. Go to Rule Studio, Compose. | |
| 5. Compile one of the prompts above. | |
| 6. Check Source to see the generated rule document. | |
| 7. Check Rules to see enabled rules and label pills. | |
| 8. Run detection. | |
| 9. Watch Activity & Firings for fired actions. | |
| 10. Use the replay to inspect detections and event timing. | |
| ## What To Say | |
| Tiny Trigger turns natural language video automation ideas into validated rules. | |
| The LLM only writes JSON/YAML, never executable code. YOLOE searches both user | |
| classes and labels referenced by active rules. Rules use edge triggers by | |
| default, so "turn on when present" does not spam every frame. | |
| ## If Something Fails | |
| - No compile: check the provider and API key. | |
| - No detections: lower confidence, add labels manually, or try a larger YOLOE model. | |
| - Slow first run: model weights are downloading. | |
| - Repeated actions: check the rule trigger. For most demos, prefer `enter` or `change`. | |
| - Missing frontend in a Space: make sure `frontend/dist` is included in the upload. | |