π€οΈ
WEATHER
Open-Meteo first β no LLM, no hallucinated numbers
When Neo asks for weather, Zion detects the keyword, bypasses the LLM , geocodes the city with Open-Meteo, pulls the forecast JSON, formats temp/humidity/wind/conditions, and replies. If Open-Meteo fails, wttr.in provides a plaintext fallback. Short TTL cache avoids hammering APIs.
A Real Conversation
Structured API path β every number is from a real endpoint
@zion weather in Pune
2:14 PM ββ
[Zion] π€οΈ Weather β Pune, India
ββββββββββββββββ
Clear sky
π‘οΈ 32Β°C (feels like 34Β°C)
π§ Humidity: 45%
π¨ Wind: 12 km/h NW
βοΈ UV Index: 7 (High)
Forecast:
Tomorrow: Partly cloudy 30Β°C
Friday: Thunderstorms 28Β°C
2:15 PM ββ
π click to read full brief
NEO
π± instant reply β no LLM
ZION
keyword: βweatherβ
skip LLM branch
OPEN-METEO
geocode βPuneβ β lat/lon
forecast JSON (current)
no API key required
PARSE + FORMAT
temp Β· humidity Β· wind
WMO weather code β text
optional UV index field
WhatsApp reply
[Zion] π€οΈ factual string
Bridge /api/send
FALLBACK + CACHE
wttr.in if Open-Meteo fails
search_cache.db Β· 15 min TTL
dedupe identical lookups
Weather handler in zion.py β deterministic branch
Capability Map
Weather construct β fast APIs, smart routing, cache ring
π€οΈ
WEATHER
APIs
Open-Meteo geocode + forecast
wttr.in plaintext fallback
no API key needed
HTTPS only, rate-friendly
SMART ROUTING
keyword detect β skip LLM
direct API = fast + accurate
no creative temperature
branch inside zion.py
CACHE
search_cache.db (SQLite)
15 minute TTL
same city spam guard
reduces upstream calls
DATA
temp Β· humidity Β· wind
conditions + codes
UV index when present
localized city label
Tech Stack
Runtime Python 3 β dedicated weather branch in zion.py
Primary API Open-Meteo geocoding + forecast (keyless)
Fallback wttr.in β curl-friendly weather text
Cache search_cache.db β 15 min TTL per query key
Routing Keyword gate bypasses LLM entirely
Delivery WhatsApp Bridge /api/send
β
π€οΈ WEATHER
@zion weather in Pune 2:14 PM ββ
[Zion] π€οΈ Weather β Pune, India
ββββββββββββββββ
Clear sky
π‘οΈ 32Β°C (feels like 34Β°C)
π§ Humidity: 45%
π¨ Wind: 12 km/h NW
βοΈ UV Index: 7 (High)
Forecast
Tomorrow: Partly cloudy 30Β°C
Friday: Thunderstorms 28Β°C
2:15 PM ββ