An intelligent voice-activated tour guide powered by AI that helps you discover tourist attractions with personalized recommendations.
- 🎤 Voice Interaction - Speak naturally to Sherpa
- 🤖 AI-Powered Recommendations - Intelligent suggestions using Google Gemini
- 📍 Interactive Maps - Visual route planning
- 🖼️ Landmark Images - Auto-fetched photos
- 🔊 Natural Speech - Sherpa speaks back to you
- 🌍 Multilingual - Supports multiple languages
- Node.js 14+ and npm
- Python 3.8+
- API Keys (see Environment Setup)
cd sherpa_backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python main.pyBackend runs on: http://localhost:8000
cd sherpa_frontend
npm install
npm startFrontend opens at: http://localhost:3000
GOOGLE_API_KEY=your_google_api_key
GEMINI_API_KEY=your_gemini_api_keyREACT_APP_GOOGLE_API_KEY=your_google_api_key
REACT_APP_GOOGLE_SEARCH_ENGINE_ID=your_search_engine_id
REACT_APP_GROQ_API_KEY=your_groq_api_key
REACT_APP_ELEVENLABS_API_KEY=your_elevenlabs_key
REACT_APP_ELEVENLABS_VOICE_ID=21m00Tcm4TlvDq8ikWAM- Open
http://localhost:3000in your browser - Allow microphone access when prompted
- Click and hold the microphone button
- Speak: "Show me tourist attractions in [city name]"
- Release the button
- Watch Sherpa plan your tour!
Backend:
- FastAPI + Uvicorn
- Google Gemini 2.0 Flash (LLM)
- Google Places API
- Python 3.12
Frontend:
- React 19
- Groq Whisper (Speech-to-Text)
- Google Maps React
- ElevenLabs (Text-to-Speech)
FREE for hackathon/development using free tiers:
- Gemini: Free (LLM - 15 req/min, 1M tokens/day)
- Groq: Free (Whisper STT)
- Google Cloud: $200 monthly credit
- ElevenLabs: 10k chars/month free
Test all APIs are working:
cd sherpa_backend
source venv/bin/activate
python test_all_apis.pyIf you get "address already in use" errors:
Kill processes on port 8000 (backend):
# Find and kill
lsof -ti:8000 | xargs kill -9
# Or kill by name
pkill -f "python main.py"Kill processes on port 3000 (frontend):
# Find and kill
lsof -ti:3000 | xargs kill -9
# Or kill by name
pkill -f "npm start"
pkill -f "react-scripts"Kill both at once:
lsof -ti:3000,8000 | xargs kill -9If ElevenLabs API works but you hear no sound:
- Check browser console for errors
- Ensure browser allows autoplay (click somewhere on the page first)
- Check system volume and browser tab isn't muted
- Verify
REACT_APP_ELEVENLABS_API_KEYin.env
- Check
REACT_APP_GOOGLE_API_KEYinsherpa_frontend/.env - Verify Maps JavaScript API is enabled in Google Cloud Console
- Allow location permission when browser prompts
To deploy both backend and frontend automatically (reflecting all local changes):
./deploy.shThis script will:
- Deploy the backend to Cloud Run (including your local
.envvariables). - Capture the new Backend URL.
- Update the frontend configuration.
- Deploy the frontend to Cloud Run.
If you prefer manual control:
Built for: AI Partner Catalyst Hackathon
Technologies Used:
- Google Cloud (Maps, Places)
- Google Gemini (LLM)
- Groq (Whisper STT)
- ElevenLabs (TTS)
MIT License
Priyanshu - Hackathon Project 2024