This is a real-time interview assistant application that provides AI-powered answers during interviews using Azure GPT-4o.
- Backend: Python (FastAPI) with WebSocket support
- Frontend: Electron + React + TypeScript
- AI Services: Azure GPT-4o for LLM, Deepgram Nova-2 for Speech-to-Text
- Python 3.10 or higher
- pip (Python package manager)
- Node.js 18.x or higher
- npm or yarn
- Azure OpenAI API Key - Get from Azure Portal
- Deepgram API Key - Get from Deepgram Console
# Navigate to backend folder
cd backend
# Create virtual environment (recommended)
python -m venv venv
# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Create .env file
# Copy the example and fill in your API keysCreate a .env file in the backend folder with the following:
# Azure OpenAI Configuration
AZURE_OPENAI_API_KEY=your_azure_openai_api_key_here
AZURE_OPENAI_ENDPOINT=https://your-resource-name.openai.azure.com/
AZURE_OPENAI_DEPLOYMENT_NAME=gpt-4o
AZURE_OPENAI_API_VERSION=2024-02-15-preview
# Deepgram Configuration
DEEPGRAM_API_KEY=your_deepgram_api_key_here
# Server Configuration
HOST=0.0.0.0
PORT=8000
CORS_ORIGINS=http://localhost:3000,http://localhost:5173# Navigate to frontend folder
cd frontend
# Install dependencies
npm install
# Or with yarn
yarn install# In the backend folder
cd backend
# Activate virtual environment if not already active
# Windows: venv\Scripts\activate
# macOS/Linux: source venv/bin/activate
# Run the server
python main.pyThe backend will start on http://localhost:8000
# In the frontend folder (in a new terminal)
cd frontend
# Run in development mode
npm run dev
# Or with yarn
yarn devThe Electron app will launch automatically.
- Ctrl+Shift+L - Toggle audio listening
- Ctrl+Shift+S - Capture screen for coding problem analysis
- Ctrl+Shift+H - Hide/Show the overlay window
-
Audio Capture
- Click "Start Listening" or press Ctrl+Shift+L
- When prompted, select the tab/window you want to capture audio from
- IMPORTANT: Check "Share system audio" checkbox
- The app will transcribe in real-time and provide AI answers
-
Screen Capture
- Click "Capture Screen" or press Ctrl+Shift+S
- Select the screen/window to capture
- The app will analyze coding problems using GPT-4o Vision
- Provides complete solutions with explanations
-
Overlay Window
- Always on top of other windows
- Draggable and resizable
- Adjustable opacity
- Minimizable
Edit backend/config.py or use environment variables in .env file.
Key settings:
AZURE_OPENAI_DEPLOYMENT_NAME: Your Azure GPT-4o deployment nameDEEPGRAM_API_KEY: Your Deepgram API key for STTPORT: Backend server port (default: 8000)
Edit frontend/src/services/websocket.ts to change backend URL if needed:
const BACKEND_URL = 'http://localhost:8000';The backend doesn't require building. Just ensure all dependencies are installed.
cd frontend
# Build the app
npm run build
# Build Electron distributable
npm run build:electronThe built application will be in frontend/release/
- Ensure you check "Share system audio" when prompted
- Try selecting a different audio source
- Check browser/Electron permissions for audio capture
- Verify backend is running on port 8000
- Check CORS settings in
.env - Ensure firewall allows the connection
- Verify your API key is correct
- Check your Deepgram account has sufficient credits
- Ensure internet connection is stable
- Verify your API key and endpoint are correct
- Check deployment name matches your Azure configuration
- Ensure your Azure account has GPT-4o access
Target latency: < 4 seconds (Speech-to-Answer)
Factors affecting latency:
- Network speed
- Azure OpenAI response time
- Deepgram transcription speed
- Audio quality
- Keep your
.envfile secure and never commit it to git - API keys should never be exposed in frontend code
- The app requires screen capture permissions
- System audio capture requires user consent
cd backend
python main.pyThe server runs with auto-reload enabled.
cd frontend
npm run devVite dev server runs on port 5173 with hot-reload.
For issues or questions:
- Check the troubleshooting section
- Review API provider documentation
- Check console logs for errors
See LICENSE file for details.