--- title: Tokyo Weather Forecast Lab sdk: gradio app_file: app.py pinned: false --- # WeatherPred A Gradio app for comparing Tokyo five-day weather forecasts from Open-Meteo with a local ONNX model forecast. ## Repository Layout ```text app.py # HuggingFace Spaces entrypoint weatherpred/ # Application package config.py # Paths, constants, Tokyo coordinates data.py # Open-Meteo fetch and CSV/JSON cache modeling.py # ONNX inference and forecast comparison agent.py # Gemini-backed agent orchestration and fallback logic prompts.py # LLM routing and response prompts tools.py # Deterministic forecast/trend/seasonality/model tools dashboard.py # Gradio UI zerogpu.py # HuggingFace ZeroGPU compatibility models/mock_model/ # ONNX model artifacts scripts/ # Data/model utility scripts requirements.txt # Runtime dependencies requirements-train.txt # Optional model training dependencies ``` ## Local Run ```bash pip install -r requirements.txt python scripts/fetch_historical_weather.py python app.py ``` ## HuggingFace ZeroGPU Free HuggingFace Gradio Spaces may run on ZeroGPU only. A tiny hidden compatibility probe is decorated with `@spaces.GPU(duration=10)` so the Space satisfies the ZeroGPU startup check, while the real weather dashboard refresh remains CPU-based. The local fallback keeps the app runnable outside HuggingFace. ## Agent Capabilities The chat agent uses Gemini when `GEMINI_API_KEY` is available, with a deterministic fallback parser when it is not. It can route user requests to typed Python tools for: - next-N-day forecasts, up to 16 days - historical trends over the cached weather history - seasonal/monthly cyclic patterns - model-vs-Open-Meteo comparison - model and data-source explanation The LLM does not invent forecasts directly; it selects tools and explains their computed results. ## Optional Gemini Briefing Set `GEMINI_API_KEY` as a HuggingFace Space secret. If it is absent, the app uses deterministic fallback summaries and routing. ## Optional Model Export ```bash pip install -r requirements-train.txt python scripts/fetch_historical_weather.py python scripts/train_export_onnx.py ``` The training helper exports the ONNX model to `models/mock_model/model.onnx`.