From ded8f637177889f42259560d49b89ed70559efb8 Mon Sep 17 00:00:00 2001 From: DevDatir Date: Mon, 14 Oct 2024 14:42:12 +0530 Subject: [PATCH 1/2] Added Rajasthan Chatbot Project --- Rajasthan Chatbot/README.md | 96 +++ Rajasthan Chatbot/dataset3.json | 1187 +++++++++++++++++++++++++++++++ Rajasthan Chatbot/model.ipynb | 444 ++++++++++++ Rajasthan Chatbot/ss1.png | Bin 0 -> 70105 bytes Rajasthan Chatbot/ss2.png | Bin 0 -> 55803 bytes 5 files changed, 1727 insertions(+) create mode 100644 Rajasthan Chatbot/README.md create mode 100644 Rajasthan Chatbot/dataset3.json create mode 100644 Rajasthan Chatbot/model.ipynb create mode 100644 Rajasthan Chatbot/ss1.png create mode 100644 Rajasthan Chatbot/ss2.png diff --git a/Rajasthan Chatbot/README.md b/Rajasthan Chatbot/README.md new file mode 100644 index 0000000..8ffa8a6 --- /dev/null +++ b/Rajasthan Chatbot/README.md @@ -0,0 +1,96 @@ + +# Rajasthan Engineering College Chatbot + +This project is a chatbot designed to provide detailed information about engineering colleges in Rajasthan. It can answer questions regarding cutoffs, fees, placements, and other important details for 30 colleges in the state. The chatbot interacts with users via a command-line interface, helping them find information based on their inputs like exam scores, desired colleges, and more. + +# My Project + +Here is an image of the project: +![Project Screenshot](ss1.png) +![Project Screenshot](ss2.png) + + +## Features + +- **Cutoff Information**: Get cutoff details for specific colleges across different years. +- **College Eligibility**: Based on a user's exam score and exam type (e.g., JEE Main, BITSAT), the chatbot will return a list of eligible colleges. +- **Fee Structure**: Provides annual fee details for available courses at various colleges. +- **Placement Packages**: Information about average and highest placement packages offered by the top recruiters. +- **Best College Suggestion**: Recommends the best college based on weighted criteria, such as average package, highest package, rating, and cutoff. + +## Problem Statement + +The goal of this project is to create a Few Shot Language Agnostic Keyword Spotting (FSLAKWS) system capable of localizing and classifying keywords in variable duration audio files. The system should be language-agnostic, support various sample rates, and be able to upgrade to include additional keywords. + +While this chatbot doesn’t fully implement all aspects of the FSLAKWS system, it serves as a working prototype to explore key features such as keyword localization and handling different query types. + +## Tech Stack + +- **Programming Language**: Python +- **Libraries**: + - `pandas`: For data handling and processing. + - `cohere`: For language model-based responses. + - `fuzzywuzzy`: For fuzzy string matching to enhance college name recognition. + - `dotenv`: To load API keys from environment files. +- **External APIs**: + - Cohere API: Used to generate natural language responses. +- **Environment Management**: `dotenv` for API key security. + +## Setup + +### Prerequisites + +Ensure you have Python 3.x installed and a virtual environment setup. + +1. Clone the repository: + ```bash + git clone https://github.com/yourusername/rajasthan-college-chatbot.git + cd rajasthan-college-chatbot + ``` + +2. Install dependencies: + ```bash + pip install -r requirements.txt + ``` + +3. Set up your environment variables. Create a `.env` file with the following content: + ``` + COHERE_API_KEY=your-cohere-api-key + ``` + +### Running the Chatbot + +After setting up your environment: + +```bash +python chatbot.py +``` + +You'll be greeted with a prompt where you can type questions like: +- "Which colleges can I get with a JEE Main score of 150?" +- "What is the cutoff for BITS Pilani in 2023?" +- "What are the fees for MNIT Jaipur?" + +### Example Queries + +- **Eligibility**: "Which colleges can I get with a JEE Main score of 180?" +- **Cutoff Info**: "Tell me the cutoff for BITS Pilani in 2022." +- **Fees**: "What are the fees for LNMIIT Jaipur?" +- **Best College**: "Which college is the best among my options?" + +### Notes + +- The dataset is limited to 30 colleges from Rajasthan. +- The project utilizes a pre-defined dataset and fuzzy matching for college names to account for variations in user input. +- You can improve or extend the dataset by adding more colleges and related information. + +## To-Do / Future Improvements + +- Add more colleges and exams to the dataset for broader applicability. +- Improve the language understanding and handling of more complex queries. +- Implement a web interface for ease of use and integration with other platforms. +- Add support for multiple languages. + +## License + +This project is licensed under the MIT License. diff --git a/Rajasthan Chatbot/dataset3.json b/Rajasthan Chatbot/dataset3.json new file mode 100644 index 0000000..d7f68dd --- /dev/null +++ b/Rajasthan Chatbot/dataset3.json @@ -0,0 +1,1187 @@ +[ + { + "name": "BITS Pilani", + "location": "Pilani", + "type": "Private", + "rating": 4.5, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 245000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 245000 + }, + { + "name": "B.Tech Electrical and Electronics Engineering", + "duration": "4 years", + "annual_fee": 245000 + }, + { + "name": "B.Tech Chemical Engineering", + "duration": "4 years", + "annual_fee": 245000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 245000 + } + ], + "admission": { + "exam": "BITSAT", + "cutoff": { + "2023": 320, + "2022": 315, + "2021": 310 + } + }, + "placements": { + "average_package": 2500000, + "highest_package": 6000000, + "top_recruiters": ["Microsoft", "Google", "Amazon", "Oracle", "Goldman Sachs"] + }, + "facilities": ["Wi-Fi campus", "Smart classrooms", "Advanced labs", "Sports complex", "Incubation center"] + }, + { + "name": "Malaviya National Institute of Technology (MNIT)", + "location": "Jaipur", + "type": "Public", + "rating": 4.4, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 125000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 125000 + }, + { + "name": "B.Tech Electronics and Communication Engineering", + "duration": "4 years", + "annual_fee": 125000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 125000 + } + ], + "admission": { + "exam": "JEE Main", + "cutoff": { + "2023": 20000, + "2022": 22000, + "2021": 23000 + } + }, + "placements": { + "average_package": 1800000, + "highest_package": 5500000, + "top_recruiters": ["Infosys", "Wipro", "TCS", "Cognizant", "Adobe"] + }, + "facilities": ["Library", "Hostel", "Sports facilities", "Research labs", "Wi-Fi"] + }, + { + "name": "Manipal University Jaipur", + "location": "Jaipur", + "type": "Private", + "rating": 4.2, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 210000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 200000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 200000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 200000 + } + ], + "admission": { + "exam": "MET", + "cutoff": { + "2023": 15000, + "2022": 16000, + "2021": 17000 + } + }, + "placements": { + "average_package": 1200000, + "highest_package": 4500000, + "top_recruiters": ["Accenture", "Capgemini", "Infosys", "HCL", "IBM"] + }, + "facilities": ["Library", "Hostel", "Wi-Fi", "Sports complex", "Cafeteria"] + }, + { + "name": "Rajasthan Technical University (RTU)", + "location": "Kota", + "type": "Public", + "rating": 4.0, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 80000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 80000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 80000 + }, + { + "name": "B.Tech Electronics and Communication Engineering", + "duration": "4 years", + "annual_fee": 80000 + } + ], + "admission": { + "exam": "REAP", + "cutoff": { + "2023": 30000, + "2022": 32000, + "2021": 35000 + } + }, + "placements": { + "average_package": 800000, + "highest_package": 2000000, + "top_recruiters": ["Tech Mahindra", "L&T", "IBM", "Siemens", "Samsung"] + }, + "facilities": ["Hostel", "Library", "Labs", "Sports facilities", "Cafeteria"] + }, + { + "name": "JK Lakshmipat University", + "location": "Jaipur", + "type": "Private", + "rating": 4.1, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 180000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 175000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 175000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 175000 + } + ], + "admission": { + "exam": "JEE Main", + "cutoff": { + "2023": 35000, + "2022": 36000, + "2021": 37000 + } + }, + "placements": { + "average_package": 1000000, + "highest_package": 3000000, + "top_recruiters": ["Deloitte", "Cognizant", "Wipro", "TCS", "Infosys"] + }, + "facilities": ["Wi-Fi campus", "Library", "Labs", "Sports complex", "Cafeteria"] + }, + { + "name": "Poornima University", + "location": "Jaipur", + "type": "Private", + "rating": 3.9, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 150000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 145000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 145000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 145000 + } + ], + "admission": { + "exam": "REAP", + "cutoff": { + "2023": 40000, + "2022": 41000, + "2021": 42000 + } + }, + "placements": { + "average_package": 900000, + "highest_package": 2500000, + "top_recruiters": ["Infosys", "Wipro", "TCS", "Cognizant", "Capgemini"] + }, + "facilities": ["Library", "Hostel", "Labs", "Sports complex", "Cafeteria"] + }, + { + "name": "JECRC University", + "location": "Jaipur", + "type": "Private", + "rating": 4.0, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 170000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 165000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 165000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 165000 + } + ], + "admission": { + "exam": "JEE Main", + "cutoff": { + "2023": 38000, + "2022": 39000, + "2021": 40000 + } + }, + "placements": { + "average_package": 1100000, + "highest_package": 3000000, + "top_recruiters": ["Infosys", "TCS", "Wipro", "Cognizant", "Capgemini"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Sports complex"] + }, + { + "name": "Swami Keshvanand Institute of Technology (SKIT)", + "location": "Jaipur", + "type": "Private", + "rating": 4.1, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 130000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 130000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 130000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 130000 + } + ], + "admission": { + "exam": "REAP", + "cutoff": { + "2023": 35000, + "2022": 36000, + "2021": 37000 + } + }, + "placements": { + "average_package": 950000, + "highest_package": 2200000, + "top_recruiters": ["Infosys", "Wipro", "TCS", "Cognizant", "Capgemini"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Sports complex"] + }, + { + "name": "Jaipur Engineering College & Research Centre (JECRC)", + "location": "Jaipur", + "type": "Private", + "rating": 4.2, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 140000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 140000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 140000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 140000 + } + ], + "admission": { + "exam": "JEE Main", + "cutoff": { + "2023": 40000, + "2022": 42000, + "2021": 43000 + } + }, + "placements": { + "average_package": 1000000, + "highest_package": 2800000, + "top_recruiters": ["Infosys", "Wipro", "TCS", "Cognizant", "Capgemini"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Sports complex"] + }, + { + "name": "Arya College of Engineering & IT", + "location": "Jaipur", + "type": "Private", + "rating": 3.8, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 125000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 125000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 125000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 125000 + } + ], + "admission": { + "exam": "REAP", + "cutoff": { + "2023": 45000, + "2022": 46000, + "2021": 47000 + } + }, + "placements": { + "average_package": 850000, + "highest_package": 2100000, + "top_recruiters": ["Infosys", "Wipro", "TCS", "Cognizant", "Capgemini"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Sports complex"] + }, + { + "name": "Global Institute of Technology", + "location": "Jaipur", + "type": "Private", + "rating": 3.9, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 140000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 140000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 140000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 140000 + } + ], + "admission": { + "exam": "JEE Main", + "cutoff": { + "2023": 48000, + "2022": 49000, + "2021": 50000 + } + }, + "placements": { + "average_package": 900000, + "highest_package": 2400000, + "top_recruiters": ["Infosys", "Wipro", "TCS", "Cognizant", "Capgemini"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Sports complex"] + }, + { + "name": "Vivekananda Global University (VGU)", + "location": "Jaipur", + "type": "Private", + "rating": 4.0, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 160000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 160000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 160000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 160000 + } + ], + "admission": { + "exam": "JEE Main", + "cutoff": { + "2023": 44000, + "2022": 45000, + "2021": 46000 + } + }, + "placements": { + "average_package": 1000000, + "highest_package": 3000000, + "top_recruiters": ["Infosys", "Wipro", "TCS", "Cognizant", "Capgemini"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Sports complex"] + }, + { + "name": "Jagannath University", + "location": "Jaipur", + "type": "Private", + "rating": 3.7, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 135000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 135000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 135000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 135000 + } + ], + "admission": { + "exam": "REAP", + "cutoff": { + "2023": 47000, + "2022": 48000, + "2021": 49000 + } + }, + "placements": { + "average_package": 800000, + "highest_package": 2000000, + "top_recruiters": ["Infosys", "Wipro", "TCS", "Cognizant", "Capgemini"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Sports complex"] + }, + { + "name": "LNM Institute of Information Technology (LNMIIT)", + "location": "Jaipur", + "type": "Private", + "rating": 4.3, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 240000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 240000 + }, + { + "name": "B.Tech Electrical and Electronics Engineering", + "duration": "4 years", + "annual_fee": 240000 + }, + { + "name": "B.Tech Communication & Computer Engineering", + "duration": "4 years", + "annual_fee": 240000 + } + ], + "admission": { + "exam": "JEE Main", + "cutoff": { + "2023": 20000, + "2022": 21000, + "2021": 22000 + } + }, + "placements": { + "average_package": 1500000, + "highest_package": 4000000, + "top_recruiters": ["Amazon", "Microsoft", "Google", "Adobe", "Flipkart"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Sports complex"] + }, + + + + { + "name": "Amity University Rajasthan", + "location": "Jaipur", + "type": "Private", + "rating": 4.3, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 220000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 215000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 215000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 215000 + } + ], + "admission": { + "exam": "JEE Main", + "cutoff": { + "2023": 30000, + "2022": 31000, + "2021": 32000 + } + }, + "placements": { + "average_package": 1200000, + "highest_package": 3500000, + "top_recruiters": ["TCS", "Wipro", "Infosys", "IBM", "Cognizant"] + }, + "facilities": ["Library", "Hostel", "Wi-Fi", "Sports complex", "Labs"] + }, + { + "name": "Jaipur National University", + "location": "Jaipur", + "type": "Private", + "rating": 4.0, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 175000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 170000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 170000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 170000 + } + ], + "admission": { + "exam": "JEE Main", + "cutoff": { + "2023": 45000, + "2022": 46000, + "2021": 47000 + } + }, + "placements": { + "average_package": 900000, + "highest_package": 2500000, + "top_recruiters": ["Wipro", "Infosys", "Capgemini", "Cognizant", "HCL"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Cafeteria"] + }, + { + "name": "Maharishi Arvind Institute of Engineering & Technology", + "location": "Jaipur", + "type": "Private", + "rating": 4.1, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 150000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 145000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 145000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 145000 + } + ], + "admission": { + "exam": "REAP", + "cutoff": { + "2023": 41000, + "2022": 42000, + "2021": 43000 + } + }, + "placements": { + "average_package": 1000000, + "highest_package": 3000000, + "top_recruiters": ["TCS", "Wipro", "Infosys", "Cognizant", "Capgemini"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Sports complex"] + }, + { + "name": "Suresh Gyan Vihar University", + "location": "Jaipur", + "type": "Private", + "rating": 4.2, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 200000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 195000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 195000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 195000 + } + ], + "admission": { + "exam": "SGVU CET", + "cutoff": { + "2023": 25000, + "2022": 26000, + "2021": 27000 + } + }, + "placements": { + "average_package": 1100000, + "highest_package": 2800000, + "top_recruiters": ["Infosys", "Wipro", "TCS", "Cognizant", "HCL"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Sports complex"] + }, + { + "name": "Rajasthan Institute of Engineering and Technology (RIET)", + "location": "Jaipur", + "type": "Private", + "rating": 4.0, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 165000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 160000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 160000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 160000 + } + ], + "admission": { + "exam": "REAP", + "cutoff": { + "2023": 38000, + "2022": 39000, + "2021": 40000 + } + }, + "placements": { + "average_package": 900000, + "highest_package": 2400000, + "top_recruiters": ["Infosys", "Wipro", "TCS", "Cognizant", "Capgemini"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Cafeteria"] + }, + { + "name": "Mody University of Science and Technology", + "location": "Laxmangarh", + "type": "Private", + "rating": 4.4, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 250000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 245000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 245000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 245000 + } + ], + "admission": { + "exam": "MUST CET", + "cutoff": { + "2023": 15000, + "2022": 16000, + "2021": 17000 + } + }, + "placements": { + "average_package": 1300000, + "highest_package": 3500000, + "top_recruiters": ["TCS", "Wipro", "Infosys", "IBM", "Cognizant"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Sports complex"] + }, + { + "name": "Institute of Engineering and Technology, Alwar", + "location": "Alwar", + "type": "Private", + "rating": 4.1, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 145000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 140000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 140000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 140000 + } + ], + "admission": { + "exam": "REAP", + "cutoff": { + "2023": 43000, + "2022": 44000, + "2021": 45000 + } + }, + "placements": { + "average_package": 1000000, + "highest_package": 2900000, + "top_recruiters": ["TCS", "Wipro", "Infosys", "Cognizant", "Capgemini"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Sports complex"] + }, + { + "name": "Arya Institute of Engineering and Technology", + "location": "Jaipur", + "type": "Private", + "rating": 4.0, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 155000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 150000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 150000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 150000 + } + ], + "admission": { + "exam": "REAP", + "cutoff": { + "2023": 39000, + "2022": 40000, + "2021": 41000 + } + }, + "placements": { + "average_package": 950000, + "highest_package": 2600000, + "top_recruiters": ["Infosys", "Wipro", "TCS", "Cognizant", "Capgemini"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Cafeteria"] + }, + { + "name": "Rajasthan Technical University", + "location": "Kota", + "type": "Public", + "rating": 4.5, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 90000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 85000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 85000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 85000 + } + ], + "admission": { + "exam": "REAP", + "cutoff": { + "2023": 15000, + "2022": 16000, + "2021": 17000 + } + }, + "placements": { + "average_package": 1200000, + "highest_package": 3500000, + "top_recruiters": ["TCS", "Wipro", "Infosys", "Cognizant", "IBM"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Sports complex"] + }, + { + "name": "Banasthali Vidyapith", + "location": "Tonk", + "type": "Public", + "rating": 4.6, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 180000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 175000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 175000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 175000 + } + ], + "admission": { + "exam": "Banasthali Aptitude Test", + "cutoff": { + "2023": 10000, + "2022": 11000, + "2021": 12000 + } + }, + "placements": { + "average_package": 1300000, + "highest_package": 4000000, + "top_recruiters": ["TCS", "Wipro", "Infosys", "IBM", "Cognizant"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Sports complex"] + }, + { + "name": "Poornima College of Engineering", + "location": "Jaipur", + "type": "Private", + "rating": 4.2, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 165000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 160000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 160000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 160000 + } + ], + "admission": { + "exam": "REAP", + "cutoff": { + "2023": 37000, + "2022": 38000, + "2021": 39000 + } + }, + "placements": { + "average_package": 1000000, + "highest_package": 2800000, + "top_recruiters": ["Infosys", "Wipro", "TCS", "Cognizant", "Capgemini"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Cafeteria"] + }, + { + "name": "Birla Institute of Technology and Science, Pilani (BITS Pilani)", + "location": "Pilani", + "type": "Private", + "rating": 4.9, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 400000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 390000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 390000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 390000 + } + ], + "admission": { + "exam": "BITSAT", + "cutoff": { + "2023": 2500, + "2022": 2600, + "2021": 2700 + } + }, + "placements": { + "average_package": 2400000, + "highest_package": 6000000, + "top_recruiters": ["Google", "Microsoft", "Facebook", "Amazon", "Flipkart"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Sports complex"] + }, + { + "name": "JECRC University", + "location": "Jaipur", + "type": "Private", + "rating": 4.3, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 175000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 170000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 170000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 170000 + } + ], + "admission": { + "exam": "REAP", + "cutoff": { + "2023": 30000, + "2022": 31000, + "2021": 32000 + } + }, + "placements": { + "average_package": 1100000, + "highest_package": 2800000, + "top_recruiters": ["Infosys", "Wipro", "TCS", "Cognizant", "Capgemini"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Cafeteria"] + }, + { + "name": "Global Institute of Technology (GIT)", + "location": "Jaipur", + "type": "Private", + "rating": 4.1, + "courses": [ + { + "name": "B.Tech Computer Science", + "duration": "4 years", + "annual_fee": 160000 + }, + { + "name": "B.Tech Mechanical Engineering", + "duration": "4 years", + "annual_fee": 155000 + }, + { + "name": "B.Tech Civil Engineering", + "duration": "4 years", + "annual_fee": 155000 + }, + { + "name": "B.Tech Electrical Engineering", + "duration": "4 years", + "annual_fee": 155000 + } + ], + "admission": { + "exam": "REAP", + "cutoff": { + "2023": 35000, + "2022": 36000, + "2021": 37000 + } + }, + "placements": { + "average_package": 1000000, + "highest_package": 2700000, + "top_recruiters": ["Infosys", "Wipro", "TCS", "Cognizant", "Capgemini"] + }, + "facilities": ["Library", "Hostel", "Labs", "Wi-Fi", "Cafeteria"] + } + +] diff --git a/Rajasthan Chatbot/model.ipynb b/Rajasthan Chatbot/model.ipynb new file mode 100644 index 0000000..36783df --- /dev/null +++ b/Rajasthan Chatbot/model.ipynb @@ -0,0 +1,444 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "8da630ad", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: cohere in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (5.9.0)\n", + "Requirement already satisfied: types-requests<3.0.0,>=2.0.0 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from cohere) (2.31.0.6)\n", + "Requirement already satisfied: httpx-sse==0.4.0 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from cohere) (0.4.0)\n", + "Requirement already satisfied: pydantic>=1.9.2 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from cohere) (2.8.2)\n", + "Requirement already satisfied: parameterized<0.10.0,>=0.9.0 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from cohere) (0.9.0)\n", + "Requirement already satisfied: typing_extensions>=4.0.0 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from cohere) (4.12.2)\n", + "Requirement already satisfied: requests<3.0.0,>=2.0.0 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from cohere) (2.28.1)\n", + "Requirement already satisfied: pydantic-core<3.0.0,>=2.18.2 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from cohere) (2.20.1)\n", + "Requirement already satisfied: tokenizers<1,>=0.15 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from cohere) (0.19.1)\n", + "Requirement already satisfied: httpx>=0.21.2 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from cohere) (0.27.2)\n", + "Requirement already satisfied: fastavro<2.0.0,>=1.9.4 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from cohere) (1.9.5)\n", + "Requirement already satisfied: boto3<2.0.0,>=1.34.0 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from cohere) (1.35.11)\n", + "Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from boto3<2.0.0,>=1.34.0->cohere) (0.10.0)\n", + "Requirement already satisfied: botocore<1.36.0,>=1.35.11 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from boto3<2.0.0,>=1.34.0->cohere) (1.35.11)\n", + "Requirement already satisfied: s3transfer<0.11.0,>=0.10.0 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from boto3<2.0.0,>=1.34.0->cohere) (0.10.2)\n", + "Requirement already satisfied: certifi in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from httpx>=0.21.2->cohere) (2022.12.7)\n", + "Requirement already satisfied: idna in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from httpx>=0.21.2->cohere) (3.4)\n", + "Requirement already satisfied: httpcore==1.* in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from httpx>=0.21.2->cohere) (1.0.5)\n", + "Requirement already satisfied: sniffio in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from httpx>=0.21.2->cohere) (1.3.1)\n", + "Requirement already satisfied: anyio in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from httpx>=0.21.2->cohere) (3.5.0)\n", + "Requirement already satisfied: h11<0.15,>=0.13 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from httpcore==1.*->httpx>=0.21.2->cohere) (0.14.0)\n", + "Requirement already satisfied: annotated-types>=0.4.0 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from pydantic>=1.9.2->cohere) (0.7.0)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from requests<3.0.0,>=2.0.0->cohere) (1.26.14)\n", + "Requirement already satisfied: charset-normalizer<3,>=2 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from requests<3.0.0,>=2.0.0->cohere) (2.0.4)\n", + "Requirement already satisfied: huggingface-hub<1.0,>=0.16.4 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from tokenizers<1,>=0.15->cohere) (0.24.6)\n", + "Requirement already satisfied: types-urllib3 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from types-requests<3.0.0,>=2.0.0->cohere) (1.26.25.14)\n", + "Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from botocore<1.36.0,>=1.35.11->boto3<2.0.0,>=1.34.0->cohere) (2.8.2)\n", + "Requirement already satisfied: pyyaml>=5.1 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from huggingface-hub<1.0,>=0.16.4->tokenizers<1,>=0.15->cohere) (6.0)\n", + "Requirement already satisfied: tqdm>=4.42.1 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from huggingface-hub<1.0,>=0.16.4->tokenizers<1,>=0.15->cohere) (4.64.1)\n", + "Requirement already satisfied: fsspec>=2023.5.0 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from huggingface-hub<1.0,>=0.16.4->tokenizers<1,>=0.15->cohere) (2024.6.1)\n", + "Requirement already satisfied: filelock in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from huggingface-hub<1.0,>=0.16.4->tokenizers<1,>=0.15->cohere) (3.9.0)\n", + "Requirement already satisfied: packaging>=20.9 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from huggingface-hub<1.0,>=0.16.4->tokenizers<1,>=0.15->cohere) (22.0)\n", + "Requirement already satisfied: six>=1.5 in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from python-dateutil<3.0.0,>=2.1->botocore<1.36.0,>=1.35.11->boto3<2.0.0,>=1.34.0->cohere) (1.16.0)\n", + "Requirement already satisfied: colorama in c:\\users\\dev2005\\anaconda3\\lib\\site-packages (from tqdm>=4.42.1->huggingface-hub<1.0,>=0.16.4->tokenizers<1,>=0.15->cohere) (0.4.6)\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Ignoring invalid distribution -rotobuf (c:\\users\\dev2005\\anaconda3\\lib\\site-packages)\n", + "WARNING: Ignoring invalid distribution -rotobuf (c:\\users\\dev2005\\anaconda3\\lib\\site-packages)\n", + "WARNING: Ignoring invalid distribution -rotobuf (c:\\users\\dev2005\\anaconda3\\lib\\site-packages)\n", + "WARNING: Ignoring invalid distribution -rotobuf (c:\\users\\dev2005\\anaconda3\\lib\\site-packages)\n", + "WARNING: Ignoring invalid distribution -rotobuf (c:\\users\\dev2005\\anaconda3\\lib\\site-packages)\n", + "WARNING: Ignoring invalid distribution -rotobuf (c:\\users\\dev2005\\anaconda3\\lib\\site-packages)\n" + ] + } + ], + "source": [ + "\n", + "pip install cohere" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cb0c25ed", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "8c60a77f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Welcome to the Rajasthan Engineering College Chatbot!\n", + "You can ask about college eligibility based on these exams: BITSAT, JEE Main, MET, REAP, SGVU CET, MUST CET, Banasthali Aptitude Test\n", + "You can also ask about college fees, placements, and general information.\n", + "Type 'quit' to exit.\n", + "\n", + "You: which colleges can i get, my jee main rank is 1200\n", + "\n", + "Chatbot: Based on your JEE Main score/rank of 1200, you may be eligible for the following colleges:\n", + "\n", + " name location rating\n", + " Malaviya National Institute of Technology (MNIT) Jaipur 4.4\n", + " JK Lakshmipat University Jaipur 4.1\n", + " JECRC University Jaipur 4.0\n", + "Jaipur Engineering College & Research Centre (JECRC) Jaipur 4.2\n", + " Global Institute of Technology Jaipur 3.9\n", + " Vivekananda Global University (VGU) Jaipur 4.0\n", + " LNM Institute of Information Technology (LNMIIT) Jaipur 4.3\n", + " Amity University Rajasthan Jaipur 4.3\n", + " Jaipur National University Jaipur 4.0\n", + "\n", + "You: which college is best amongst all\n", + "\n", + "Chatbot: The best college is Malaviya National Institute of Technology (MNIT) in Jaipur.\n", + "\n", + "AI Explanation: MNIT is known for its strong academic programs and prominent placement opportunities, making it one of the best engineering institutes in the country. Here are some reasons why MNIT stands out:\n", + "\n", + "1. High Placement Statistics: MNIT enjoys excellent placement records, attracting top companies throughout its recruitment process. This is evident from its average package of ₹1800000, which demonstrates the high demand for its graduates in the job market.\n", + "\n", + "2. Strong Academic Curriculum: MNIT offers a wide range of enriching\n", + "\n", + "You: tell me more about the life at BITS pilani\n", + "\n", + "Chatbot: Birla Institute of Technology & Science, Pilani (BITS Pilani) is a private university in Rajasthan that offers undergraduate and graduate programs in engineering and technology. \n", + "\n", + "Life at BITS Pilani is known to be vibrant and engaging due to the numerous academic and extracurricular opportunities available on campus. Here are some key aspects of life at BITS Pilani:\n", + "\n", + "1. Academic Rigor: BITS Pilani is known for its rigorous and highly competitive academic environment. The curriculum is designed to be comprehensive and practical, covering both theoretical and applied aspects of engineering and technology. \n", + "\n", + "2. Industry Partnerships: BITS Pilani has established partnerships with industry leaders and corporations, allowing students to benefit from internships, collaborations, and competitive placements. These connections ensure that the curriculum stays relevant and in sync with industry requirements. \n", + "\n", + "3. Experiential Learning: Along with traditional classroom learning, BITS Pilani emphasizes hands-on learning through projects, experiments, and industry internships. This enables students\n", + "\n", + "You: which are the top recruiters in Rajasthan Engineering colleges\n", + "\n", + "Chatbot: There are many prominent recruiters across various engineering disciplines across Rajasthan. Some of the top recruiters in Rajasthan engineering colleges are: \n", + "\n", + "1. IBM \n", + "2. Amazon\n", + "3. Adobe\n", + "4. Bank of America\n", + "5. Cummins \n", + "6. Eaton Corporation\n", + "7. Honeywell\n", + "8. Siemens\n", + "9. Adani Group\n", + "10. JCBL Ltd \n", + "\n", + "These companies offer lucrative packages to the students ranging between 3.5-7 Lakhs annually, depending on the profile and the engineering branch. \n", + "\n", + "It is important to note that the availability of these recruiters is subject to the reputation and accreditation of the engineering college in Rajasthan. Therefore, it is recommended to refer to reputed national surveys and research for a more comprehensive understanding of the latest recruitment trends and companies involved.\n", + "\n", + "You: quit\n", + "Thank you for using the chatbot. Goodbye!\n" + ] + } + ], + "source": [ + "import json\n", + "import pandas as pd\n", + "import cohere\n", + "import re\n", + "from fuzzywuzzy import fuzz\n", + "import os\n", + "from dotenv import load_dotenv\n", + "\n", + "load_dotenv('api.env')\n", + "\n", + "def load_data(file_path='dataset3.json'):\n", + " try:\n", + " with open(file_path, 'r') as f:\n", + " data = json.load(f)\n", + " return pd.json_normalize(data)\n", + " except FileNotFoundError:\n", + " print(f\"Error: File {file_path} not found.\")\n", + " return None\n", + " except json.JSONDecodeError:\n", + " print(f\"Error: Unable to parse JSON from {file_path}.\")\n", + " return None\n", + "\n", + "df = load_data()\n", + "if df is None:\n", + " print(\"Exiting due to data loading error.\")\n", + " exit(1)\n", + "\n", + "# Set up Cohere client\n", + "cohere_api_key = os.getenv('COHERE_API_KEY')\n", + "if not cohere_api_key:\n", + " print(\"Error: COHERE_API_KEY not found in api.env file.\")\n", + " exit(1)\n", + "\n", + "try:\n", + " co = cohere.Client(cohere_api_key)\n", + "except Exception as e:\n", + " print(f\"Error initializing Cohere client: {str(e)}\")\n", + " exit(1)\n", + "\n", + "def parse_user_input(user_input):\n", + " score = ''.join(filter(str.isdigit, user_input))\n", + " score = int(score) if score else None\n", + " \n", + " college_match = re.search(r\"(?:cutoff|information|fees|package|salary|life|placements|recruiters).*?\\b([A-Za-z\\s]+)\\b\", user_input, re.IGNORECASE)\n", + " college_name = college_match.group(1).strip() if college_match else None\n", + " \n", + " year_match = re.search(r'\\b(2023|2022|2021)\\b', user_input)\n", + " year = year_match.group(0) if year_match else '2023'\n", + " \n", + " return score, college_name, year\n", + "\n", + "def get_unique_exams():\n", + " return list(df['admission.exam'].unique())\n", + "\n", + "unique_exams = get_unique_exams()\n", + "\n", + "def fuzzy_match_college(college_name, threshold=70):\n", + " if not college_name:\n", + " return None\n", + " def match_score(x):\n", + " full_name_score = fuzz.ratio(x.lower(), college_name.lower())\n", + " acronym_score = fuzz.ratio(''.join(word[0] for word in x.split() if word).lower(), college_name.lower())\n", + " return max(full_name_score, acronym_score)\n", + "\n", + " best_match = max(df['name'], key=match_score)\n", + " if match_score(best_match) > threshold:\n", + " return best_match\n", + " return None\n", + "\n", + "def get_college_cutoff(college_name, year='2023'):\n", + " matched_college = fuzzy_match_college(college_name)\n", + " if matched_college:\n", + " college = df[df['name'] == matched_college]\n", + " if not college.empty:\n", + " cutoff_column = f'admission.cutoff.{year}'\n", + " if cutoff_column in college.columns:\n", + " cutoff_info = college.iloc[0][cutoff_column]\n", + " if pd.notna(cutoff_info):\n", + " return f\"The cutoff for {matched_college} in {year} is {cutoff_info}.\"\n", + " else:\n", + " return f\"Cutoff information for the year {year} is not available.\"\n", + " else:\n", + " return f\"Cutoff information for the year {year} is not available.\"\n", + " return f\"College '{college_name}' not found.\"\n", + "\n", + "def normalize_column(column):\n", + " return (column - column.min()) / (column.max() - column.min())\n", + "\n", + "def find_best_college(eligible_colleges):\n", + " if eligible_colleges is None or eligible_colleges.empty:\n", + " return \"There are no eligible colleges available. Please ask for eligible colleges first.\"\n", + "\n", + " eligible_colleges['normalized_avg_package'] = normalize_column(eligible_colleges['placements.average_package'].astype(float))\n", + " eligible_colleges['normalized_rating'] = normalize_column(eligible_colleges['rating'].astype(float))\n", + " eligible_colleges['normalized_highest_package'] = normalize_column(eligible_colleges['placements.highest_package'].astype(float))\n", + " eligible_colleges['normalized_cutoff'] = 1 - normalize_column(eligible_colleges['admission.cutoff.2023'].astype(float))\n", + "\n", + " weights = {\n", + " 'avg_package': 0.4,\n", + " 'rating': 0.1,\n", + " 'highest_package': 0.2,\n", + " 'cutoff': 0.3\n", + " }\n", + "\n", + " eligible_colleges['composite_score'] = sum(weights[param] * eligible_colleges[f'normalized_{param}'] for param in weights)\n", + "\n", + " best_college = eligible_colleges.loc[eligible_colleges['composite_score'].idxmax()]\n", + "\n", + " #NEW FEATURE ADDED --> Now the reason behind being the best college will get generated using AI\n", + " ai_prompt = f\"The best college is {best_college['name']} in {best_college['location']}. It has an average package of ₹{best_college['placements.average_package']} and a rating of {best_college['rating']}. Please provide a reason why this college is the best based on its rating, placement, and cutoff score.\"\n", + " \n", + " try:\n", + " explanation = co.generate(\n", + " model='command',\n", + " prompt=ai_prompt,\n", + " max_tokens=100,\n", + " temperature=0.7\n", + " ).generations[0].text.strip()\n", + "\n", + " return f\"The best college is {best_college['name']} in {best_college['location']}.\\n\\nAI Explanation: {explanation}\"\n", + "\n", + " except Exception as e:\n", + " return f\"The best college is {best_college['name']} in {best_college['location']} but there was an issue generating an AI explanation: {str(e)}\"\n", + "\n", + "def get_colleges_by_score(score, exam):\n", + " eligible_colleges = df[df['admission.exam'] == exam]\n", + " \n", + " if exam in [\"JEE Main\", \"REAP\", \"MET\"]:\n", + " eligible_colleges = eligible_colleges[eligible_colleges['admission.cutoff.2023'].astype(int) >= score]\n", + " elif exam == \"BITSAT\":\n", + " eligible_colleges = eligible_colleges[eligible_colleges['admission.cutoff.2023'].astype(int) <= score]\n", + " else:\n", + " return f\"I'm sorry, but I don't have specific information about how to interpret scores for the {exam} exam.\"\n", + " \n", + " if eligible_colleges.empty:\n", + " return f\"I'm sorry, but with the given {exam} score/rank of {score}, you may not be eligible for any of the colleges in our database. Consider exploring other options or improving your score.\"\n", + " else:\n", + " result = eligible_colleges[['name', 'location', 'rating']].head(10).to_string(index=False)\n", + " return f\"Based on your {exam} score/rank of {score}, you may be eligible for the following colleges:\\n\\n{result}\", eligible_colleges\n", + "\n", + "def get_college_fees(college_name):\n", + " matched_college = fuzzy_match_college(college_name)\n", + " if matched_college:\n", + " college = df[df['name'] == matched_college]\n", + " if not college.empty:\n", + " courses = college.iloc[0]['courses']\n", + " fees_info = \"\\n\".join([f\"{course['name']}: ₹{course['annual_fee']} per year\" for course in courses])\n", + " return f\"Annual fees for {matched_college}:\\n{fees_info}\"\n", + " else:\n", + " return f\"College '{college_name}' not found.\"\n", + "\n", + "def get_median_salary(college_name):\n", + " matched_college = fuzzy_match_college(college_name)\n", + " if matched_college:\n", + " college = df[df['name'] == matched_college]\n", + " if not college.empty:\n", + " avg_package = college['placements.average_package'].iloc[0]\n", + " return f\"The average package for {matched_college} is ₹{avg_package} per annum.\"\n", + " return f\"College '{college_name}' not found.\"\n", + "\n", + "def get_college_info(college_name):\n", + " matched_college = fuzzy_match_college(college_name)\n", + " if matched_college:\n", + " college = df[df['name'] == matched_college]\n", + " if not college.empty:\n", + " info = college.iloc[0]\n", + " return f\"\"\"\n", + "College: {info['name']}\n", + "Location: {info['location']}\n", + "Type: {info['type']}\n", + "Rating: {info['rating']}\n", + "Admission Exam: {info['admission.exam']}\n", + "Average Package: ₹{info['placements.average_package']}\n", + "Highest Package: ₹{info['placements.highest_package']}\n", + "Top Recruiters: {', '.join(info['placements.top_recruiters'])}\n", + "Facilities: {', '.join(info['facilities'])}\n", + " \"\"\"\n", + " return f\"College '{college_name}' not found.\"\n", + "\n", + "# NOW the chatbot will be able to handle open ended question.\n", + "def handle_general_questions(user_input):\n", + " try:\n", + " ai_prompt = f\"\"\"\n", + " You are an expert on engineering colleges in Rajasthan. Answer the following question in a detailed and helpful manner:\n", + " {user_input}.\n", + " \n", + " Provide a clear, factual, and informative response based on common knowledge about Rajasthan engineering colleges, their environment, placements, facilities, and courses.\n", + " \"\"\"\n", + " \n", + " response = co.generate(\n", + " model='command',\n", + " prompt=ai_prompt,\n", + " max_tokens=200,\n", + " temperature=0.7\n", + " )\n", + " return response.generations[0].text.strip()\n", + " except Exception as e:\n", + " return f\"An error occurred while using AI: {str(e)}\"\n", + "\n", + "def process_query(user_input):\n", + " global eligible_colleges\n", + " lower_input = user_input.lower()\n", + " score, college_name, year = parse_user_input(user_input)\n", + " \n", + " if \"which colleges can i get\" in lower_input:\n", + " if score is not None:\n", + " exam = next((exam for exam in unique_exams if exam.lower() in lower_input), None)\n", + " if exam:\n", + " result, eligible_colleges = get_colleges_by_score(score, exam)\n", + " return result\n", + " else:\n", + " return \"Please specify a valid exam (e.g., JEE Main, BITSAT, REAP, MET).\"\n", + " else:\n", + " return \"Please provide a valid rank or score.\"\n", + "\n", + " elif \"which college is best\" in lower_input:\n", + " if eligible_colleges is None:\n", + " return \"Please specify a score and exam first to find eligible colleges.\"\n", + " return find_best_college(eligible_colleges)\n", + " \n", + " elif \"cutoff\" in lower_input:\n", + " if college_name:\n", + " return get_college_cutoff(college_name, year)\n", + " else:\n", + " return \"I'm sorry, I couldn't find the college name in your request.\"\n", + " \n", + " elif \"fees\" in lower_input:\n", + " if college_name:\n", + " return get_college_fees(college_name)\n", + " else:\n", + " return \"Please provide a college name for fee information.\"\n", + "\n", + " elif \"median salary\" in lower_input or \"average package\" in lower_input:\n", + " if college_name:\n", + " return get_median_salary(college_name)\n", + " else:\n", + " return \"Please provide a college name for placement package information.\"\n", + " \n", + " else:\n", + " # AI-powered handling for general open-ended questions\n", + " return handle_general_questions(user_input)\n", + "\n", + "def run_chatbot():\n", + " print(\"Welcome to the Rajasthan Engineering College Chatbot!\")\n", + " print(f\"You can ask about college eligibility based on these exams: {', '.join(unique_exams)}\")\n", + " print(\"You can also ask about college fees, placements, and general information.\")\n", + " print(\"Type 'quit' to exit.\")\n", + " \n", + " while True:\n", + " user_input = input(\"\\nYou: \")\n", + " if user_input.lower() == 'quit':\n", + " print(\"Thank you for using the chatbot. Goodbye!\")\n", + " break\n", + " \n", + " response = process_query(user_input)\n", + " print(f\"\\nChatbot: {response}\")\n", + "\n", + "if __name__ == \"__main__\":\n", + " run_chatbot()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "483ed17e", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Rajasthan Chatbot/ss1.png b/Rajasthan Chatbot/ss1.png new file mode 100644 index 0000000000000000000000000000000000000000..ed9e6187e24219e22d025dd1072e7129447a0b53 GIT binary patch literal 70105 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 ViEELc_j?GIiLv>Oit8?M{{z)*GtU43 literal 0 HcmV?d00001 diff --git a/Rajasthan Chatbot/ss2.png b/Rajasthan Chatbot/ss2.png new file mode 100644 index 0000000000000000000000000000000000000000..1eee4ad133d511bca0315e3adeb10683f995147b GIT binary patch literal 55803 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 Date: Thu, 17 Oct 2024 14:12:08 +0530 Subject: [PATCH 2/2] Updated main README.md file --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f7b96ec..09962c7 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,8 @@ Weight Converter | [Weight Converter](https://github.com/Wa | Word to PDF | [Word to PDF](https://github.com/DhanushNehru/Python-Scripts/tree/master/Word%20to%20PDF%20converter) | A Python script to convert an MS Word file to a PDF file. | | Youtube Downloader | [Youtube Downloader](https://github.com/DhanushNehru/Python-Scripts/tree/master/Youtube%20Downloader) | Downloads any video from [YouTube](https://youtube.com) in video or audio format! | Youtube Playlist Info Scraper | [Youtube Playlist Info Scraper](https://github.com/DhanushNehru/Python-Scripts/tree/master/Youtube%20Playlist%20Info%20Scraper) | This python module retrieve information about a YouTube playlist in json format using playlist link. +| Rajasthan Chatbot | [Rajasthan Chatbot](https://github.com/DhanushNehru/Python-Scripts/tree/master/Rajasthan-Chatbot) | A chatbot designed to answer questions and provide information about engineering colleges of Rajasthan. | + ## Gitpod