From efbc0c85103a436e759f4ef7f173d690eff157e7 Mon Sep 17 00:00:00 2001 From: Mark Backman Date: Tue, 13 Jan 2026 12:04:15 -0500 Subject: [PATCH] Fix TTS, realtime LLM services could return unknown for model_name --- changelog/3351.fixed.md | 1 + changelog/3422.fixed.md | 2 +- changelog/3428.fixed.md | 1 + src/pipecat/utils/tracing/service_decorators.py | 14 +++++++++----- 4 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 changelog/3351.fixed.md create mode 100644 changelog/3428.fixed.md diff --git a/changelog/3351.fixed.md b/changelog/3351.fixed.md new file mode 100644 index 000000000..2792839cb --- /dev/null +++ b/changelog/3351.fixed.md @@ -0,0 +1 @@ +- Fixed an issue in `traced_stt` where `model_name` in OpenTelemetry appears as `unknown`. diff --git a/changelog/3422.fixed.md b/changelog/3422.fixed.md index 31b1d93c9..fa34d9262 100644 --- a/changelog/3422.fixed.md +++ b/changelog/3422.fixed.md @@ -1 +1 @@ -- Fixed a bug in `traced_llm` where the model name in opentelemetry is shown unknown even though it is defined. +- Fixed an issue in `traced_llm` where `model_name` in OpenTelemetry appears as `unknown`. diff --git a/changelog/3428.fixed.md b/changelog/3428.fixed.md new file mode 100644 index 000000000..e82ff082e --- /dev/null +++ b/changelog/3428.fixed.md @@ -0,0 +1 @@ +- Fixed an issue in `traced_tts`, `traced_gemini_live`, and `traced_openai_realtime` where `model_name` in OpenTelemetry appears as `unknown`. diff --git a/src/pipecat/utils/tracing/service_decorators.py b/src/pipecat/utils/tracing/service_decorators.py index 5bcfbd442..68dda6562 100644 --- a/src/pipecat/utils/tracing/service_decorators.py +++ b/src/pipecat/utils/tracing/service_decorators.py @@ -186,7 +186,7 @@ def traced_tts(func: Optional[Callable] = None, *, name: Optional[str] = None) - add_tts_span_attributes( span=span, service_name=service_class_name, - model=getattr(self, "model_name", "unknown"), + model=getattr(self, "model_name") or "unknown", voice_id=getattr(self, "_voice_id", "unknown"), text=text, settings=getattr(self, "_settings", {}), @@ -585,8 +585,10 @@ def traced_gemini_live(operation: str) -> Callable: ) as current_span: try: # Base service attributes - model_name = getattr( - self, "model_name", getattr(self, "_model_name", "unknown") + model_name = ( + getattr(self, "model_name", None) + or getattr(self, "_model_name", None) + or "unknown" ) voice_id = getattr(self, "_voice_id", None) language_code = getattr(self, "_language_code", None) @@ -890,8 +892,10 @@ def traced_openai_realtime(operation: str) -> Callable: ) as current_span: try: # Base service attributes - model_name = getattr( - self, "model_name", getattr(self, "_model_name", "unknown") + model_name = ( + getattr(self, "model_name", None) + or getattr(self, "_model_name", None) + or "unknown" ) # Operation-specific attribute collection