Inspiration — A real conversation about a retired teacher in Jayanagar with a chronic cough who had no easy way to connect the AQI data, BBMP fogging PDFs, and health advisories into a single actionable answer. Three personas, one question.
How we built it — Five concrete steps: data modelling first (with the round-trip integrity property expressed as a formal equation), Elasticsearch data stream design (including the null_value trick for open-ended advisories), ES|QL for the query layer (with the IST-aware 7-day trend formula), the Bedrock prompt engineering approach, and observability as a first-class concern (with the health-check HTTP status formula).
What we learned — ES|QL feels genuinely like SQL and not like query DSL. Factual constraint prompting is harder than prose generation. UTC+5:30 is a silent bug factory. Partial advisories beat error pages.
Challenges — CPCB and BBMP don't have clean public APIs. ILM + data streams on Elastic Cloud took iteration. The 150-word limit conflicts with mandatory safety content (resolved with a conditional ceiling). The "descriptive not prescriptive" constraint required explicit prompt rules and adversarial testing.
LaTeX math is used for the round-trip integrity property, the 7-day mean AQI formula, and the health-check HTTP status decision function.
Built With
- amazon-ec2-scheduling-amazon-eventbridge-search-&-analytics-elasticsearch
- bbmp
- es-visualisation-kibana-managed-cloud-elastic-cloud-aws-sdk-boto3-data-sources-cpcb
- imd
- iso-8601
- karnataka-health-dept-storage-pattern-elasticsearch-data-streams-+-ilm-wire-format-json
- language-python-3.11-api-framework-fastapi-+-uvicorn-ui-streamlit-llm-amazon-bedrock-?-claude-3-haiku-compute-aws-lambda
Log in or sign up for Devpost to join the conversation.