Welcome to the Multi-Domain Q&A Chatbot! This chatbot provides an intuitive way to upload files, extract knowledge, and ask questions, all while maintaining a user-friendly experience.
-
👤 User Profile Management:
- Collects the user's name and email to create a personalized JSON file.
- Stores user information for better interaction and future use.
-
📂 File Uploads:
- Supports file uploads in three domains (specific domains, e.g., Finance, Healthcare, Education).
- Processes and extracts data from the uploaded files.
-
🧠 ChromaDB Vector Storage:
- Converts file data into embeddings and saves it in a ChromaDB database.
- Enables fast and efficient knowledge retrieval for Q&A.
-
❓ Smart Question Answering:
- Users can ask questions related to the uploaded files.
- Provides detailed answers, including page numbers and file names for reference.
-
📜 General Chat Capabilities:
- Engages with users in a friendly manner when questions are unrelated to the files (e.g., "Hi!" or "Good morning!").
- Responds with
"I don't know the answer to that based on the document."
if no context is available.
-
User Onboarding:
- The chatbot takes the user's name and email and saves it in a JSON file for personalization.
-
File Upload & Processing:
- Users upload files in the supported domains.
- The chatbot processes the files, extracts information, and stores embeddings in a ChromaDB database.
-
Ask Questions:
- Users ask questions about the uploaded files.
- The chatbot retrieves relevant information from the database and provides detailed answers with references (page number and file name).
-
General Chat:
- For non-file-related questions, the chatbot engages in polite conversation or provides a fallback response.
-
Clone the Repository:
git clone https://github.com/dharmendradiwaker/Multi-Domain-chatbot.git cd multi-domain-chatbot
-
Install Dependencies:
Ensure you have Python installed, then run:pip install -r requirements.txt
-
Set Up ChromaDB:
- Install and configure ChromaDB as your vector storage solution.
-
Run the Chatbot:
python app.py
-
Step 1: Provide your name and email.
User: John. email: john@gmail.com
-
Step 2: Upload files.
User: Upload a file (e.g., finance_report.pdf). Chatbot: Your file 'finance_report.pdf' has been processed and stored.
-
Step 3: Ask questions.
User: What is the revenue in Q3? Chatbot: The revenue in Q3 is $1,000,000 (Page 5, finance_report.pdf).
-
Step 4: General conversation.
User: Good morning! Chatbot: Good morning! How can I assist you today?
- 🔍 Accurate References: Answers include page numbers and file names for transparency.
- 🌐 Multi-Domain Support: Handles files from multiple domains seamlessly.
- ⚡ Fast Retrieval: Leverages ChromaDB for quick and accurate knowledge extraction.
- 🤝 User-Friendly: Saves user details for personalization and remembers preferences.
We welcome contributions! To get started:
- Fork the repository 🍴
- Create a new branch 🚀
- Submit a pull request 📬