Inspiration
What it does
How we built it
Challenges we ran into
Accomplishments # The Story: Pet Rescue AI (Bengaluru)
🐾 The Inspiration
Bengaluru is a city of sharp contrasts—the Silicon Valley of India where high-tech innovation coexists with a sprawling stray animal population. While the city has an incredible heart, with dozens of NGOs like CUPA and CARE, the ecosystem is fragmented.
The inspiration for this project came from a single, high-stakes question: "What happens at 2 AM when someone finds an injured puppy?"
In that moment of panic, scrolling through WhatsApp groups or broken NGO links isn't an option. We wanted to build a Lifeline—a single agent that uses high-end AI to solve a grounded, grassroots problem.
🛠️ How We Built It
We built this project as a Unified Intelligence Pipeline using Elastic and AWS.
1. The Ingestion Brain
We didn't want a static database. We built an Open Crawler that scrapes real NGO contact pages. To make this searchable, we used the Jina AI v5 embedding model via the Elastic Inference Service. Descriptions are converted into high-dimensional vectors $V \in \mathbb{R}^{1024}$, allowing the agent to understand that "bleeding" is semantically close to "trauma care."
2. The Hybrid Search Engine
The "magic" happens in the search API. We use a hybrid approach that combines Semantic Relevance with Geospatial Precision. We calculate the distance $d$ between the user's coordinates $(lat_u, lon_u)$ and the rescuer's $(lat_r, lon_r)$ using the Haversine formula:
$$d = 2r \arcsin\left(\sqrt{\sin^2\left(\frac{lat_r - lat_u}{2}\right) + \cos(lat_u) \cos(lat_r) \sin^2\left(\frac{lon_r - lon_u}{2}\right)}\right)$$
Where $r$ is the Earth's radius (~6371 km).
3. The Reasoning Layer
Before showing results, Amazon Bedrock (Claude 3.5 Sonnet) analyzes the user's intent. It provides an immediate, empathetic acknowledgement, acting as a virtual "first responder" to calm the user while the system fetches the top 3 closest hospitals.
🧗 Challenges Faced
- The "Model Legacy" Trap: We initially faced significant challenges with Bedrock model versions and Marketplace auth errors. We had to build a robust discovery script to find the one active model (
us.anthropic.claude-sonnet-4-6) that worked in our environment. - Geospatial Mismatches: We learned the hard way that Elasticsearch expects
lonwhile many browser APIs and datasets providelng. Correcting this mapping was crucial for the "Near Me" feature. - UX for Stress: Designing a UI that feels "alive" (using animations) but doesn't feel cluttered was a balance. We opted for a Centered Agent UI that focuses the user's attention on the action buttons during a crisis.
🧠 What We Learned
We learned that Hybrid Search is the future of RAG. A pure LLM chatbot would hallucinate a phone number or give general advice. By grounding Bedrock's reasoning in Elastic's geospatial and semantic data, we created an agent that is both intelligent and trustworthy.
We learned that in a hackathon, the "Real" always beats the "Fake." Moving from seed data to live scraping of cupabangalore.org transformed the project from a mockup into a functional tool for the Bengaluru community.
Bengaluru's 24/7 AI Lifeline for Paws in Need. that we're proud of
Built With
- bedrock
- elastic
Log in or sign up for Devpost to join the conversation.