@@ -384,34 +384,44 @@ def _get_span_status(span: Span[Any]) -> Status:
384384 return Status (StatusCode .OK )
385385
386386
387+ _SPAN_NAME_BASE_OVERRIDES : dict [str , str ] = {
388+ GenAIOperationName .SPEECH : "speech" ,
389+ GenAIOperationName .GUARDRAIL : "guardrail" ,
390+ GenAIOperationName .HANDOFF : "handoff" ,
391+ }
392+
393+
387394def get_span_name (
388395 operation_name : str ,
389396 model : Optional [str ] = None ,
390397 agent_name : Optional [str ] = None ,
391398 tool_name : Optional [str ] = None ,
392399) -> str :
393400 """Generate spec-compliant span name based on operation type."""
394- if operation_name == GenAIOperationName .CHAT :
395- return f"chat { model } " if model else "chat"
396- elif operation_name == GenAIOperationName .TEXT_COMPLETION :
397- return f"text_completion { model } " if model else "text_completion"
398- elif operation_name == GenAIOperationName .EMBEDDINGS :
399- return f"embeddings { model } " if model else "embeddings"
400- elif operation_name == GenAIOperationName .CREATE_AGENT :
401- return f"create_agent { agent_name } " if agent_name else "create_agent"
402- elif operation_name == GenAIOperationName .INVOKE_AGENT :
403- return f"invoke_agent { agent_name } " if agent_name else "invoke_agent"
404- elif operation_name == GenAIOperationName .EXECUTE_TOOL :
405- return f"execute_tool { tool_name } " if tool_name else "execute_tool"
406- elif operation_name == GenAIOperationName .TRANSCRIPTION :
407- return f"transcription { model } " if model else "transcription"
408- elif operation_name == GenAIOperationName .SPEECH :
409- return f"speech { model } " if model else "speech"
410- elif operation_name == GenAIOperationName .GUARDRAIL :
411- return "guardrail"
412- elif operation_name == GenAIOperationName .HANDOFF :
413- return f"handoff { agent_name } " if agent_name else "handoff"
414- return operation_name
401+ base_name = _SPAN_NAME_BASE_OVERRIDES .get (operation_name , operation_name )
402+
403+ if operation_name in {
404+ GenAIOperationName .CHAT ,
405+ GenAIOperationName .TEXT_COMPLETION ,
406+ GenAIOperationName .EMBEDDINGS ,
407+ GenAIOperationName .TRANSCRIPTION ,
408+ GenAIOperationName .SPEECH ,
409+ }:
410+ return f"{ base_name } { model } " if model else base_name
411+
412+ if operation_name == GenAIOperationName .CREATE_AGENT :
413+ return f"{ base_name } { agent_name } " if agent_name else base_name
414+
415+ if operation_name == GenAIOperationName .INVOKE_AGENT :
416+ return f"{ base_name } { agent_name } " if agent_name else base_name
417+
418+ if operation_name == GenAIOperationName .EXECUTE_TOOL :
419+ return f"{ base_name } { tool_name } " if tool_name else base_name
420+
421+ if operation_name == GenAIOperationName .HANDOFF :
422+ return f"{ base_name } { agent_name } " if agent_name else base_name
423+
424+ return base_name
415425
416426
417427class GenAISemanticProcessor (TracingProcessor ):
0 commit comments