telemetry-dev-litellm 0.2.0__tar.gz → 0.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: telemetry-dev-litellm
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: LiteLLM integration for telemetry.dev Python SDK
5
5
  Keywords: telemetry,opentelemetry,llm,genai,litellm,tracing
6
6
  Author: telemetry.dev
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.11
14
14
  Classifier: Programming Language :: Python :: 3.12
15
15
  Classifier: Programming Language :: Python :: 3.13
16
16
  Classifier: Typing :: Typed
17
- Requires-Dist: telemetry-dev>=0.2.9
17
+ Requires-Dist: telemetry-dev>=0.3.0
18
18
  Requires-Dist: litellm>=1.90.2,<2.0
19
19
  Requires-Dist: opentelemetry-api>=1.39.0,<2
20
20
  Requires-Python: >=3.10, <3.14
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "telemetry-dev-litellm"
3
- version = "0.2.0"
3
+ version = "0.2.2"
4
4
  description = "LiteLLM integration for telemetry.dev Python SDK"
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -25,7 +25,7 @@ classifiers = [
25
25
  "Typing :: Typed",
26
26
  ]
27
27
  dependencies = [
28
- "telemetry-dev>=0.2.9",
28
+ "telemetry-dev>=0.3.0",
29
29
  "litellm>=1.90.2,<2.0",
30
30
  "opentelemetry-api>=1.39.0,<2",
31
31
  ]
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "telemetry-dev-litellm"
3
- version = "0.2.0"
3
+ version = "0.2.2"
4
4
  description = "LiteLLM integration for telemetry.dev Python SDK"
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -19,7 +19,7 @@ classifiers = [
19
19
  "Typing :: Typed",
20
20
  ]
21
21
  dependencies = [
22
- "telemetry-dev>=0.2.9",
22
+ "telemetry-dev>=0.3.0",
23
23
  "litellm>=1.90.2,<2.0",
24
24
  "opentelemetry-api>=1.39.0,<2",
25
25
  ]
@@ -15,7 +15,7 @@ import litellm
15
15
  import telemetry_dev
16
16
  from opentelemetry import trace
17
17
 
18
- __version__ = "0.2.0"
18
+ __version__ = "0.2.2"
19
19
 
20
20
  RequestMapper = Callable[[tuple[Any, ...], Mapping[str, Any]], tuple[str, dict[str, Any]]]
21
21
  ResponseMapper = Callable[[Any], dict[str, Any]]
@@ -455,6 +455,12 @@ def _output_type(response_format: Any) -> str | None:
455
455
  return kind
456
456
 
457
457
 
458
+ def _prompt_attributes(messages: object) -> dict[str, Any]:
459
+ # Older cores have no prompt_attributes_for and record a prompt only inside with_prompt.
460
+ read = getattr(telemetry_dev, "prompt_attributes_for", None)
461
+ return cast("dict[str, Any]", read(messages)) if callable(read) else {}
462
+
463
+
458
464
  def _completion_request(
459
465
  args: tuple[Any, ...], kwargs: Mapping[str, Any]
460
466
  ) -> tuple[str, dict[str, Any]]:
@@ -478,6 +484,7 @@ def _completion_request(
478
484
  "presence_penalty": _number(kwargs.get("presence_penalty")),
479
485
  "output_type": _output_type(kwargs.get("response_format")),
480
486
  "metadata": _request_metadata(kwargs),
487
+ "attributes": _prompt_attributes(_arg(args, kwargs, "messages", 1)) or None,
481
488
  },
482
489
  )
483
490
 
@@ -545,7 +552,10 @@ def _responses_request(
545
552
  input_budget: telemetry_dev.CaptureBudget | None = None
546
553
  if capture_input:
547
554
  input_value, input_budget = _bounded_responses_native(_arg(args, kwargs, "input", 0))
548
- attributes: dict[str, Any] = {"gen_ai.operation.name": "chat"}
555
+ attributes: dict[str, Any] = {
556
+ "gen_ai.operation.name": "chat",
557
+ **_prompt_attributes(_arg(args, kwargs, "input", 0)),
558
+ }
549
559
  if input_budget is not None and input_budget.truncated:
550
560
  attributes["telemetry.dev.capture.truncated"] = True
551
561
  return (