π Table of Contents
- π€ Introduction
- βοΈ Tech Stack
- π Features
- π€Έ Quick Start
- πΈοΈ Video Demo
- π Screenshots
- π Reference
- ππ½ Contributing
BatChat is a Flask-based web application that brings Batman's charm to your conversations. Send an image or text, and Batman will share a Bat-fact with a subtle, dark remark.
- Web Framework: Flask
- Frontend: HTML, CSS, Bootstrap
- JavaScript Library: jQuery
- AJAX Library: jQuery
- Back-end: Python
- Generative AI: Google's Vertex AI, Gemini-pro-vision, gemini-pro
- Version Control: Git
- Hosting: Localhost (for development), Heroku, AWS, or Google Cloud (for deployment)
- Database (Optional): SQLite or any preferred database
- Batman-themed chatbot.
- Upload an image for a Bat-fact.
- Receive funny, sarcastic notes from Batman.
- Send a text and get detailed explanation.
- Get image details in the most innovative way
- Clone the repository:
git clone https://github.com/subho004/BatGPT.git
- Navigate to the project folder:
cd BatGPT
- Set up a virtual environment:
python3 -m venv venv
- Activate the virtual environment:
-
On Windows:
.\venv\Scripts\activate
-
On macOS/Linux:
source venv/bin/activate
- Install Dependencies
pip install Flask
pip install marko google-generativeai
- Set up the environment variable for your API key:
-
Log in to your Google AI Studio account.
-
Create a new API KEY.
-
Note the API Key in a secure location.
export API_KEY=your_api_key
- Run the application:
python app.py
- Use the application
Open your web browser and go to
http://localhost:8080
to access BatChat.
batgpt_github.mp4
batchat.mp4
![Screenshot 2024-01-14 at 6 10 06β―PM](https://private-user-images.githubusercontent.com/91646273/296555325-3b44564c-82de-4264-b9f4-bc2b11859e20.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxMTU5MjQsIm5iZiI6MTcyMDExNTYyNCwicGF0aCI6Ii85MTY0NjI3My8yOTY1NTUzMjUtM2I0NDU2NGMtODJkZS00MjY0LWI5ZjQtYmMyYjExODU5ZTIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA0VDE3NTM0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNhNjYyOWIxMGZiYTFiYTlmZTZmNDRmYzkzMmQwN2IzMjg1MjM5MmU2NzNiMDQ3ZmFjZTFlY2I4NGE0MTRjYmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.MIugFAUpkako-qo3K9PPECARP7UjMok6ezm1zduQIEI)
![Screenshot 2024-01-14 at 6 11 17β―PM](https://private-user-images.githubusercontent.com/91646273/296555370-96965b82-4b06-45a2-b78e-89c48cd5c75f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxMTU5MjQsIm5iZiI6MTcyMDExNTYyNCwicGF0aCI6Ii85MTY0NjI3My8yOTY1NTUzNzAtOTY5NjViODItNGIwNi00NWEyLWI3OGUtODljNDhjZDVjNzVmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA0VDE3NTM0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVmOGFmZDNkMzU4YmZhYTljNDgwMjVjN2E5NTFhOWMwNWVlODIxZDE5NjIwZDQxOGVhNjYwZTUyMTRhNzdlNWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.q1AMIKs_RvAeP-3qhEqc-GfqvHutcGsJ8gzhx4c2iYE)
![Screenshot 2024-01-14 at 6 31 47β―PM](https://private-user-images.githubusercontent.com/91646273/296555407-f322ffa9-dfc5-47d5-9d55-86b48361dda0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxMTU5MjQsIm5iZiI6MTcyMDExNTYyNCwicGF0aCI6Ii85MTY0NjI3My8yOTY1NTU0MDctZjMyMmZmYTktZGZjNS00N2Q1LTlkNTUtODZiNDgzNjFkZGEwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA0VDE3NTM0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM4MmYwYzFhNDY2N2VmMGVmNjk2OTcyNzdjMjUyYjIyZGU5ZDU3NTk2MWQzODY5OGI1ZDYwMDIzNTIzYzAwYmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.A2oJP4YIP5BHwy5kci_ekhLo1LOHHkY0PnI8hfVvItE)
![Screenshot 2024-01-14 at 6 32 09β―PM](https://private-user-images.githubusercontent.com/91646273/296555422-8b4980fe-f38d-4606-84c2-31469ec5cdfc.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxMTU5MjQsIm5iZiI6MTcyMDExNTYyNCwicGF0aCI6Ii85MTY0NjI3My8yOTY1NTU0MjItOGI0OTgwZmUtZjM4ZC00NjA2LTg0YzItMzE0NjllYzVjZGZjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA0VDE3NTM0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc3OTZmOTBmYTY1ZjliMWNjMmMzMGNiMGI5YTIxZDBhODNmOGMyYmQ0Y2ExZGI5NmEwNzRmOTc5YjA1ZjljOGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.ix1ZR3xuMbwalAXbFSAVm7wpR4PftuDbdsmUkqjbrE4)
![Screenshot 2024-01-14 at 6 34 24β―PM](https://private-user-images.githubusercontent.com/91646273/296555444-a4091f3a-bc25-4d6b-b427-b2d10813131a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxMTU5MjQsIm5iZiI6MTcyMDExNTYyNCwicGF0aCI6Ii85MTY0NjI3My8yOTY1NTU0NDQtYTQwOTFmM2EtYmMyNS00ZDZiLWI0MjctYjJkMTA4MTMxMzFhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA0VDE3NTM0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFkNjc0ODE1NGQ5MjM1M2M4MTVhZDk5NmFlOTUwMzAzMDYwODlmMTFlZTZkMjcyMDFiOWZmZGQzMDlkZWRhOTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.G7_GHO4sc9jvdEMc2B-SawyjD6qPQI2IguEJbhYKsUw)
![Screenshot 2024-01-14 at 6 32 52β―PM](https://private-user-images.githubusercontent.com/91646273/296555464-fad618bf-99eb-4cd1-837b-c8b8e62284d0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxMTU5MjQsIm5iZiI6MTcyMDExNTYyNCwicGF0aCI6Ii85MTY0NjI3My8yOTY1NTU0NjQtZmFkNjE4YmYtOTllYi00Y2QxLTgzN2ItYzhiOGU2MjI4NGQwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA0VDE3NTM0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQzZGM3YWFjMGJhNWI1MGMxZTllNzkwYmI0NjFkNWQyYThhMDRhNzBkY2ZhYjk5YTZkZDZlODRkM2Q0NGY0NjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.o49QX6hQUC1i3vkI2ZKunDm4jp8gKyocSYbJGArsELE)
![Screenshot 2024-01-14 at 6 33 58β―PM](https://private-user-images.githubusercontent.com/91646273/296555474-249a6cc1-8ffc-48d4-8aca-82dc8250324e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxMTU5MjQsIm5iZiI6MTcyMDExNTYyNCwicGF0aCI6Ii85MTY0NjI3My8yOTY1NTU0NzQtMjQ5YTZjYzEtOGZmYy00OGQ0LThhY2EtODJkYzgyNTAzMjRlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA0VDE3NTM0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTYwODg5Y2M5YzJjOWNjMDQ2MmQ3YmY3NmQ2NDc2N2U5OTgzYWI5NjZmZDUzMjRkOGQyYzM0NGMwYjg3MTFlMjgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.BRbIRaDYZmB1Akm7gvaNjogVFPpIjUiK0_Ki4-Ka18I)
![Screenshot 2024-01-14 at 6 34 41β―PM](https://private-user-images.githubusercontent.com/91646273/296555491-ffdc5734-12d9-4e39-a901-a8af5debefea.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxMTU5MjQsIm5iZiI6MTcyMDExNTYyNCwicGF0aCI6Ii85MTY0NjI3My8yOTY1NTU0OTEtZmZkYzU3MzQtMTJkOS00ZTM5LWE5MDEtYThhZjVkZWJlZmVhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA0VDE3NTM0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTMxZDE3MjEwOThjZjAxN2Q2OTc4OGZiZDY1NzEyNTdmNWJkZTlkOTE0M2I3YzM4ZGVlNzNmMjhmZjMzODE5ZjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.zJfpAsuaLydHqGJGLfwHmVz3-J-MNgesPAL1R6qhTAU)
![Screenshot 2024-01-14 at 12 47 37β―PM](https://private-user-images.githubusercontent.com/91646273/296536454-48f9ece6-2b4b-40a5-94d1-f944a90346d8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxMTU5MjQsIm5iZiI6MTcyMDExNTYyNCwicGF0aCI6Ii85MTY0NjI3My8yOTY1MzY0NTQtNDhmOWVjZTYtMmI0Yi00MGE1LTk0ZDEtZjk0NGE5MDM0NmQ4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA0VDE3NTM0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIwOTRlZjYwOTQ2ODJlNzc5ZmVhN2QzZjQ2OTlhOTllOTFiZDk1NDhmNDkzMzg1YWU2NzA4ZDU0ODAzNjFiNWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.YUiglD3xmNRzh79qYK66PvzCKwuteLV3W2uUuzRPDOo)
Contributions are welcome! If you have ideas for new features, improvements, or find any issues, feel free to open an issue or submit a pull request.