The reason for its `system_instruction` argument was to support usage with LLMs where you might pass the system instruction as a parameter to the `LLMService` rather than specifying it in the context. But as I thought about it more I became unconvinced that the `system_instruction` argument was really beneficial: - If you specified your system instruction in your context in the first place, it'll still be there when you read messages for persistent storage - If you didn't specify your system instruction in the context and instead passed it in as an `LLMService` parameter, you most likely *don't* want it to be in the context when you read messages for persistent storage - ...and if you really really do need to inject it at the start of the context, it's quite easy to do anyway And if we remove the `system_instruction` argument from `get_messages_for_persistent_storage()`, then it's essentially just `get_messages()`.
Pipecat Examples
This directory contains examples to help you learn how to build with Pipecat.
Getting Started
New to Pipecat? Start here:
- Quickstart - Get your first voice AI bot running in 5 minutes (coming soon)
- Client/Server Web - Learn to build web applications with Pipecat's client SDKs (coming soon)
- Phone Bot with Twilio - Connect your bot to a phone number (coming soon)
Foundational Examples
Single-file examples that introduce core Pipecat concepts one at a time. These examples:
- Build on each other progressively
- Focus on specific features or integrations
- Are used for testing with every Pipecat release
See the Foundational Examples README for the complete list.
More Advanced Examples
Ready to explore complex use cases? Visit pipecat-examples for:
- Production-ready applications
- Multi-platform client implementations
- Telephony integrations
- Multimodal and creative applications
- Deployment and monitoring examples