An Expert Transit & Lifestyle Guide for Paris, powered by the Gemini 2.5 Flash model and the Gemini Live API (google-genai SDK v1alpha).
ParisPulse features two main functional modes natively built to support multilingual interaction (English, French, Chinese):
- Multimodal Text/Vision Chat: Get detailed accessibility-first transit routes, premium food recommendations around specific stations, and ask questions about Paris landmarks by uploading images.
- Continuous Voice Mode: A real-time, uninterrupted WebSockets-based voice channel that utilizes Voice Activity Detection (VAD). Users can converse naturally, interrupt the AI, and receive real-time answers.
Built for the #GeminiLiveAgentChallenge using Google Cloud Run, FastAPI, WebSockets, Vue.js, and the Google Maps API.
Follow these instructions to run the agent locally.
- Python 3.9+
- A Google Gemini API Key
- A Google Maps / Places API Key
Clone the public repository and navigate into the project directory:
git clone https://github.com/b-q/paris-pulse.git
cd paris-pulseCreate a virtual environment and install the dependencies:
python -m venv venv
source venv/bin/activate # On Windows use: venv\Scripts\activate
pip install -r requirements.txtCreate a .env file in the root directory and add your API keys:
GEMINI_KEY=your_gemini_api_key_here
GOOGLE_MAPS_KEY=your_google_maps_api_key_hereRun the FastAPI backend server using Uvicorn:
uvicorn src.main:app --host 0.0.0.0 --port 8080 --reloadOpen your browser and navigate to http://localhost:8080 (or http://localhost:8080/login.html if required).
This project features Automated Cloud Deployment via cloudbuild.yaml and Dockerfile.
To reproduce the deployment on your own GCP Project:
gcloud builds submit --config cloudbuild.yamlNote: Make sure to inject the GEMINI_KEY and GOOGLE_MAPS_KEY as Secret Manager references or environment variables inside your Cloud Run service configuration.