Version: 2.0-Universal | Status: ✅ PRODUCTION READY
A modern, ChatGPT-style enterprise AI assistant powered by Google's Gemini 2.5-flash with universal intelligence capabilities. Now includes Admin Dashboard, VS Code-style IDE, complete data persistence, and Infosys Topaz-like functionality.
✨ MAJOR UPGRADE (Feb 26, 2026)
# 1. Navigate to project
cd gemini-ai-chat
# 2. Start server
python app.py
# 3. Access services
Chat: http://localhost:5000/dashboard
Admin: http://localhost:5000/admin/dashboard
IDE: http://localhost:5000/ide
✅ Server running → Chat works
❌ Stop server → "Server offline" error appears
❌ No cached responses, no offline mode
1. Chat something
2. Stop server (Ctrl+C)
3. Start server again
4. Login again
5. 🎉 Chat history still there!
gemini-ai-chat/
├── app.py # Flask backend (UPDATED)
├── sentinel_ai.db # SQLite database (persistent)
├── requirements.txt # Dependencies
├── api.txt # Gemini API keys
├── templates/
│ ├── index.html # Main chat interface
│ ├── login.html # Login page
│ ├── mfa-setup.html # MFA configuration
│ ├── admin_dashboard.html # Admin panel (NEW)
│ └── ide.html # Code editor IDE (NEW)
├── README.md # This file
├── QUICK_START_v2.0.md # Quick start guide (NEW)
├── UPGRADE_v2.0.md # Feature documentation (NEW)
└── DEPLOYMENT_COMPLETE.md # Deployment details (NEW)
Set up your environment variables before running the server:
SECRET_KEY – Flask secret key for session signing and JWTs.OPENAI_API_KEY – API key for the Gemini/OpenAI model you wish to use.ADMIN_HOST – optional host (or host:port) where the admin dashboard will be served. When provided, the /admin routes are restricted to requests originating from this host and a separate login page is shown. Useful for running the admin UI on a different domain/port for improved security.Browser (Cache-Free)
↓
Health Check → /api/health (forced server check)
↓
Authentication → JWT + Cookies
↓
API Requests → No-Cache Headers Applied
↓
Sentinel AI Engine (Universal)
↓
Gemini 2.5-flash API (with fallback)
↓
Database → Permanent Storage
↓
Forensic Logs → Complete Audit Trail
Persistent Storage - Nothing Gets Lost
sentinel_ai.db (SQLite)
├── chat_sessions - Stored conversations
├── chat_messages - Individual messages (PERMANENT)
├── forensic_logs - Activity logs (PERMANENT)
├── iam_users - User accounts
├── iam_audit_logs - Access logs
└── [+5 more tables]
Retention Policy:
GET /api/health - Server health check
GET /api/chat-sessions - Load all chat history
GET /api/logs - Get forensic logs
GET /admin/dashboard - Admin panel
GET /ide - Code editor IDE
POST /api/chat - Send message to AI
GET /api/user - Get user profile
POST /auth/google-callback - Google OAuth
POST /auth/logout - Logout
python app.py
# Runs on http://localhost:5000
Documentation:
Troubleshooting:
python app.py to restart/api/health endpointsentinel_ai.db (auto-recreates)Private - Sentinel AI
This is a private project. Contact maintainer for contributions.
For issues, questions, or suggestions, please create an issue in the repository.
Status: ✅ PRODUCTION READY | Version: 2.0-Universal | Last Updated: Feb 26, 2026
🚀 Ready to Rock! ├── requirements.txt # Python dependencies ├── api.txt # Your Gemini API key ├── README.md # This file ├── uploads/ # Image/file uploads directory └── templates/ └── index.html # Complete frontend (HTML+CSS+JS)
## 🚀 Quick Start
### Prerequisites
- Python 3.8+
- Google Gemini API Key ([Get one here](https://makersuite.google.com/app/apikey))
- Modern web browser
### Installation
1. **Clone/Setup the project:**
```bash
cd gemini-ai-chat
pip install -r requirements.txt
api.txt and paste your Gemini API key on the first line:AIzaSy...your_key_here...
python app.py
http://localhost:5000Ctrl+Enter or Cmd+Enter to send| Method | Endpoint | Description |
|---|---|---|
| POST | /api/chat | Send message with optional image |
| POST | /api/clear-chat | Clear conversation history |
| GET | /api/history | Get chat messages for session |
| GET | /api/sessions | List all chat sessions |
curl -X POST http://localhost:5000/api/chat \
-H "Content-Type: application/json" \
-d '{
"message": "Explain this image",
"session_id": "session_123",
"image": "data:image/png;base64,..."
}'
Edit CSS variables in templates/index.html (lines 18-27):
:root {
--primary-bg: #ffffff;
--accent-color: #10a37f;
/* ... more colors ... */
}
Edit app.py line 64-71 to change AI behavior
Edit app.py line 32:
MODEL_NAME = 'gemini-2.5-flash' # or any other available model
api.txt (not in code)python app.py # Will try port 5000
# Change in app.py line 171: app.run(debug=True, port=5001)
api.txtCurrent Model: gemini-2.5-flash
python app.py
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app
Create Dockerfile:
FROM python:3.10
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
EXPOSE 5000
CMD ["python", "app.py"]
Open source - modify and use freely for your projects
Suggestions and improvements welcome! The roadmap includes enterprise security features.
Made with ❤️ for Security Professionals | v1.0 | Built on Gemini API
7 commits
Jupyter Notebook
63.9%
Python
32.7%
HTML
2.0%
Version: 2.0-Universal | Status: ✅ PRODUCTION READY
A modern, ChatGPT-style enterprise AI assistant powered by Google's Gemini 2.5-flash with universal intelligence capabilities. Now includes Admin Dashboard, VS Code-style IDE, complete data persistence, and Infosys Topaz-like functionality.
✨ MAJOR UPGRADE (Feb 26, 2026)
# 1. Navigate to project
cd gemini-ai-chat
# 2. Start server
python app.py
# 3. Access services
Chat: http://localhost:5000/dashboard
Admin: http://localhost:5000/admin/dashboard
IDE: http://localhost:5000/ide
✅ Server running → Chat works
❌ Stop server → "Server offline" error appears
❌ No cached responses, no offline mode
1. Chat something
2. Stop server (Ctrl+C)
3. Start server again
4. Login again
5. 🎉 Chat history still there!
gemini-ai-chat/
├── app.py # Flask backend (UPDATED)
├── sentinel_ai.db # SQLite database (persistent)
├── requirements.txt # Dependencies
├── api.txt # Gemini API keys
├── templates/
│ ├── index.html # Main chat interface
│ ├── login.html # Login page
│ ├── mfa-setup.html # MFA configuration
│ ├── admin_dashboard.html # Admin panel (NEW)
│ └── ide.html # Code editor IDE (NEW)
├── README.md # This file
├── QUICK_START_v2.0.md # Quick start guide (NEW)
├── UPGRADE_v2.0.md # Feature documentation (NEW)
└── DEPLOYMENT_COMPLETE.md # Deployment details (NEW)
Set up your environment variables before running the server:
SECRET_KEY – Flask secret key for session signing and JWTs.OPENAI_API_KEY – API key for the Gemini/OpenAI model you wish to use.ADMIN_HOST – optional host (or host:port) where the admin dashboard will be served. When provided, the /admin routes are restricted to requests originating from this host and a separate login page is shown. Useful for running the admin UI on a different domain/port for improved security.Browser (Cache-Free)
↓
Health Check → /api/health (forced server check)
↓
Authentication → JWT + Cookies
↓
API Requests → No-Cache Headers Applied
↓
Sentinel AI Engine (Universal)
↓
Gemini 2.5-flash API (with fallback)
↓
Database → Permanent Storage
↓
Forensic Logs → Complete Audit Trail
Persistent Storage - Nothing Gets Lost
sentinel_ai.db (SQLite)
├── chat_sessions - Stored conversations
├── chat_messages - Individual messages (PERMANENT)
├── forensic_logs - Activity logs (PERMANENT)
├── iam_users - User accounts
├── iam_audit_logs - Access logs
└── [+5 more tables]
Retention Policy:
GET /api/health - Server health check
GET /api/chat-sessions - Load all chat history
GET /api/logs - Get forensic logs
GET /admin/dashboard - Admin panel
GET /ide - Code editor IDE
POST /api/chat - Send message to AI
GET /api/user - Get user profile
POST /auth/google-callback - Google OAuth
POST /auth/logout - Logout
python app.py
# Runs on http://localhost:5000
Documentation:
Troubleshooting:
python app.py to restart/api/health endpointsentinel_ai.db (auto-recreates)Private - Sentinel AI
This is a private project. Contact maintainer for contributions.
For issues, questions, or suggestions, please create an issue in the repository.
Status: ✅ PRODUCTION READY | Version: 2.0-Universal | Last Updated: Feb 26, 2026
🚀 Ready to Rock! ├── requirements.txt # Python dependencies ├── api.txt # Your Gemini API key ├── README.md # This file ├── uploads/ # Image/file uploads directory └── templates/ └── index.html # Complete frontend (HTML+CSS+JS)
## 🚀 Quick Start
### Prerequisites
- Python 3.8+
- Google Gemini API Key ([Get one here](https://makersuite.google.com/app/apikey))
- Modern web browser
### Installation
1. **Clone/Setup the project:**
```bash
cd gemini-ai-chat
pip install -r requirements.txt
api.txt and paste your Gemini API key on the first line:AIzaSy...your_key_here...
python app.py
http://localhost:5000Ctrl+Enter or Cmd+Enter to send| Method | Endpoint | Description |
|---|---|---|
| POST | /api/chat | Send message with optional image |
| POST | /api/clear-chat | Clear conversation history |
| GET | /api/history | Get chat messages for session |
| GET | /api/sessions | List all chat sessions |
curl -X POST http://localhost:5000/api/chat \
-H "Content-Type: application/json" \
-d '{
"message": "Explain this image",
"session_id": "session_123",
"image": "data:image/png;base64,..."
}'
Edit CSS variables in templates/index.html (lines 18-27):
:root {
--primary-bg: #ffffff;
--accent-color: #10a37f;
/* ... more colors ... */
}
Edit app.py line 64-71 to change AI behavior
Edit app.py line 32:
MODEL_NAME = 'gemini-2.5-flash' # or any other available model
api.txt (not in code)python app.py # Will try port 5000
# Change in app.py line 171: app.run(debug=True, port=5001)
api.txtCurrent Model: gemini-2.5-flash
python app.py
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app
Create Dockerfile:
FROM python:3.10
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
EXPOSE 5000
CMD ["python", "app.py"]
Open source - modify and use freely for your projects
Suggestions and improvements welcome! The roadmap includes enterprise security features.
Made with ❤️ for Security Professionals | v1.0 | Built on Gemini API
7 commits
Jupyter Notebook
63.9%
Python
32.7%
HTML
2.0%