or run

tessl search
Log in

Version

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/pipecat-ai@0.0.x

docs

core-concepts.mdindex.mdpipeline.mdrunner.mdtransports.mdturns.md
tile.json

tessl/pypi-pipecat-ai

tessl install tessl/pypi-pipecat-ai@0.0.0

An open source framework for building real-time voice and multimodal conversational AI agents with support for speech-to-text, text-to-speech, LLMs, and multiple transport protocols

frames-reference.mddocs/reference/

Frame Reference Catalog

Frame Hierarchy Overview

All frames inherit from Frame base class with three main categories:

  1. SystemFrame - High priority, immediate processing, not interrupted
  2. DataFrame - Normal priority, ordered processing, can be interrupted
  3. ControlFrame - Control signals, ordered processing, can be interrupted

Complete Frame Catalog

Audio Frames

See: Audio Frames Documentation

{ .api }
from pipecat.frames.frames import (
    AudioRawFrame,              # Base audio with PCM data
    InputAudioRawFrame,         # Audio from transport (SystemFrame)
    OutputAudioRawFrame,        # Audio to transport (DataFrame)
    TTSAudioRawFrame,           # TTS-generated (DataFrame)
    UserAudioRawFrame,          # User audio (SystemFrame)
    SpeechOutputAudioRawFrame,  # Speech output (DataFrame)
)

Text Frames

See: Text Frames Documentation

{ .api }
from pipecat.frames.frames import (
    TextFrame,                  # Generic text (DataFrame)
    LLMTextFrame,               # LLM-generated text (DataFrame)
    TranscriptionFrame,         # STT transcription final (DataFrame)
    InterimTranscriptionFrame,  # STT transcription interim (SystemFrame)
    TTSTextFrame,               # Text for TTS (DataFrame)
    VisionTextFrame,            # Vision output (DataFrame)
)

LLM Context Frames

See: LLM Context Frames Documentation

{ .api }
from pipecat.frames.frames import (
    LLMContextFrame,            # Universal context (DataFrame)
    LLMMessagesAppendFrame,     # Append messages (DataFrame)
    LLMMessagesUpdateFrame,     # Update messages (DataFrame)
    LLMSetToolsFrame,           # Update tools (DataFrame)
    LLMRunFrame,                # Trigger inference (DataFrame)
    LLMFullResponseStartFrame,  # Response begins (ControlFrame)
    LLMFullResponseEndFrame,    # Response complete (ControlFrame)
)

Control Frames

See: Control Frames Documentation

{ .api }
from pipecat.frames.frames import (
    StartFrame,                 # Pipeline start (SystemFrame)
    EndFrame,                   # Pipeline end (ControlFrame)
    CancelFrame,                # Cancel operation (SystemFrame)
    StopFrame,                  # Stop signal (ControlFrame)
    ErrorFrame,                 # Recoverable error (SystemFrame)
    FatalErrorFrame,            # Unrecoverable error (SystemFrame)
)

Interaction Frames

See: Interaction Frames Documentation

{ .api }
from pipecat.frames.frames import (
    UserStartedSpeakingFrame,   # User began speaking (SystemFrame)
    UserStoppedSpeakingFrame,   # User stopped speaking (SystemFrame)
    UserSpeakingFrame,          # User is speaking (SystemFrame)
    BotStartedSpeakingFrame,    # Bot began speaking (ControlFrame)
    BotStoppedSpeakingFrame,    # Bot stopped speaking (ControlFrame)
    BotSpeakingFrame,           # Bot is speaking (ControlFrame)
    VADUserStartedSpeakingFrame, # VAD detected start (SystemFrame)
    VADUserStoppedSpeakingFrame, # VAD detected stop (SystemFrame)
)

Image/Video Frames

See: Image/Video Frames Documentation

{ .api }
from pipecat.frames.frames import (
    ImageRawFrame,              # Raw image data (DataFrame)
    OutputImageRawFrame,        # Image to transport (DataFrame)
    VideoFrame,                 # Video frame (DataFrame)
    UserImageRawFrame,          # User image (SystemFrame)
    UserImageRequestFrame,      # Request user image (SystemFrame)
)

Task Management Frames

{ .api }
from pipecat.frames.frames import (
    TaskFrame,                  # Base task frame (SystemFrame)
    EndTaskFrame,               # Graceful close (SystemFrame)
    CancelTaskFrame,            # Immediate cancel (SystemFrame)
    StopTaskFrame,              # Stop but keep processors (SystemFrame)
    InterruptionTaskFrame,      # Interrupt bot (SystemFrame)
)

TTS Control Frames

