metrics
Metrics data models for Pipecat framework.
This module defines Pydantic models for various types of metrics data collected throughout the pipeline, including timing, token usage, and processing statistics.
- class pipecat.metrics.metrics.MetricsData(*, processor: str, model: str | None = None)[source]
Bases:
BaseModelBase class for all metrics data.
- Parameters:
processor – Name of the processor generating the metrics.
model – Optional model name associated with the metrics.
- processor: str
- model: str | None
- class pipecat.metrics.metrics.TTFBMetricsData(*, processor: str, model: str | None = None, value: float)[source]
Bases:
MetricsDataTime To First Byte (TTFB) metrics data.
- Parameters:
value – TTFB measurement in seconds.
- value: float
- class pipecat.metrics.metrics.ProcessingMetricsData(*, processor: str, model: str | None = None, value: float)[source]
Bases:
MetricsDataGeneral processing time metrics data.
- Parameters:
value – Processing time measurement in seconds.
- value: float
- class pipecat.metrics.metrics.LLMTokenUsage(*, prompt_tokens: int, completion_tokens: int, total_tokens: int, cache_read_input_tokens: int | None = None, cache_creation_input_tokens: int | None = None, reasoning_tokens: int | None = None)[source]
Bases:
BaseModelToken usage statistics for LLM operations.
- Parameters:
prompt_tokens – Number of tokens in the input prompt.
completion_tokens – Number of tokens in the generated completion.
total_tokens – Total number of tokens used (prompt + completion).
cache_read_input_tokens – Number of tokens read from cache, if applicable.
cache_creation_input_tokens – Number of tokens used to create cache entries, if applicable.
- prompt_tokens: int
- completion_tokens: int
- total_tokens: int
- cache_read_input_tokens: int | None
- cache_creation_input_tokens: int | None
- reasoning_tokens: int | None
- class pipecat.metrics.metrics.LLMUsageMetricsData(*, processor: str, model: str | None = None, value: LLMTokenUsage)[source]
Bases:
MetricsDataLLM token usage metrics data.
- Parameters:
value – Token usage statistics for the LLM operation.
- value: LLMTokenUsage
- class pipecat.metrics.metrics.TTSUsageMetricsData(*, processor: str, model: str | None = None, value: int)[source]
Bases:
MetricsDataText-to-Speech usage metrics data.
- Parameters:
value – Number of characters processed by TTS.
- value: int
- class pipecat.metrics.metrics.TextAggregationMetricsData(*, processor: str, model: str | None = None, value: float)[source]
Bases:
MetricsDataText aggregation time metrics data.
Measures the time from the first LLM token to the first complete sentence, representing the latency cost of sentence aggregation in the TTS pipeline.
- Parameters:
value – Aggregation time in seconds.
- value: float
- class pipecat.metrics.metrics.TurnMetricsData(*, processor: str, model: str | None = None, is_complete: bool, probability: float, e2e_processing_time_ms: float)[source]
Bases:
MetricsDataMetrics data for turn detection predictions.
- Parameters:
is_complete – Whether the turn is predicted to be complete.
probability – Confidence probability of the turn completion prediction.
e2e_processing_time_ms – End-to-end processing time in milliseconds, measured from VAD speech-to-silence transition to turn completion.
- is_complete: bool
- probability: float
- e2e_processing_time_ms: float
- class pipecat.metrics.metrics.SmartTurnMetricsData(*, processor: str, model: str | None = None, is_complete: bool, probability: float, e2e_processing_time_ms: float, inference_time_ms: float = 0.0, server_total_time_ms: float = 0.0)[source]
Bases:
TurnMetricsDataMetrics data for smart turn predictions.
Deprecated since version 0.0.104: Use
TurnMetricsDatainstead. This class will be removed in a future version.- Parameters:
inference_time_ms – Time taken for inference in milliseconds.
server_total_time_ms – Total server processing time in milliseconds.
- inference_time_ms: float
- server_total_time_ms: float