Files
pipecat/examples
mattie ruth backman a4edb3dab1 Cleanup on aisle METRICS. Note: See below, this is a breaking change
1. Fleshed out MetricsFrames and broke it into a proper set of types
2. Add model_name as a property to the AIService so that it can be
   automatically included in metrics and also remove that
   overhead from all the various services themselves

Breaking change!

Because of the types improvements, the MetricsFrame type has
changed. Each frame will have a list of metrics simlilar to before
except each item in the list will only contain one type of metric:
"ttfb", "tokens", "characters", or "processing". Previously these
fields would be in every entry but set to None if they didn't apply.

While this changes internal handling of the MetricsFrame, it does NOT
break the RTVI/daily messaging of metrics. That format remains the same.

Also. Remember to use model_name for accessing a service's current
model and set_model_name for setting it.
2024-09-19 21:30:34 -04:00
..
2024-09-06 20:22:18 +02:00

Pipecat — Examples

Foundational snippets

Small snippets that build on each other, introducing one or two concepts at a time.

➡️ Take a look

Chatbot examples

Collection of self-contained real-time voice and video AI demo applications built with Pipecat.

Quickstart

Each project has its own set of dependencies and configuration variables. They intentionally avoids shared code across projects — you can grab whichever demo folder you want to work with as a starting point.

We recommend you start with a virtual environment:

cd pipecat-ai/examples/simple-chatbot

python -m venv venv

source venv/bin/activate

pip install -r requirements.txt

Next, follow the steps in the README for each demo.

Make sure you pip install -r requirements.txt for each demo project, so you can be sure to have the necessary service dependencies that extend the functionality of Pipecat. You can read more about the framework architecture here.

Projects:

Project Description Services
Simple Chatbot Basic voice-driven conversational bot. A good starting point for learning the flow of the framework. Deepgram, ElevenLabs, OpenAI, Daily, Daily Prebuilt UI
Storytelling Chatbot Stitches together multiple third-party services to create a collaborative storytime experience. Deepgram, ElevenLabs, OpenAI, Fal, Daily, Custom UI
Translation Chatbot Listens for user speech, then translates that speech to Spanish and speaks the translation back. Demonstrates multi-participant use-cases. Deepgram, Azure, OpenAI, Daily, Daily Prebuilt UI
Moondream Chatbot Demonstrates how to add vision capabilities to GPT4. Note: works best with a GPU Deepgram, ElevenLabs, OpenAI, Moondream, Daily, Daily Prebuilt UI
Patient intake A chatbot that can call functions in response to user input. Deepgram, ElevenLabs, OpenAI, Daily, Daily Prebuilt UI
Dialin Chatbot A chatbot that connects to an incoming phone call from Daily or Twilio. Deepgram, ElevenLabs, OpenAI, Daily, Twilio
Twilio Chatbot A chatbot that connects to an incoming phone call from Twilio. Deepgram, ElevenLabs, OpenAI, Daily, Twilio
studypal A chatbot to have a conversation about any article on the web

Important

These example projects use Daily as a WebRTC transport and can be joined using their hosted Prebuilt UI. It provides a quick way to join a real-time session with your bot and test your ideas without building any frontend code. If you'd like to see an example of a custom UI, try Storybot.

FAQ

Deployment

For each of these demos we've included a Dockerfile. Out of the box, this should provide everything needed to get the respective demo running on a VM:

docker build username/app:tag .

docker run -p 7860:7860 --env-file ./.env username/app:tag

docker push ...

SSL

If you're working with a custom UI (such as with the Storytelling Chatbot), it's important to ensure your deployment platform supports HTTPS, as accessing user devices such as mics and webcams requires SSL.

If you try to run a custom UI without SSL, you may see an error in the console telling you that navigator is undefined, or no devices are available.

Are these examples production ready?

Yes, kind of.

These demos attempt to keep things simple and are unopinionated regarding environment or scalability.

We're using FastAPI to spawn a subprocess for the bots / agents — useful for small tests, but not so great for production grade apps with many concurrent users. You can see how this works in each project's start endpoint in server.py.

Creating virtualized worker pools and on-demand instances is out of scope for these examples, but we hope to add some examples to this repo soon!

For projects that have CUDA as a requirement, such as Moondream Chatbot, be sure to deploy to a GPU-powered platform (such as fly.io or Runpod.)

Getting help

➡️ Join our Discord

➡️ Reach us on Twitter