From bc97f397ef92d779db88f4b641ba2250e8627989 Mon Sep 17 00:00:00 2001 From: Philipp Eisen Date: Fri, 30 May 2025 10:27:20 +0200 Subject: [PATCH] Switch to using float instead of int, but keep ms --- src/pipecat/processors/metrics/frame_processor_metrics.py | 6 +++--- src/pipecat/utils/tracing/service_attributes.py | 6 +++--- src/pipecat/utils/tracing/service_decorators.py | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/pipecat/processors/metrics/frame_processor_metrics.py b/src/pipecat/processors/metrics/frame_processor_metrics.py index fb2ed3412..337a1746e 100644 --- a/src/pipecat/processors/metrics/frame_processor_metrics.py +++ b/src/pipecat/processors/metrics/frame_processor_metrics.py @@ -28,18 +28,18 @@ class FrameProcessorMetrics: self._should_report_ttfb = True @property - def ttfb_ms(self) -> Optional[int]: + def ttfb_ms(self) -> Optional[float]: """Get the current TTFB value in milliseconds. Returns: Optional[int]: The TTFB value in milliseconds, or None if not measured """ if self._last_ttfb_time > 0: - return int(self._last_ttfb_time * 1000) + return self._last_ttfb_time * 1000 # If TTFB is in progress, calculate current value if self._start_ttfb_time > 0: - return int((time.time() - self._start_ttfb_time) * 1000) + return (time.time() - self._start_ttfb_time) * 1000 return None diff --git a/src/pipecat/utils/tracing/service_attributes.py b/src/pipecat/utils/tracing/service_attributes.py index e0a62ed7f..af192ea61 100644 --- a/src/pipecat/utils/tracing/service_attributes.py +++ b/src/pipecat/utils/tracing/service_attributes.py @@ -60,7 +60,7 @@ def add_tts_span_attributes( settings: Optional[Dict[str, Any]] = None, character_count: Optional[int] = None, operation_name: str = "tts", - ttfb_ms: Optional[int] = None, + ttfb_ms: Optional[float] = None, **kwargs, ) -> None: """Add TTS-specific attributes to a span. @@ -116,7 +116,7 @@ def add_stt_span_attributes( language: Optional[str] = None, settings: Optional[Dict[str, Any]] = None, vad_enabled: bool = False, - ttfb_ms: Optional[int] = None, + ttfb_ms: Optional[float] = None, **kwargs, ) -> None: """Add STT-specific attributes to a span. @@ -178,7 +178,7 @@ def add_llm_span_attributes( system: Optional[str] = None, parameters: Optional[Dict[str, Any]] = None, extra_parameters: Optional[Dict[str, Any]] = None, - ttfb_ms: Optional[int] = None, + ttfb_ms: Optional[float] = None, **kwargs, ) -> None: """Add LLM-specific attributes to a span. diff --git a/src/pipecat/utils/tracing/service_decorators.py b/src/pipecat/utils/tracing/service_decorators.py index d65256385..d200a57b0 100644 --- a/src/pipecat/utils/tracing/service_decorators.py +++ b/src/pipecat/utils/tracing/service_decorators.py @@ -152,7 +152,7 @@ def traced_tts(func: Optional[Callable] = None, *, name: Optional[str] = None) - raise finally: # Update TTFB metric at the end - ttfb_ms: Optional[int] = getattr(getattr(self, "_metrics", None), "ttfb_ms", None) + ttfb_ms: Optional[float] = getattr(getattr(self, "_metrics", None), "ttfb_ms", None) if ttfb_ms is not None: span.set_attribute("metrics.ttfb_ms", ttfb_ms) @@ -238,7 +238,7 @@ def traced_stt(func: Optional[Callable] = None, *, name: Optional[str] = None) - ) as current_span: try: # Get TTFB metric if available - ttfb_ms: Optional[int] = getattr(getattr(self, "_metrics", None), "ttfb_ms", None) + ttfb_ms: Optional[float] = getattr(getattr(self, "_metrics", None), "ttfb_ms", None) # Use settings from the service if available settings = getattr(self, "_settings", {}) @@ -460,7 +460,7 @@ def traced_llm(func: Optional[Callable] = None, *, name: Optional[str] = None) - self.start_llm_usage_metrics = original_start_llm_usage_metrics # Update TTFB metric - ttfb_ms: Optional[int] = getattr(getattr(self, "_metrics", None), "ttfb_ms", None) + ttfb_ms: Optional[float] = getattr(getattr(self, "_metrics", None), "ttfb_ms", None) if ttfb_ms is not None: current_span.set_attribute("metrics.ttfb_ms", ttfb_ms) except Exception as e: