Skip to content

Commit

Permalink
change name ofdecorator and inline methods for undefined span kinds
Browse files Browse the repository at this point in the history
  • Loading branch information
ncybul committed Jan 8, 2025
1 parent c2ea4bb commit 354b389
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 12 deletions.
14 changes: 6 additions & 8 deletions ddtrace/llmobs/_llmobs.py
Original file line number Diff line number Diff line change
Expand Up @@ -573,13 +573,14 @@ def retrieval(
return cls._instance._start_span("retrieval", name=name, session_id=session_id, ml_app=ml_app)

@classmethod
def undefined_kind(
cls, name: Optional[str] = None, session_id: Optional[str] = None, ml_app: Optional[str] = None
def trace(
cls, kind: Optional[str] = None, name: Optional[str] = None, session_id: Optional[str] = None, ml_app: Optional[str] = None
) -> Span:
"""
Trace a generic operation. Used when the span kind is not specified,
Trace any operation. Allows for span kind to be specified and otherwise defaults to empty span kind string.
:param str name: The name of the traced operation. If not provided, a default value of "undefined" will be set.
:param str kind: The span kind of the traced operation. If not provided, the empty string will be used.
:param str name: The name of the traced operation. If not provided, the empty string will be used.
:param str session_id: The ID of the underlying user session. Required for tracking sessions.
:param str ml_app: The name of the ML application that the agent is orchestrating. If not provided, the default
value will be set to the value of `DD_LLMOBS_ML_APP`.
Expand All @@ -588,7 +589,7 @@ def undefined_kind(
"""
if cls.enabled is False:
log.warning(SPAN_START_WHILE_DISABLED_WARNING)
return cls._instance._start_span("undefined", name=name, session_id=session_id, ml_app=ml_app)
return cls._instance._start_span(kind or "", name=name, session_id=session_id, ml_app=ml_app)

@classmethod
def annotate(
Expand Down Expand Up @@ -664,9 +665,6 @@ def annotate(
span.name = _name
if prompt is not None:
cls._tag_prompt(span, prompt)
if not span_kind:
log.debug("Span kind not specified, skipping annotation for input/output data")
return
if input_data is not None or output_data is not None:
if span_kind == "llm":
cls._tag_llm_io(span, input_messages=input_data, output_messages=output_data)
Expand Down
4 changes: 1 addition & 3 deletions ddtrace/llmobs/_trace_processor.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,7 @@ def submit_llmobs_span(self, span: Span) -> None:

def _llmobs_span_event(self, span: Span) -> Tuple[Dict[str, Any], bool]:
"""Span event object structure."""
span_kind = span._get_ctx_item(SPAN_KIND)
if not span_kind:
raise KeyError("Span kind not found in span context")
span_kind = span._get_ctx_item(SPAN_KIND) or ""
meta: Dict[str, Any] = {"span.kind": span_kind, "input": {}, "output": {}}
if span_kind in ("llm", "embedding") and span._get_ctx_item(MODEL_NAME) is not None:
meta["model_name"] = span._get_ctx_item(MODEL_NAME)
Expand Down
2 changes: 1 addition & 1 deletion ddtrace/llmobs/decorators.py
Original file line number Diff line number Diff line change
Expand Up @@ -295,4 +295,4 @@ def decorator(
tool = _llmobs_decorator("tool")
retrieval = _llmobs_decorator("retrieval")
agent = _llmobs_decorator("agent")
observe = _generic_decorator("undefined_kind")
wrap = _generic_decorator("trace")

0 comments on commit 354b389

Please sign in to comment.