Simple Chatbot
This repository demonstrates a simple AI chatbot with real-time audio/video interaction, implemented using different client and server options. The bot server supports multiple AI backends, and you can connect to it using five different client approaches.
Two Bot Options
-
OpenAI Bot (Default)
- Uses gpt-4o for conversation
- Requires OpenAI API key
-
Gemini Bot
- Uses Google's Gemini Multimodal Live model
- Requires Gemini API key
Five Client Options
-
Daily Prebuilt (Simplest)
- Direct connection through a Daily Prebuilt room
- For demo purposes only; handy for quick testing
-
JavaScript
- Basic implementation using Pipecat JavaScript SDK
- No framework dependencies
- Good for learning the fundamentals
-
React
- Basic impelmentation using Pipecat React SDK
- Demonstrates the basic client principles with Pipecat React
-
Android
- Basic implementation using Pipecat Android SDK
- Demonstrates the basic client principles with Pipecat Android
-
iOS
- Basic implementation using Pipecat iOS SDK
- Demonstrates the basic client principles with Pipecat iOS
Quick Start
First, start the bot server:
- Navigate to the server directory:
cd server - Create and activate a virtual environment:
python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate - Install requirements:
pip install -r requirements.txt - Copy env.example to .env and configure:
- Add your API keys
- Choose your bot implementation:
BOT_IMPLEMENTATION= # Options: 'openai' (default) or 'gemini'
- Start the server:
python server.py
Next, connect using your preferred client app:
Important Note
The bot server must be running for any of the client implementations to work. Start the server first before trying any of the client apps.
Requirements
- Python 3.10+
- Node.js 16+ (for JavaScript and React implementations)
- Daily API key
- OpenAI API key (for OpenAI bot)
- Gemini API key (for Gemini bot)
- ElevenLabs API key
- Modern web browser with WebRTC support
Project Structure
simple-chatbot/
├── server/ # Bot server implementation
│ ├── bot-openai.py # OpenAI bot implementation
│ ├── bot-gemini.py # Gemini bot implementation
│ ├── runner.py # Server runner utilities
│ ├── server.py # FastAPI server
│ └── requirements.txt
└── client/ # Client implementations
├── android/ # Daily Android connection
├── ios/ # Daily iOS connection
├── javascript/ # Daily JavaScript connection
├── prebuilt/ # Pipecat Prebuilt client
└── react/ # Pipecat React client