A FastAPI server that manages bot instances and provides endpoints for both Daily Prebuilt and Pipecat client connections.
GET /
- Direct browser access, redirects to a Daily Prebuilt roomPOST /connect
- Pipecat client connection endpointGET /status/{pid}
- Get status of a specific bot process
Copy env.example
to .env
and configure:
# Required API Keys
DAILY_API_KEY= # Your Daily API key
OPENAI_API_KEY= # Your OpenAI API key (required for OpenAI bot)
GEMINI_API_KEY= # Your Gemini API key (required for Gemini bot)
ELEVENLABS_API_KEY= # Your ElevenLabs API key
# Bot Selection
BOT_IMPLEMENTATION= # Options: 'openai' or 'gemini'
# Optional Configuration
DAILY_API_URL= # Optional: Daily API URL (defaults to https://api.daily.co/v1)
DAILY_SAMPLE_ROOM_URL= # Optional: Fixed room URL for development
HOST= # Optional: Host address (defaults to 0.0.0.0)
FAST_API_PORT= # Optional: Port number (defaults to 7860)
The server supports two bot implementations:
-
OpenAI Bot (Default)
- Uses GPT-4 for conversation
- Requires OPENAI_API_KEY
-
Gemini Bot
- Uses Google's Gemini model
- Requires GEMINI_API_KEY
Select your preferred bot by setting BOT_IMPLEMENTATION
in your .env
file.
Set up and activate your virtual environment:
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
Install dependencies:
pip install -r requirements.txt
Run the server:
python server.py