graph LR
PipelineRunner["PipelineRunner"]
Pipeline["Pipeline"]
PipelineTask["PipelineTask"]
FrameProcessor["FrameProcessor"]
PipelineSource["PipelineSource"]
PipelineSink["PipelineSink"]
PipelineRunner -- "manages and orchestrates" --> Pipeline
Pipeline -- "aggregates" --> FrameProcessor
Pipeline -- "manages" --> PipelineTask
PipelineSource -- "provides input to" --> Pipeline
Pipeline -- "outputs to" --> PipelineSink
PipelineTask -- "executes logic of" --> FrameProcessor
PipelineTask -- "operates within" --> Pipeline
The pipecat pipeline subsystem is designed for building modular and extensible conversational AI applications. At its highest level, the PipelineRunner orchestrates the execution of a Pipeline, which defines the overall data flow. The Pipeline aggregates various FrameProcessor components, each responsible for a specific data processing task (e.g., STT, LLM, TTS). These FrameProcessors define the contract for how data frames are processed, while PipelineTask instances are the asynchronous units that execute this processing logic. Data enters the system through a PipelineSource and is delivered to external consumers via a PipelineSink, ensuring a clear and manageable flow of information.
The top-level orchestrator. It initiates, manages, and gracefully terminates the execution of a conversational AI pipeline. It handles system signals and overall runtime management.
Related Classes/Methods:
Defines the structure and flow of the conversational AI pipeline. It acts as a container for various processing stages (FrameProcessor instances) and manages their interconnections, setup, and cleanup. It's the blueprint of the data flow.
Related Classes/Methods:
Represents an atomic, asynchronous processing unit within the pipeline. It handles the actual consumption, processing, and propagation of data frames, managing its own internal queues and lifecycle (including idle detection and heartbeat monitoring). It executes the logic defined by a FrameProcessor.
Related Classes/Methods:
An abstract base class or interface for any component that processes data frames within the pipeline. It defines the contract for individual processing stages, allowing for modular and pluggable AI/ML functionalities (e.g., STT, LLM, TTS modules).
Related Classes/Methods:
pipecat.pipeline.frame.FrameProcessor:137-300
Represents the entry point for data frames into the overall pipeline. It's responsible for ingesting external data (e.g., audio input) into the processing flow.
Related Classes/Methods:
Represents the exit point for processed data frames from the overall pipeline. It's responsible for outputting processed data (e.g., audio output) to external consumers.
Related Classes/Methods: