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.
-
OpenAI Bot
- Uses gpt-4o for conversation
- Requires OpenAI API key
-
Gemini Bot
- Uses Google's Gemini Live model
- Requires Gemini API key
-
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
-
React Native
- Basic impelmentation using Pipecat React Native SDK
- Demonstrates the basic client principles with Pipecat React Native
-
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
Follow the instructions in the server directory.
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.
- 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
simple-chatbot/
├── server/ # Bot server implementation
│ ├── assets # Directory of sprite images
│ ├── bot-openai.py # OpenAI bot implementation
│ ├── bot-gemini.py # Gemini bot implementation
│ ├── env.example # Env variable example
│ ├── Dockerfile # Dockerfile for building your image
│ ├── pcc-deploy.toml # Pipecat Cloud: Deployment specification
│ ├── pyproject.toml # Project specification
│ ├── README.md # More specific server setup instructions
│ └── 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
└── react-native/ # Pipecat React Native client
