A newer version of the Streamlit SDK is available:
1.52.2
metadata
title: Geo Spatial Multi Vector Search
emoji: π
colorFrom: yellow
colorTo: red
sdk: streamlit
sdk_version: 1.52.0
app_file: app.py
pinned: false
license: mit
Geo-Spatial Chat with Qdrant & ColPali
Query geospatial burn scar data using natural language, powered by ColPali (Vidore/colSmol-500M) multi-vector embeddings and Qdrant.
β¨ Features
- Natural Language Search: Ask questions like "Find burn scars larger than 500 hectares in California".
- Multi-Vector Retrieval: Uses
colpali-v1.2(viacolSmol-500M) for fine-grained patch-level image retrieval. - Spatial Filtering:
- Geocoding Dropdown: Select US States or Canadian Provinces to automatically focus the search.
- Radius Search: Filter results within a specified radius (km) of a location.
- Temporal Filtering: Filter burn scars by acquisition date range.
- Interactive Map: Visualize results on a Folium map with popups displaying score, area, and RGB imagery.
- Rich Results: View top matches with confidence scores, metadata, and Color (RGB) imagery.
π Getting Started
Prerequisites
- Python 3.10+
- Qdrant Instance (Local or Cloud)
Installation
Clone the repository:
git clone https://github.com/mahimairaja/geo-spatial-chat-qdrant.git cd geo-spatial-chat-qdrantInstall dependencies: Using
uv(recommended):uv pip install -r requirements.txtOr standard pip:
pip install -r requirements.txtEnvironment Setup: Create a
.envfile in the root directory:QDRANT_URL=your_qdrant_url QDRANT_API_KEY=your_qdrant_api_key HF_TOKEN=your_huggingface_token
Data Ingestion
To ingest the dataset (HLS Burn Scars) into Qdrant:
python -m utils.ingest_to_qdrant
Note: This process generates ColPali embeddings and may take some time depending on your hardware (GPU recommended).
Running the App
streamlit run app.py
π οΈ Technology Stack
- Frontend: Streamlit
- Vector Database: Qdrant
- Embedding Model: ColPali (Vidore/colSmol-500M) - Optimized for document/image retrieval using Idefics3 architecture.
- Map Visualization: Folium &
streamlit-folium - Geocoding:
geopy(Nominatim API)
If you are interested in dataset preparation, you can find it here:
π License
MIT License