CiviAssist is an AI-powered Retrieval-Augmented Generation (RAG) system that recommends relevant Indian Standard (IS) codes based on user queries.
It uses FAISS-based semantic search to retrieve the most relevant standards from a structured dataset and displays them via a Streamlit interface.
- 🔍 Semantic search using FAISS
- 🧠 RAG-based retrieval pipeline
- ⚡ Fast vector similarity search
- 📚 Domain-specific IS standards dataset
- 🖥️ Interactive Streamlit UI
CiviAssist/
│
├── data/
│ └── bis_standards.json
│
├── venv/
│
├── app.py
├── build_index.py
├── rag_engine.py
├── faiss_index.bin
├── metadata.pkl
├── requirements.txt
git clone https://github.com/Suvanwita/civiassist.git
cd BIS-RAGpython3 -m venv venv
source venv/bin/activatepython -m venv venv
venv\Scripts\activatepip install --upgrade pippip install -r requirements.txtpython build_index.pyThis generates:
faiss_index.binmetadata.pkl
Run the RAG engine directly:
python rag_engine.py👉 This allows you to:
- Enter queries in terminal
- See retrieved IS codes
- Debug retrieval logic
streamlit run app.pyhttp://localhost:8501
- IS code for cement
- Standard for reinforced concrete
- Concrete mix design guidelines
- IS code for steel reinforcement
- Aggregates standard in construction
- Loads dataset
- Converts text → embeddings
- Stores vectors in FAISS
- Converts query → embedding
- Searches FAISS index
- Returns top matches
- Takes user input
- Displays ranked IS codes
[
{
"id": "IS 456",
"title": "Plain and Reinforced Concrete",
"score": 0.92
}
]- 🤖 Add LLM for full RAG (answer generation)
- 📊 Visualization of similarity scores
- 🌐 FastAPI backend
- 🧠 Hybrid search (keyword + vector)
- 📄 Full document retrieval
- Dataset is limited
- Retrieval-only (no generative explanation yet)
- Performance depends on embeddings quality
- Fork the repo
- Create branch
- Commit changes
- Open PR
MIT License
CiviAssist is built to simplify IS code discovery using AI-driven semantic search for civil engineering applications.
If you found this useful, consider giving a ⭐ on GitHub!