umar-sharif821 commited on
Commit
decc30b
·
1 Parent(s): 8f9ecaf

chore: add MIT license, CI smoke test, judges quickstart and results table

Browse files
Files changed (3) hide show
  1. .github/workflows/ci.yml +50 -0
  2. LICENSE +21 -0
  3. README.md +31 -0
.github/workflows/ci.yml ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [master, main]
6
+ pull_request:
7
+ branches: [master, main]
8
+
9
+ jobs:
10
+ smoke:
11
+ name: Syntax + Import Smoke Test
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - name: Checkout
15
+ uses: actions/checkout@v4
16
+
17
+ - name: Set up Python
18
+ uses: actions/setup-python@v5
19
+ with:
20
+ python-version: "3.11"
21
+
22
+ - name: Install runtime dependencies
23
+ run: |
24
+ python -m pip install --upgrade pip
25
+ pip install -r requirements.txt
26
+
27
+ - name: Python syntax check (all tracked .py files)
28
+ run: |
29
+ python -m compileall -q env api server app.py colab_submission_script.py
30
+
31
+ - name: Import environment modules
32
+ run: |
33
+ python -c "from env.cache import CDNCacheEnv, TASK_CONFIGS; print('env.cache OK, tasks:', list(TASK_CONFIGS.keys()))"
34
+ python -c "from env.models import Action, Observation, FileEntry, Reward, StepResult, TaskConfig; print('env.models OK')"
35
+
36
+ - name: One-episode baseline smoke run
37
+ run: |
38
+ python - <<'PY'
39
+ from env.cache import CDNCacheEnv
40
+ from env.models import Action
41
+ env = CDNCacheEnv(task_id="task_easy", seed=0)
42
+ env.reset()
43
+ total = 0.0
44
+ for _ in range(20):
45
+ result = env.step(Action(evict_file_id=None))
46
+ total += result.reward.total
47
+ if result.done:
48
+ break
49
+ print(f"Smoke OK - 20 steps, reward sum={total:.3f}")
50
+ PY
LICENSE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Umar Sharif
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
README.md CHANGED
@@ -15,8 +15,39 @@ tags:
15
 
16
  # CDN Cache Optimizer - OpenEnv RL Agent
17
 
 
 
 
 
18
  Hackathon-ready OpenEnv project for **edge CDN cache admission and eviction**. It simulates the real production tradeoff between serving from a fast edge cache and falling back to slower origin fetches, while handling schema drift in CDN logs.
19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  **Hackathon writeup:** [Blog.MD](./Blog.MD)
21
 
22
  **Live Space:** https://huggingface.co/spaces/umar-sharif821/cdn-cache-env-improvedone
 
15
 
16
  # CDN Cache Optimizer - OpenEnv RL Agent
17
 
18
+ [![CI](https://github.com/umar-sharif821/cdn-cache-env-improvedone/actions/workflows/ci.yml/badge.svg)](https://github.com/umar-sharif821/cdn-cache-env-improvedone/actions/workflows/ci.yml)
19
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)
20
+ [![HF Space](https://img.shields.io/badge/%F0%9F%A4%97-Live%20Space-blue)](https://huggingface.co/spaces/umar-sharif821/cdn-cache-env-improvedone)
21
+
22
  Hackathon-ready OpenEnv project for **edge CDN cache admission and eviction**. It simulates the real production tradeoff between serving from a fast edge cache and falling back to slower origin fetches, while handling schema drift in CDN logs.
23
 
24
+ ## Judges Quickstart (30 seconds)
25
+
26
+ ```bash
27
+ # 1. Click the live demo (no install)
28
+ open https://huggingface.co/spaces/umar-sharif821/cdn-cache-env-improvedone
29
+
30
+ # 2. Run locally
31
+ pip install -r requirements.txt && python app.py # Gradio UI on :7860
32
+
33
+ # 3. Reproduce training in Colab
34
+ !wget -q https://raw.githubusercontent.com/umar-sharif821/cdn-cache-env-improvedone/master/colab_submission_script.py
35
+ !python colab_submission_script.py
36
+ ```
37
+
38
+ ## Results at a Glance
39
+
40
+ Median over 5 seeds, `task_hard` (50MB cache, 35% viral files, 200 steps):
41
+
42
+ | Policy | Hit Rate | Bandwidth Saved | Score |
43
+ |---|---|---|---|
44
+ | Random eviction | 0.23 | low | 0.41 |
45
+ | LRU baseline | 0.45 | medium | 0.78 |
46
+ | **Fine-tuned Agent (ours)** | **0.58** | **high** | **0.92** |
47
+
48
+ `training_results.png` (produced by `colab_submission_script.py`) shows the 2×2 comparison chart judges can reference.
49
+
50
+
51
  **Hackathon writeup:** [Blog.MD](./Blog.MD)
52
 
53
  **Live Space:** https://huggingface.co/spaces/umar-sharif821/cdn-cache-env-improvedone