opentelemetry-instrumentation-crewai 0.43.1__py3-none-any.whl → 0.44.1__py3-none-any.whl

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,4 +1,5 @@
1
1
  from opentelemetry.trace import Span
2
+ from opentelemetry.semconv_ai import SpanAttributes
2
3
  import json
3
4
 
4
5
 
@@ -13,7 +14,7 @@ class CrewAISpanAttributes:
13
14
  def __init__(self, span: Span, instance) -> None:
14
15
  self.span = span
15
16
  self.instance = instance
16
- self.crew = {"tasks": [], "agents": [], "llms": []}
17
+ self.crew = {"tasks": [], "agents": []}
17
18
  self.process_instance()
18
19
 
19
20
  def process_instance(self):
@@ -44,9 +45,37 @@ class CrewAISpanAttributes:
44
45
  self._set_attribute(f"crewai.task.{key}", value)
45
46
 
46
47
  def _process_llm(self):
47
- llm_data = self._populate_llm_attributes()
48
- for key, value in llm_data.items():
49
- self._set_attribute(f"crewai.llm.{key}", value)
48
+ fields = [
49
+ "model",
50
+ "temperature",
51
+ "top_p",
52
+ "n",
53
+ "stop",
54
+ "max_completion_tokens",
55
+ "max_tokens",
56
+ "presence_penalty",
57
+ "frequency_penalty",
58
+ "seed"
59
+ ]
60
+
61
+ for field in fields:
62
+ value = getattr(self.instance, field, None)
63
+ if value is None:
64
+ continue
65
+ if field == "model":
66
+ self._set_attribute(SpanAttributes.LLM_REQUEST_MODEL, value)
67
+ elif field == "temperature":
68
+ self._set_attribute(SpanAttributes.LLM_REQUEST_TEMPERATURE, value)
69
+ elif field == "top_p":
70
+ self._set_attribute(SpanAttributes.LLM_REQUEST_TOP_P, value)
71
+ elif field == "max_tokens":
72
+ self._set_attribute(SpanAttributes.LLM_REQUEST_MAX_TOKENS, value)
73
+ elif field == "presence_penalty":
74
+ self._set_attribute(SpanAttributes.LLM_PRESENCE_PENALTY, value)
75
+ elif field == "frequency_penalty":
76
+ self._set_attribute(SpanAttributes.LLM_FREQUENCY_PENALTY, value)
77
+ else:
78
+ self._set_attribute(f"llm.{field}", value)
50
79
 
51
80
  def _populate_crew_attributes(self):
52
81
  for key, value in self.instance.__dict__.items():
@@ -56,8 +85,6 @@ class CrewAISpanAttributes:
56
85
  self._parse_tasks(value)
57
86
  elif key == "agents":
58
87
  self._parse_agents(value)
59
- elif key == "llms":
60
- self._parse_llms(value)
61
88
  else:
62
89
  self.crew[key] = str(value)
63
90
 
@@ -92,20 +119,6 @@ class CrewAISpanAttributes:
92
119
  for task in tasks
93
120
  ]
94
121
 
95
- def _parse_llms(self, llms):
96
- self.crew["tasks"] = [
97
- {
98
- "temperature": llm.temperature,
99
- "max_tokens": llm.max_tokens,
100
- "max_completion_tokens": llm.max_completion_tokens,
101
- "top_p": llm.top_p,
102
- "n": llm.n,
103
- "seed": llm.seed,
104
- "base_url": llm.base_url,
105
- "api_version": llm.api_version, }
106
- for llm in llms
107
- ]
108
-
109
122
  def _extract_agent_data(self, agent):
110
123
  model = (
111
124
  getattr(agent.llm, "model", None)
@@ -146,5 +159,5 @@ class CrewAISpanAttributes:
146
159
  )
147
160
 
148
161
  def _set_attribute(self, key, value):
149
- if value:
162
+ if value is not None:
150
163
  set_span_attribute(self.span, key, str(value) if isinstance(value, list) else value)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: opentelemetry-instrumentation-crewai
3
- Version: 0.43.1
3
+ Version: 0.44.1
4
4
  Summary: OpenTelemetry crewAI instrumentation
5
5
  License: Apache-2.0
6
6
  Author: Gal Kleinman
@@ -1,8 +1,8 @@
1
1
  opentelemetry/instrumentation/crewai/__init__.py,sha256=zdNyWV62d5IaueXR9clUD_c9F32MF39AIchZf66XI2c,245
2
- opentelemetry/instrumentation/crewai/crewai_span_attributes.py,sha256=9ax6fn0IT4dqH2iaRG8VIZ0SWTkxQrMTiF7DWUdwfy0,4945
2
+ opentelemetry/instrumentation/crewai/crewai_span_attributes.py,sha256=9pLK-fFbbq4PQiHcj58wlh1h0PQ0zruOxccewEaPKno,5523
3
3
  opentelemetry/instrumentation/crewai/instrumentation.py,sha256=AhQpPgpgtx9DKdnRDcrCKXn4AIuErdfznxfLlfs9OTc,7913
4
4
  opentelemetry/instrumentation/crewai/version.py,sha256=ITH8IVCEQOekRajZpPo6sKNlMBNDRQRnzipIN0dqXoc,23
5
- opentelemetry_instrumentation_crewai-0.43.1.dist-info/METADATA,sha256=8Trm2dYWDWA4QKekavc_NscD5pJq_QvxUSckVKQIDeA,2095
6
- opentelemetry_instrumentation_crewai-0.43.1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
7
- opentelemetry_instrumentation_crewai-0.43.1.dist-info/entry_points.txt,sha256=4Zs98MjB2HIaX8fk8evs41x1J1xBNfztvPN428bf_b8,93
8
- opentelemetry_instrumentation_crewai-0.43.1.dist-info/RECORD,,
5
+ opentelemetry_instrumentation_crewai-0.44.1.dist-info/METADATA,sha256=DZ-I9BUBC5aduf13yvageQ88Z3iq36M7zeK-lBSOJag,2095
6
+ opentelemetry_instrumentation_crewai-0.44.1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
7
+ opentelemetry_instrumentation_crewai-0.44.1.dist-info/entry_points.txt,sha256=4Zs98MjB2HIaX8fk8evs41x1J1xBNfztvPN428bf_b8,93
8
+ opentelemetry_instrumentation_crewai-0.44.1.dist-info/RECORD,,