Inspiration

Delhi has 12 civic agencies. No single helpline. Existing bots hallucinate the wrong numbers.

What it does

Routes complaints to the right authority with a cited source, fetches live AQI, shows a 3D map of civic issues, drafts complaints. All backed by Elasticsearch.

How we built it

LangGraph state machine (classify→retrieve→confidence gate→answer) with Elasticsearch Cloud (GCP) for kNN vector search + query analytics in Kibana. Groq LLM, WAQI live data, MapLibre 3D map.

Challenges we ran into

Groq rate limits forced a deterministic fallback chain. Elasticsearch vs Chroma score semantics needed normalization. Building a confidence gate that says "I don't know" instead of guessing.

Accomplishments that we're proud of

Every answer cites a government source. Elasticsearch serves both RAG and live analytics dashboards. Zero-crash fallbacks at every node.

What we learned

Elasticsearch's dense_vector + analytics on the same cluster is powerful for demos. LangGraph makes retry-loops trivial. Delhi's civic data is genuinely fragmented.

What's next for Delhi Civic Sense Navigator

Ward-level jurisdiction lookup, Hindi language support, WhatsApp bot integration, auto-ingestion from PIB/DPCC feeds.

Built With

  • elasticsearch-cloud-(gcp)
  • fastapi
  • groq-llm
  • langgraph
  • maplibre
  • python
Share this project:

Updates