from typing import Optional
from pydantic import BaseModel
[docs]
class MetricsData(BaseModel):
processor: str
model: Optional[str] = None
[docs]
class TTFBMetricsData(MetricsData):
value: float
[docs]
class ProcessingMetricsData(MetricsData):
value: float
[docs]
class LLMTokenUsage(BaseModel):
prompt_tokens: int
completion_tokens: int
total_tokens: int
cache_read_input_tokens: Optional[int] = None
cache_creation_input_tokens: Optional[int] = None
[docs]
class LLMUsageMetricsData(MetricsData):
value: LLMTokenUsage
[docs]
class TTSUsageMetricsData(MetricsData):
value: int
[docs]
class SmartTurnMetricsData(MetricsData):
"""Metrics data for smart turn predictions."""
is_complete: bool
probability: float
inference_time_ms: float
server_total_time_ms: float
e2e_processing_time_ms: float