diff --git a/src/pipecat/services/openai/responses/llm.py b/src/pipecat/services/openai/responses/llm.py index 4f0c81dc7..8c7269323 100644 --- a/src/pipecat/services/openai/responses/llm.py +++ b/src/pipecat/services/openai/responses/llm.py @@ -292,6 +292,8 @@ class OpenAIResponsesLLMService(LLMService): model = getattr(response, "model", None) if model: + # This field is used by @traced_llm for more detailed + # model name in tracing spans self._full_model_name = model # Process any function calls diff --git a/src/pipecat/utils/tracing/service_decorators.py b/src/pipecat/utils/tracing/service_decorators.py index f4764d248..5292a5d3f 100644 --- a/src/pipecat/utils/tracing/service_decorators.py +++ b/src/pipecat/utils/tracing/service_decorators.py @@ -51,8 +51,10 @@ def _get_model_name(service) -> str: check all the places we used to store it. """ return ( - getattr(getattr(service, "_settings", None), "model", None) - or getattr(service, "_full_model_name", None) + # Some services store an API-response-provided detailed "full" name, + # which is distinct from the user-provided model name + getattr(service, "_full_model_name", None) + or getattr(getattr(service, "_settings", None), "model", None) or getattr(service, "model_name", None) or getattr(service, "_model_name", None) or "unknown"