Download app/api/traffic_daemon.py from LeonardoMdSA/ML-Inference-Service-with-Drift-Detection: direct link, hf CLI and curl.
- Browser
- Download file 1.24 kB
-
https://huggingface.co/spaces/LeonardoMdSA/ML-Inference-Service-with-Drift-Detection/resolve/main/app/api/traffic_daemon.py
- Command line
-
hf download hf://spaces/LeonardoMdSA/ML-Inference-Service-with-Drift-Detection/app/api/traffic_daemon.py
-
curl -L -o traffic_daemon.py https://huggingface.co/spaces/LeonardoMdSA/ML-Inference-Service-with-Drift-Detection/resolve/main/app/api/traffic_daemon.py
1.24 kB
| # app/api/traffic_daemon.py | |
| import asyncio | |
| import pandas as pd | |
| import random | |
| import os | |
| import httpx | |
| API_URL = "http://localhost:8000/predict" | |
| SOURCE_DATA = "data/processed/current_data.csv" | |
| MIN_SLEEP = 2 | |
| MAX_SLEEP = 8 | |
| MIN_BATCH = 1 | |
| MAX_BATCH = 5 | |
| STARTUP_DELAY = 7 | |
| async def traffic_loop(): | |
| await asyncio.sleep(STARTUP_DELAY) | |
| if not os.path.exists(SOURCE_DATA): | |
| print("Traffic daemon: source data not found, disabled.") | |
| return | |
| df = pd.read_csv(SOURCE_DATA) | |
| print("Traffic daemon started.") | |
| async with httpx.AsyncClient(timeout=60.0) as client: | |
| while True: | |
| try: | |
| batch_size = random.randint(MIN_BATCH, MAX_BATCH) | |
| sample = df.sample(batch_size) | |
| csv_bytes = sample.to_csv(index=False).encode("utf-8") | |
| resp = await client.post( | |
| API_URL, | |
| files={"file": ("sample.csv", csv_bytes, "text/csv")} | |
| ) | |
| if resp.status_code != 200: | |
| print("Traffic daemon warning:", resp.status_code) | |
| except Exception as e: | |
| print("Traffic daemon error:", e) | |
| await asyncio.sleep(random.uniform(MIN_SLEEP, MAX_SLEEP)) | |