Skip to content

Latest commit

 

History

History
80 lines (44 loc) · 4.35 KB

File metadata and controls

80 lines (44 loc) · 4.35 KB
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
Loading

CodeBoardingDemoContact

Details

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.

PipelineRunner

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:

Pipeline

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:

PipelineTask

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:

FrameProcessor

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

PipelineSource

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:

PipelineSink

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: