Files
pipecat/examples/simple-chatbot/server/README.md
2025-04-14 13:39:53 -04:00

87 lines
2.5 KiB
Markdown

# Simple Chatbot Server
A FastAPI server that manages bot instances and provides endpoints for both Daily Prebuilt and Pipecat client connections.
## Endpoints
- `GET /` - Direct browser access, redirects to a Daily Prebuilt room
- `POST /connect` - Pipecat client connection endpoint
- `GET /status/{pid}` - Get status of a specific bot process
## Environment Variables
Copy `env.example` to `.env` and configure:
```ini
# 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)
```
## Available Bots
The server supports two bot implementations:
1. **OpenAI Bot** (Default)
- Uses GPT-4 for conversation
- Requires OPENAI_API_KEY
2. **Gemini Bot**
- Uses Google's Gemini model
- Requires GEMINI_API_KEY
Select your preferred bot by setting `BOT_IMPLEMENTATION` in your `.env` file.
## Running the Server
Set up and activate your virtual environment:
```bash
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
```
Install dependencies:
```bash
pip install -r requirements.txt
```
If you want to use the local version of `pipecat` in this repo rather than the last published version, also run:
```bash
pip install --editable "../../../[daily,elevenlabs,openai,silero,google]"
```
Run the server:
```bash
python server.py
```
## Troubleshooting
If you encounred this error:
```bash
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host api.daily.co:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)')]
```
It's because Python cannot verify the SSL certificate from https://api.daily.co when making a POST request to create a room or token.
This is a common issue when the system doesn't have the proper CA certificates.
Install SSL Certificates (macOS): `/Applications/Python\ 3.12/Install\ Certificates.command`