A real-time multimodal AI assistant built with Google Gemini API
Featuring WebSocket-based communication, audio streaming, and Google Sheets integration
- 🤖 Real-time AI Chat: WebSocket-based communication with Google Gemini AI
- 🎙️ Audio Support: Real-time audio recording and streaming capabilities
- 📊 Google Sheets Integration: Direct integration with Google Sheets via cloud functions
- 🎯 Multimodal Interface: Support for text, audio, and media interactions
- 📱 Mobile Responsive: Optimized for both desktop and mobile devices
- ☁️ Cloud Functions: Serverless backend processing with Google Cloud Functions
📦 live-project
├── 🌐 client/ # Frontend web application
│ ├── 📂 src/ # JavaScript modules (API, audio, media, utils)
│ ├── 🎨 styles/ # CSS styling for desktop and mobile
│ └── 📄 index.html # Main application entry point
├── 🐍 server/ # Python WebSocket server
│ ├── ⚙️ config/ # Configuration and system instructions
│ ├── 💎 core/ # Core server modules (WebSocket, Gemini client, etc.)
│ └── 🚀 server.py # Main server entry point
├── ☁️ cloud-functions/ # Google Cloud Functions
│ └── 📊 sheet-assistant/ # Google Sheets integration function
└── 📋 pyproject.toml # UV package configuration
- 🐍 Python 3.12+
- 📦 UV package manager (installation guide)
- 🔧 Git
- ☁️ Google Cloud Account (for Gemini API and Cloud Functions)
git clone https://github.com/Shridhar7-8/live-project.git
cd live-project
Using UV to manage dependencies (no manual virtual environment needed):
# Install all dependencies - UV handles the virtual environment automatically
uv sync
Create a .env
file in the server/
directory:
cd server
# Copy the example environment file (if available) or create new one
touch .env
Add your configuration to .env
:
GEMINI_API_KEY=your_gemini_api_key_here
LOG_LEVEL=INFO
# Add other required environment variables
# UV automatically handles the virtual environment
uv run server/server.py
🎯 The WebSocket server will start on the default port (usually 8765).
Open the client in a web browser:
# Serve the client directory with a simple HTTP server
cd client
# Option 1: Using UV to run Python's built-in server
uv run python -m http.server 8080
# Option 2: Using Node.js (if available)
npx serve .
# Option 3: Simply open index.html in your browser
# For local development, you can open file:///path/to/client/index.html
🌐 Visit
http://localhost:8080
in your browser to access the application.
Use UV to add new Python dependencies:
# Add a new dependency
uv add package-name
# Add a development dependency
uv add --dev package-name
# Update dependencies
uv sync
- 🖥️ Server Configuration: Edit
server/config/config.py
- 🤖 System Instructions: Modify
server/config/system-instruction.txt
for AI behavior - 🌐 Client Configuration: Update API endpoints in
client/src/api/gemini-api.js