Live Link: https://assignment-llm.streamlit.app/
Welcome to the Automated Question Answering System project! This project leverages advanced natural language processing (NLP) and machine learning techniques to create a system capable of processing large textual datasets, analyzing them, and generating coherent responses to user queries.
- Data Extraction: Load and read text documents from specified directories.
- Data Preprocessing: Clean and chunk text data for processing.
- Embedding Generation: Generate embeddings using the
meta-llama/Meta-Llama-3-8B-Instruct
model. - Index Building: Use FAISS to build an index for efficient similarity search.
- Query Handling: Retrieve relevant document chunks and generate answers using Hugging Face models.
- Deployment: Deploy the application using Streamlit for an interactive user experience.
- Python 3.8 or higher
- Hugging Face Transformers
- FAISS
- Streamlit
- TQDM
- LangChain
-
Clone the repository:
git clone https://github.com/your-username/automated-question-answering-system.git cd automated-question-answering-system
-
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install the required packages:
pip install -r requirements.txt
-
Set up Hugging Face API Token: Store your Hugging Face API token as an environment variable:
export HUGGINGFACEHUB_API_TOKEN=your_huggingface_api_token # On Windows use `set HUGGINGFACEHUB_API_TOKEN=your_huggingface_api_token`
-
Prepare Data:
- Place your text files in the
data/milestone_papers_text
anddata/lecture_notes
directories.
- Place your text files in the
-
Run the Streamlit Application:
streamlit run src/app.py
-
Interact with the Application:
- Enter your query in the text box and get responses based on the provided data.
automated-question-answering-system/
│
├── data/
│ ├── milestone_papers_text/
│ └── lecture_notes/
│
├── src/
│ ├── app.py
│ ├── faiss_module.py
│ ├── process_text.py
│
├── requirements.txt
└── README.md
We welcome contributions to enhance the functionality and performance of this project. Please follow these steps to contribute:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Commit your changes and push them to your branch.
- Open a pull request with a detailed description of your changes.