Update README.md
Browse files
README.md
CHANGED
|
@@ -155,4 +155,46 @@ During inference, we deploy Gen-HVAC as a stateless HTTP microservice that loads
|
|
| 155 |
maintains a short autoregressive context window internally, and returns multi-zone heating/cooling setpoints per control step.
|
| 156 |
In our experiments, EnergyPlus/Sinergym executes inside the Docker container, while the inference service runs on the host/server (CPU/GPU), so the simulator can stream observation vectors to POST /predict (payload: {step, obs, info}) and receive an action vector in the response, with POST /reset
|
| 157 |
used to clear policy history at episode boundaries. When enabled, the DHIL module queries a local Ollama endpoint and updates the comfort RTG target at a low frequency (e.g., every 4 steps).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 158 |
|
|
|
|
| 155 |
maintains a short autoregressive context window internally, and returns multi-zone heating/cooling setpoints per control step.
|
| 156 |
In our experiments, EnergyPlus/Sinergym executes inside the Docker container, while the inference service runs on the host/server (CPU/GPU), so the simulator can stream observation vectors to POST /predict (payload: {step, obs, info}) and receive an action vector in the response, with POST /reset
|
| 157 |
used to clear policy history at episode boundaries. When enabled, the DHIL module queries a local Ollama endpoint and updates the comfort RTG target at a low frequency (e.g., every 4 steps).
|
| 158 |
+
|
| 159 |
+
## Repository Structure
|
| 160 |
+
|
| 161 |
+
|
| 162 |
+
```text
|
| 163 |
+
Gen-HVAC:Controller/
|
| 164 |
+
β
|
| 165 |
+
βββ data_generator/ # Data generation pipeline (EnergyPlus/Sinergym rollouts)
|
| 166 |
+
β βββ rollout_runner.py # Runs rollouts for selected building-weather configs and logs outputs
|
| 167 |
+
β βββ trajectory_generator.py # Creates trajectory datasets from rollouts
|
| 168 |
+
β
|
| 169 |
+
βββ evaluation/ # Evaluation scripts
|
| 170 |
+
β
|
| 171 |
+
βββ Inference_&_LLM/ # Inference + LLM/DHIL (Digital Human-in-the-Loop) components
|
| 172 |
+
β βββ inference.py # Runs local inference (loads model + produces actions)
|
| 173 |
+
β βββ inference_server.py # Server wrapper for inference (API-based deployment)
|
| 174 |
+
β βββ digital_human_in_the_loop.py # DHIL logic
|
| 175 |
+
β βββ llm_client/ # LLM client utilities
|
| 176 |
+
β βββ ...
|
| 177 |
+
β
|
| 178 |
+
βββ Model/ # Saved model checkpoints + configs
|
| 179 |
+
β βββ Model_V1/
|
| 180 |
+
β β βββ last.pt # Model checkpoint
|
| 181 |
+
β β βββ model_config.json # Training/model parameters
|
| 182 |
+
β β βββ report.json
|
| 183 |
+
β βββ Model_V2/ ...
|
| 184 |
+
β βββ Model_V3/ ...
|
| 185 |
+
β
|
| 186 |
+
βββ training/ # Training code (DT model, embeddings, losses, trainer)
|
| 187 |
+
β βββ data_loader.py # Loads trajectories, builds tokens/batches, normalization, RTG, etc.
|
| 188 |
+
β βββ embeddings.py # Feature encoders + token embeddings (zone/global/RTG encodings)
|
| 189 |
+
β βββ losses.py # Action loss + auxiliary losses (physics/value/etc. if enabled)
|
| 190 |
+
β βββ training.py # Main training entry point (train loop, checkpoints, logging)
|
| 191 |
+
β
|
| 192 |
+
βββ utilities/ # Shared utilities used across data-gen/training/eval/inference
|
| 193 |
+
βββ comfort.py # Comfort metric helpers
|
| 194 |
+
βββ data_generator.py # Shared dataset helpers / schema utilities
|
| 195 |
+
βββ policy.py # Policy wrappers (DT policy interface, action post-processing)
|
| 196 |
+
βββ rewards.py
|
| 197 |
+
βββ rollout.py # Rollout utilities (env stepping, logging, post-processing)
|
| 198 |
+
βββ tables.py
|
| 199 |
+
|
| 200 |
|