The Park Whisperer is a personal production project — a complete AI platform for Walt Disney World intelligence, built and operated alone across three cloud providers. It started as a simple data collector in 2023 and has grown into a system that ingests satellite weather data, trains ML models, runs a multi-agent knowledge RAG, generates and publishes daily content to three platforms, and produces short-form video with no human involvement in the workflow. Every component here has a case study.
Each box is a real, deployed component. Colors indicate the cloud layer. Arrows show the primary data flow from raw sources through intelligence outputs.
| Service | Cloud | Cadence | What it does | Case Study |
|---|---|---|---|---|
park-data-ingest |
Azure | 10 min | ThemeParks.wiki API → PostgreSQL. 286 entities, wait times, schedules, LL sellout events. | Park Data Ingest ↗ |
lightning-watcher-optimized |
GCP | 10 min | GOES-18 GLM NetCDF → BigQuery. Spatial filter, haversine park attribution, dedup insert. | Lightning Tracker ↗ |
weather-updater-v6 |
GCP | 10 min | METAR ingestion from 17 FL stations → BigQuery weather_updater_v3. Present weather decode, derived fields. | Weather ML ↗ |
weather-updater-atmos |
GCP | 12 hr | Tampa Bay radiosonde (Station 72210) → BigQuery. CAPE, CIN, Lifted Index, K-Index, PWAT. | Weather ML ↗ |
weather-ml-trainer |
GCP | on-demand | Trains 6 scikit-learn models on 44K+ observations. Serializes to GCS pkl files. | Weather ML ↗ |
weather-ml-predictor |
GCP | 20 min | Loads models from GCS, spatial ST_DISTANCE query, applies boost, publishes nowcast JSON. | Weather ML ↗ |
weather-json-publisher |
GCP | 15 min | Fuses GLM + METAR + NWS + SPC into 5-state storm machine. Publishes live.json to GCS. | Lightning Tracker ↗ |
outage-tracker |
Azure | 5 min | Correlates live ride DOWN events with weather risk scores. Opens/closes outage log entries. | Lightning Tracker ↗ |
Knowledge ETL + pgvector |
Azure | scheduled | Builds 1.6M+ record knowledge base. OpenAI embeddings → PostgreSQL HNSW index. | Knowledge RAG ↗ |
queryIntelligence (Azure Function) |
Azure | on-demand | Phi-3 Mini classifies intent → routes to 3 query strategies (vector, numeric, hybrid). 34+ knowledge types. | Knowledge RAG ↗ |
SLM content pipeline |
Azure AWS | scheduled | LangChain agent + Claude on Bedrock. 10 pipeline types, 30+ tools, 3-pass generation, zero hallucinated data. | SLM Pipeline ↗ |
park-video-worker |
Azure | per publish | ElevenLabs TTS → word-sync captions → Pillow brand overlay → FFmpeg encode → publish. | AI Video Team ↗ |
Park Agent Chat (SWA) |
Azure | on-demand | Natural language Q&A via Azure Static Web App proxy. Shares function + tool library with content pipelines. | Park Agent ↗ |
convert_with_timestamps returns per-character timing that the caption generator uses to compute exact word boundaries. This drives frame-accurate word-pop captions where each word highlights as it's spoken — numbers purple, ride names mint, status coral. The alternative (WebVTT or forced-alignment) would require a second AI call or external tool.