Spaces:
Running
Running
Commit ·
bacf63d
1
Parent(s): b8ad1ba
Add HF Space metadata
Browse files
README.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
# GridMind-RL
|
| 2 |
|
| 3 |
**Industrial building energy management reinforcement learning environment**
|
|
@@ -34,11 +45,11 @@ GridMind-RL consists of three tightly integrated components:
|
|
| 34 |
Agent (python/inference.py)
|
| 35 |
?? HTTP POST /step, /reset, /grade
|
| 36 |
?
|
| 37 |
-
Go Environment Server (main.go) � Port 7860
|
| 38 |
?
|
| 39 |
Physics Engine (env/environment.go) + Rewards (env/rewards.go) + Tasks (env/tasks.go)
|
| 40 |
?
|
| 41 |
-
Web Dashboard (dashboard/server.py) � Port 7861
|
| 42 |
```
|
| 43 |
|
| 44 |
**Design philosophy:**
|
|
@@ -55,7 +66,7 @@ Web Dashboard (dashboard/server.py)
|
|
| 55 |
|
| 56 |
| Field | Type | Range | Description |
|
| 57 |
|-------|------|-------|-------------|
|
| 58 |
-
| `indoor_temperature` | float | [15-27] �C | Building indoor temperature |
|
| 59 |
| `thermal_storage_level` | float | [0-1] | Thermal storage charge (0=empty, 1=full) |
|
| 60 |
| `process_demand` | float | [5-50] kW | Baseline demand |
|
| 61 |
| `current_price` | float | [0.03-0.25] $/kWh | Electricity price |
|
|
@@ -82,7 +93,7 @@ Web Dashboard (dashboard/server.py)
|
|
| 82 |
| Component | Description |
|
| 83 |
|-----------|-------------|
|
| 84 |
| **Cost Savings** | Negative cost per energy consumed |
|
| 85 |
-
| **Temperature Constraint** | Penalty if T outside [19-23]�C |
|
| 86 |
| **Grid Response** | Bonus for load shedding during stress |
|
| 87 |
| **Deadline Penalty** | Penalty for missed batch deadlines |
|
| 88 |
| **Efficiency Bonus** | Bonus for off-peak charging |
|
|
@@ -100,7 +111,7 @@ Web Dashboard (dashboard/server.py)
|
|
| 100 |
| Task 3 | Hard | Full demand response + scheduling | **0.598** |
|
| 101 |
|
| 102 |
**Task 1 (Easy)**: Cost minimization, no constraints
|
| 103 |
-
**Task 2 (Medium)**: Cost + temperature comfort (19-23�C)
|
| 104 |
**Task 3 (Hard)**: Cost + comfort + grid response + batch scheduling + carbon
|
| 105 |
|
| 106 |
---
|
|
@@ -138,11 +149,11 @@ python inference.py --episodes 1
|
|
| 138 |
|
| 139 |
| Variable | Required | Default | Description |
|
| 140 |
|----------|----------|---------|-------------|
|
| 141 |
-
| `HF_TOKEN` | Yes | � | LLM API key |
|
| 142 |
| `API_BASE_URL` | No | `https://openrouter.ai/api/v1` | LLM endpoint |
|
| 143 |
| `MODEL_NAME` | No | `meta-llama/llama-3.3-70b-instruct:free` | Model ID |
|
| 144 |
| `ENV_URL` | No | `http://localhost:7860` | Environment server URL |
|
| 145 |
-
| `OPENAI_API_KEY` | No | � | Alternative to HF_TOKEN |
|
| 146 |
|
| 147 |
---
|
| 148 |
|
|
@@ -187,23 +198,23 @@ gridmind-rl/
|
|
| 187 |
+-- openenv.yaml # OpenEnv spec
|
| 188 |
+-- Dockerfile # Container build
|
| 189 |
+-- env/
|
| 190 |
-
� +-- environment.go # Physics simulation
|
| 191 |
-
� +-- models.go # Data models
|
| 192 |
-
� +-- rewards.go # Reward computation
|
| 193 |
-
� +-- tasks.go # Task grading
|
| 194 |
+-- python/
|
| 195 |
-
� +-- inference.py # LLM agent
|
| 196 |
-
� +-- models.py # Pydantic models
|
| 197 |
-
� +-- requirements.txt
|
| 198 |
+-- dashboard/
|
| 199 |
-
� +-- server.py # Web server (port 7861)
|
| 200 |
-
� +-- static/ # Frontend assets
|
| 201 |
+-- data/
|
| 202 |
-
� +-- price_curves.json # Price data
|
| 203 |
-
� +-- generate_prices.py # Price generator
|
| 204 |
+-- tests/
|
| 205 |
-
� +-- test_graders.py # Python tests
|
| 206 |
-
� +-- environment_test.go # Go tests
|
| 207 |
+-- baseline_scores.json # Reference scores
|
| 208 |
+-- .env.example # Environment template
|
| 209 |
+-- LICENSE # MIT License
|
|
|
|
| 1 |
+
---
|
| 2 |
+
title: GridMind-RL
|
| 3 |
+
emoji: ⚡
|
| 4 |
+
colorFrom: green
|
| 5 |
+
colorTo: blue
|
| 6 |
+
sdk: docker
|
| 7 |
+
app_port: 7860
|
| 8 |
+
pinned: false
|
| 9 |
+
license: mit
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
# GridMind-RL
|
| 13 |
|
| 14 |
**Industrial building energy management reinforcement learning environment**
|
|
|
|
| 45 |
Agent (python/inference.py)
|
| 46 |
?? HTTP POST /step, /reset, /grade
|
| 47 |
?
|
| 48 |
+
Go Environment Server (main.go) � Port 7860
|
| 49 |
?
|
| 50 |
Physics Engine (env/environment.go) + Rewards (env/rewards.go) + Tasks (env/tasks.go)
|
| 51 |
?
|
| 52 |
+
Web Dashboard (dashboard/server.py) � Port 7861
|
| 53 |
```
|
| 54 |
|
| 55 |
**Design philosophy:**
|
|
|
|
| 66 |
|
| 67 |
| Field | Type | Range | Description |
|
| 68 |
|-------|------|-------|-------------|
|
| 69 |
+
| `indoor_temperature` | float | [15-27] �C | Building indoor temperature |
|
| 70 |
| `thermal_storage_level` | float | [0-1] | Thermal storage charge (0=empty, 1=full) |
|
| 71 |
| `process_demand` | float | [5-50] kW | Baseline demand |
|
| 72 |
| `current_price` | float | [0.03-0.25] $/kWh | Electricity price |
|
|
|
|
| 93 |
| Component | Description |
|
| 94 |
|-----------|-------------|
|
| 95 |
| **Cost Savings** | Negative cost per energy consumed |
|
| 96 |
+
| **Temperature Constraint** | Penalty if T outside [19-23]�C |
|
| 97 |
| **Grid Response** | Bonus for load shedding during stress |
|
| 98 |
| **Deadline Penalty** | Penalty for missed batch deadlines |
|
| 99 |
| **Efficiency Bonus** | Bonus for off-peak charging |
|
|
|
|
| 111 |
| Task 3 | Hard | Full demand response + scheduling | **0.598** |
|
| 112 |
|
| 113 |
**Task 1 (Easy)**: Cost minimization, no constraints
|
| 114 |
+
**Task 2 (Medium)**: Cost + temperature comfort (19-23�C)
|
| 115 |
**Task 3 (Hard)**: Cost + comfort + grid response + batch scheduling + carbon
|
| 116 |
|
| 117 |
---
|
|
|
|
| 149 |
|
| 150 |
| Variable | Required | Default | Description |
|
| 151 |
|----------|----------|---------|-------------|
|
| 152 |
+
| `HF_TOKEN` | Yes | � | LLM API key |
|
| 153 |
| `API_BASE_URL` | No | `https://openrouter.ai/api/v1` | LLM endpoint |
|
| 154 |
| `MODEL_NAME` | No | `meta-llama/llama-3.3-70b-instruct:free` | Model ID |
|
| 155 |
| `ENV_URL` | No | `http://localhost:7860` | Environment server URL |
|
| 156 |
+
| `OPENAI_API_KEY` | No | � | Alternative to HF_TOKEN |
|
| 157 |
|
| 158 |
---
|
| 159 |
|
|
|
|
| 198 |
+-- openenv.yaml # OpenEnv spec
|
| 199 |
+-- Dockerfile # Container build
|
| 200 |
+-- env/
|
| 201 |
+
� +-- environment.go # Physics simulation
|
| 202 |
+
� +-- models.go # Data models
|
| 203 |
+
� +-- rewards.go # Reward computation
|
| 204 |
+
� +-- tasks.go # Task grading
|
| 205 |
+-- python/
|
| 206 |
+
� +-- inference.py # LLM agent
|
| 207 |
+
� +-- models.py # Pydantic models
|
| 208 |
+
� +-- requirements.txt
|
| 209 |
+-- dashboard/
|
| 210 |
+
� +-- server.py # Web server (port 7861)
|
| 211 |
+
� +-- static/ # Frontend assets
|
| 212 |
+-- data/
|
| 213 |
+
� +-- price_curves.json # Price data
|
| 214 |
+
� +-- generate_prices.py # Price generator
|
| 215 |
+-- tests/
|
| 216 |
+
� +-- test_graders.py # Python tests
|
| 217 |
+
� +-- environment_test.go # Go tests
|
| 218 |
+-- baseline_scores.json # Reference scores
|
| 219 |
+-- .env.example # Environment template
|
| 220 |
+-- LICENSE # MIT License
|