How debanjan06/geospatial-rag works
GeoSpatial-RAG lets users submit text queries, optionally with a remote-sensing image, through a CLI demo or Streamlit chat. The pipeline embeds inputs with CLIP, retrieves and ranks matching documents from SQLite, optionally captions the submitted image, and assembles a response from the retrieved context. README describes database preparation and broader LangChain generation capabilities, but the tree contains no ingestion scripts, and the sampled response code is a local formatter rather than a LangChain generation chain. The VLM implementation is referenced but absent from the tree, so its path is limited to the existing package directory.
Main entry points: pipeline.py RAG Pipeline · interactive_demo.py CLI Demo · streamlit_app.py Streamlit Chat · retriever.py SQLite Retriever
Components 13
User Interfaces
- CLI Demo
demo/interactive_demo.py - Streamlit Chat
streamlit_app.py
Query Pipeline
- RAG Pipeline
src/geospatial_rag/pipeline.py - VLM Captioning
src/geospatial_rag - Context Response
src/geospatial_rag/pipeline.py
Embedding Retrieval
- CLIP Encoder
src/geospatial_rag/embeddings.py - SQLite Retriever
src/geospatial_rag/retriever.py
Vector Storage
- Database Operations
src/geospatial_rag/database.py - SQLite Vector DB
Other components
- Analyst
- Text Query
- Image Input
- Search Results
Connections 16
- Analyst → CLI Demo: enters query
- Analyst → Streamlit Chat: submits query
- Text Query → RAG Pipeline: query text
- Image Input → RAG Pipeline: optional image
- CLI Demo → RAG Pipeline: calls query
- Streamlit Chat → RAG Pipeline: calls query
- RAG Pipeline → CLIP Encoder: encodes inputs
- RAG Pipeline → SQLite Retriever: creates and queries
- SQLite Retriever → SQLite Vector DB: reads embeddings
- Database Operations → SQLite Vector DB: reads and writes
- RAG Pipeline → Database Operations: gets statistics
- RAG Pipeline → VLM Captioning: requests caption
- RAG Pipeline → Context Response: builds response
- RAG Pipeline → Search Results: returns documents and response
- Streamlit Chat → Search Results: displays results
- CLI Demo → Search Results: prints results