This is the GeoChatBot, created for the hackathon organized by Mineral Exploration and Consultancy Limited (MECL). The project includes a Streamlit application that features two main functionalities:
- GeoChatBot: An interactive chatbot to answer questions related to geological documents.
- Anomaly Map Generator: A tool to generate interpolated anomaly maps using IDW (Inverse Distance Weighting) and Kriging methods for various elements.
- Utilizes LangChain , LLaMA 2 7B and CTransformers for natural language processing and document retrieval.
- Provides answers based on geological documents in PDF format.
- Maintains a conversation history for better context understanding.
- Generates interpolated maps for geological elements using IDW and Kriging methods.
- Allows users to zoom, pan, and draw on the maps to explore anomalies in detail.
- Measures distance between selected points on the map.
![Anomaly Map Generator Screenshot]
To run this application locally, follow these steps:
-
Clone the repository:
git clone https://github.com/your-username/your-repository.git cd your-repository
-
Create a virtual environment (optional but recommended):
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install the required dependencies:
pip install -r requirements.txt
-
Prepare your data:
- Place your geological PDF documents in the
data/
directory. - Ensure you have a CSV file with your data for generating anomaly maps (e.g.,
Analytical_value_55K03.csv
).
- Place your geological PDF documents in the
-
Run the Streamlit application:
streamlit run mian.py
-
Navigate the application:
- Use the sidebar to switch between the GeoChatBot and the Anomaly Map Generator.
- For the GeoChatBot, type your questions and get answers based on the loaded documents.
- For the Anomaly Map Generator, enter the name of the element you want to analyze and explore the generated maps.
The required dependencies for this project are listed in the requirements.txt
file:
streamlit==1.23.1
streamlit-chat==0.0.2
langchain==0.0.138
langchain_community==0.0.12
numpy==1.23.3
pandas==1.5.2
folium==0.13.0
scikit-learn==1.1.3
scipy==1.9.3
streamlit-folium==0.10.0
branca==0.5.0
matplotlib==3.6.2
base64==1.0.0