Festival planner voice agetn
Help me and friend plan a festival trip
Core trick
Twilio calls feed a Pipecat pipeline where Claude calls tools that write group and festival records to a database.
Description
Help me and friend plan a festival trip
README excerpt
# Festival Coordinator
A voice-based AI assistant that helps friend groups plan festival trips together. Users call in via phone, and the AI helps them form groups, pick festivals, track members, and coordinate plans — all through natural conversation.
## Architecture
The system is split into three services:
### Voice Agent (`bot.py`)
The core of the product. A real-time voice pipeline built with **Pipecat** that handles phone calls end-to-end:
- **Telephony** via **Twilio** — receives inbound calls, identifies callers by phone number
- **Speech-to-Text / Text-to-Speech** via **Cartesia**
- **Conversation** via **Anthropic Claude** (Haiku 4.5) — the LLM drives the dialogue and calls tools to save groups, members, festivals, and artists to the database
- **Smart turn detection** using Pipecat's `LocalSmartTurnAnalyzerV3` + Silero VAD to know when the user has finished speaking
- **Local dev** via **Daily WebRTC** transport for browser-based testing without a phone
On disconnect, the bot summarizes the full transcript via a separate Claude API call and persists it.
### REST API (`backend/`)
A **FastAPI** server exposing CRUD endpoints over the database. Serves as the data layer for the frontend.
- Group-scoped endpoints: `/groups/{id}/members`, `/groups/{id}/festivals`
- Festival catalog: `/festival-catalog` for browsing available festivals
- Standard CRUD for groups, members, festivals, artists, and calls
### Frontend (`frontend/`)
A **React** + **TypeScript** sing