How rohil72/genai-mirco-project-sem-6 works
smart-home-llm is a single-machine prototype for synthesizing smart-home event logs, fine-tuning a LoRA-adapted language model to identify routines, predicting routines from logs, and replaying logs in a visual home simulation. Its main user workflow is the CLI in main.py, which dispatches individual stages and a generate-to-evaluate pipeline; prediction and simulation are separate actions. The graph preserves those domain stages and their documented data flow. Some module wiring is based on README descriptions because the corresponding source excerpts were incomplete or unavailable.
Main entry points: main.py Command dispatcher · generate_data.py Log generation · format_data.py Training formatter · predict.py Log prediction
Components 20
Log generation
- Log generation
data/generator/generate_data.py - Routine patterns
data/generator/patterns.py - Event noise
data/generator/noise.py - Routine templates
config/routines.yaml - Device definitions
config/devices.yaml - Raw event logs
data/raw/synthetic_logs.jsonl
Fine-tuning
- Training formatter
training/format_data.py - Train and validation
data/processed/train.jsonl - Validation data
data/processed/val.jsonl - Training settings
config/training.yaml - QLoRA training
training/train_lora.py - Model evaluation
training/evaluate.py
Routine prediction
- Log prediction
inference/predict.py - Routine extraction
inference/routine_extractor.py
Home simulation
- Log replay
simulation/simulator.py - Pygame display
simulation/visualize.py - House renderer
simulation/grid.py - House layout
simulation/house_layout.py
Other components
- CLI user
- Command dispatcher
main.py
Connections 28
- CLI user → Command dispatcher: runs commands
- Command dispatcher → Log generation: dispatches generate
- Command dispatcher → Training formatter: dispatches format
- Command dispatcher → QLoRA training: dispatches train
- Command dispatcher → Model evaluation: dispatches evaluate
- Command dispatcher → Log prediction: dispatches predict
- Command dispatcher → Pygame display: dispatches simulate
- Log generation → Routine patterns: generates patterns
- Routine patterns → Routine templates: reads templates
- Routine patterns → Device definitions: reads devices
- Log generation → Event noise: applies noise
- Log generation → Raw event logs: writes events
- Training formatter → Raw event logs: reads events
- Training formatter → Train and validation: writes training data
- Training formatter → Validation data: writes validation data
- QLoRA training → Train and validation: loads training data
- QLoRA training → Training settings: reads settings
- Model evaluation → Validation data: loads validation data
- Model evaluation → Training settings: reads settings
- Log prediction → Raw event logs: reads log input
- Log prediction → Training settings: reads settings
- Log prediction → Routine extraction: parses model output
- Pygame display → Log replay: starts replay
- Pygame display → House layout: loads layout
- Pygame display → House renderer: renders display
- Log replay → Raw event logs: replays events
- House renderer → House layout: draws layout
- House layout → Device definitions: loads devices