{ .api }
from pipecat.frames.frames import (
    TTSSpeakFrame,              # Direct TTS request (DataFrame)
    TTSStartedFrame,            # TTS began (ControlFrame)
    TTSStoppedFrame,            # TTS stopped (ControlFrame)
    TTSUpdateSettingsFrame,     # Update TTS settings (ControlFrame)
)

STT Control Frames

{ .api }
from pipecat.frames.frames import (
    STTMuteFrame,               # Mute/unmute STT (SystemFrame)
    STTUpdateSettingsFrame,     # Update STT settings (ControlFrame)
)

Service Control Frames

{ .api }
from pipecat.frames.frames import (
    ServiceUpdateSettingsFrame,    # Base settings update (ControlFrame)
    LLMUpdateSettingsFrame,        # LLM settings (ControlFrame)
    ServiceSwitcherFrame,          # Base switcher (ControlFrame)
    ManuallySwitchServiceFrame,    # Manual switch (ControlFrame)
)

Transport Frames

{ .api }
from pipecat.frames.frames import (
    OutputTransportReadyFrame,        # Transport ready (ControlFrame)
    OutputTransportMessageFrame,      # Output message (DataFrame)
    OutputTransportMessageUrgentFrame, # Urgent output (SystemFrame)
    InputTransportMessageFrame,       # Input message (SystemFrame)
)

DTMF Frames

{ .api }
from pipecat.frames.frames import (
    DTMFFrame,                  # Base DTMF (varies)
    InputDTMFFrame,             # DTMF input (SystemFrame)
    OutputDTMFFrame,            # DTMF output (DataFrame)
    OutputDTMFUrgentFrame,      # Urgent DTMF (SystemFrame)
)

from pipecat.audio.dtmf.types import KeypadEntry
# KeypadEntry: ZERO, ONE, TWO, ..., NINE, STAR, POUND

Processor Control Frames

{ .api }
from pipecat.frames.frames import (
    FrameProcessorPauseFrame,       # Pause processor (ControlFrame)
    FrameProcessorResumeFrame,      # Resume processor (ControlFrame)
    FrameProcessorPauseUrgentFrame, # Urgent pause (SystemFrame)
    FrameProcessorResumeUrgentFrame, # Urgent resume (SystemFrame)
)

Filter/Mixer Control Frames

{ .api }
from pipecat.frames.frames import (
    FilterControlFrame,         # Base filter control (ControlFrame)
    FilterUpdateSettingsFrame,  # Update filter (ControlFrame)
    FilterEnableFrame,          # Enable/disable filter (ControlFrame)
    MixerControlFrame,          # Base mixer control (ControlFrame)
    MixerUpdateSettingsFrame,   # Update mixer (ControlFrame)
    MixerEnableFrame,           # Enable/disable mixer (ControlFrame)
)

Interruption Frames

{ .api }
from pipecat.frames.frames import (
    InterruptionFrame,          # Base interruption (SystemFrame)
    StartInterruptionFrame,     # Start interruption (SystemFrame)
    BotInterruptionFrame,       # Bot interrupted (SystemFrame)
)

Function Call Frames

{ .api }
from pipecat.frames.frames import (
    FunctionCallFromLLM,        # LLM calls function (DataFrame, UninterruptibleFrame)
    FunctionCallResultFrame,    # Function result (DataFrame, UninterruptibleFrame)
    FunctionCallCancelFrame,    # Cancel function (SystemFrame)
    FunctionCallsStartedFrame,  # Functions started (ControlFrame)
)

Metrics Frames

{ .api }
from pipecat.frames.frames import MetricsFrame

class MetricsFrame(SystemFrame):
    """Carries performance/usage metrics."""
    data: MetricsData  # TTFBMetricsData, LLMUsageMetricsData, etc.

Other Control Frames

{ .api }
from pipecat.frames.frames import (
    HeartbeatFrame,             # Keep-alive (ControlFrame)
    VADParamsUpdateFrame,       # Update VAD (ControlFrame)
    SpeechControlParamsFrame,   # Update speech control (SystemFrame)
)

Frame Attributes

All frames inherit these attributes:

{ .api }
class Frame:
    """Base frame attributes."""
    
    id: int                              # Unique frame ID
    name: str                            # Human-readable name
    pts: Optional[int]                   # Presentation timestamp (nanoseconds)
    metadata: Dict[str, Any]             # Arbitrary metadata
    transport_source: Optional[str]      # Source transport name
    transport_destination: Optional[str] # Destination transport name

Frame Direction

{ .api }
from pipecat.processors.frame_processor import FrameDirection

class FrameDirection(Enum):
    """Direction of frame flow."""
    DOWNSTREAM = "downstream"  # Input → Output
    UPSTREAM = "upstream"      # Output → Input

See Also