This directory contains complete example implementations demonstrating various features of Pipecat Flows.
See quickstart/README.md for a beginner-friendly introduction to Pipecat Flows.
food_ordering.py- Restaurant order flow demonstrating node and edge functionsrestaurant_reservation.py- Reservation system with availability checkingpatient_intake.py- Medical intake system showing complex state managementinsurance_quote.py- Insurance quote system with data collection
food_ordering_direct_functions.py- Food ordering using direct function registrationrestaurant_reservation_direct_functions.py- Reservation system using direct function registrationllm_switching.py- Switching between different LLM providers during conversation
warm_transfer.py- Transferring calls between different flows (DailyTransport only)
Note: All examples support multiple LLM providers (OpenAI, Anthropic, Google, AWS Bedrock) and transport options unless otherwise specified. Pipecat Flows handles the different function calling formats internally while maintaining a consistent API for developers.
- Python 3.10 or higher
- uv package manager
Install the package:
uv syncInstall Pipecat with required options for examples:
uv pip install "pipecat-ai[daily,openai,deepgram,cartesia,silero,examples]"If you're running Google or Anthropic examples, you will need to update the installed options. For example:
# Install Google Gemini
uv pip install "pipecat-ai[daily,google,deepgram,cartesia,silero,examples]"
# Install Anthropic
uv pip install "pipecat-ai[daily,anthropic,deepgram,cartesia,silero,examples]"
# Install AWS Bedrock
uv pip install "pipecat-ai[daily,aws,deepgram,cartesia,silero,examples]"Copy env.example to .env in the examples directory:
cp env.example .envAdd your API keys and configuration:
- DEEPGRAM_API_KEY
- CARTESIA_API_KEY
- OPENAI_API_KEY
- ANTHROPIC_API_KEY
- GOOGLE_API_KEY
- AWS_ACCESS_KEY_ID (for Bedrock)
- AWS_SECRET_ACCESS_KEY (for Bedrock)
- AWS_REGION (for Bedrock)
- DAILY_API_KEY
Looking for a Daily API key and room URL? Sign up on the Daily Dashboard.
Run any example using:
uv run examples/food_ordering.pyOpen http://localhost:7860/client in your browser to talk to your bot.
The examples use Pipecat development runner, which supports using multiple clients. Join using either the SmallWebRTCTransport, DailyTransport, or FastAPIWebsocketTransport with Twilio/Telnyx/Plivo/Exotel:
-
SmallWebRTCTransport:
uv run examples/food_ordering.py
-
DailyTransport:
uv run examples/food_ordering.py --transport daily
-
Twilio (or other telephony provider):
Start an ngrok tunnel:
ngrok http 7860
Tip: Use
--subdomainfor a reusable ngrok URL.Run the bot:
uv run examples/food_ordering.py --transport twilio --proxy your-ngrok.ngrok.io
replacing
your-ngrokwith your ngrok subdomain.