ragaai-catalyst 2.1b4__py3-none-any.whl → 2.1.1b0__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.
- ragaai_catalyst/tracers/agentic_tracing/agent_tracer.py +13 -6
- ragaai_catalyst/tracers/agentic_tracing/agentic_tracing.py +38 -4
- ragaai_catalyst/tracers/agentic_tracing/llm_tracer.py +6 -33
- {ragaai_catalyst-2.1b4.dist-info → ragaai_catalyst-2.1.1b0.dist-info}/METADATA +3 -3
- {ragaai_catalyst-2.1b4.dist-info → ragaai_catalyst-2.1.1b0.dist-info}/RECORD +7 -7
- {ragaai_catalyst-2.1b4.dist-info → ragaai_catalyst-2.1.1b0.dist-info}/WHEEL +0 -0
- {ragaai_catalyst-2.1b4.dist-info → ragaai_catalyst-2.1.1b0.dist-info}/top_level.txt +0 -0
@@ -20,16 +20,23 @@ class AgentTracerMixin:
|
|
20
20
|
self.agent_children = contextvars.ContextVar("agent_children", default=[])
|
21
21
|
self.component_network_calls = contextvars.ContextVar("component_network_calls", default={})
|
22
22
|
self.component_user_interaction = contextvars.ContextVar("component_user_interaction", default={})
|
23
|
+
self.version = contextvars.ContextVar("version", default="1.0.0")
|
24
|
+
self.agent_type = contextvars.ContextVar("agent_type", default="generic")
|
25
|
+
self.capabilities = contextvars.ContextVar("capabilities", default=[])
|
26
|
+
self.start_time = contextvars.ContextVar("start_time", default=None)
|
27
|
+
self.input_data = contextvars.ContextVar("input_data", default=None)
|
23
28
|
self.gt = None
|
24
29
|
|
25
30
|
|
26
|
-
def trace_agent(self, name: str, agent_type: str =
|
31
|
+
def trace_agent(self, name: str, agent_type: str = None, version: str = None, capabilities: List[str] = None):
|
27
32
|
def decorator(target):
|
28
33
|
# Check if target is a class
|
29
34
|
is_class = isinstance(target, type)
|
30
35
|
tracer = self # Store reference to tracer instance
|
31
36
|
top_level_hash_id = generate_unique_hash_simple(target) # Generate hash based on the decorated target code
|
32
|
-
|
37
|
+
self.version.set(version)
|
38
|
+
self.agent_type.set(agent_type)
|
39
|
+
self.capabilities.set(capabilities)
|
33
40
|
|
34
41
|
if is_class:
|
35
42
|
# Store original __init__
|
@@ -160,6 +167,8 @@ class AgentTracerMixin:
|
|
160
167
|
return func(*args, **kwargs)
|
161
168
|
|
162
169
|
start_time = datetime.now()
|
170
|
+
self.start_time = start_time
|
171
|
+
self.input_data = self._sanitize_input(args, kwargs)
|
163
172
|
start_memory = psutil.Process().memory_info().rss
|
164
173
|
component_id = str(uuid.uuid4())
|
165
174
|
|
@@ -206,12 +215,11 @@ class AgentTracerMixin:
|
|
206
215
|
start_time=start_time,
|
207
216
|
end_time=end_time,
|
208
217
|
memory_used=memory_used,
|
209
|
-
input_data=self.
|
218
|
+
input_data=self.input_data,
|
210
219
|
output_data=self._sanitize_output(result),
|
211
220
|
children=children,
|
212
221
|
parent_id=parent_agent_id
|
213
222
|
)
|
214
|
-
|
215
223
|
# Add ground truth to component data if present
|
216
224
|
if ground_truth is not None:
|
217
225
|
agent_component["data"]["gt"] = ground_truth
|
@@ -253,13 +261,12 @@ class AgentTracerMixin:
|
|
253
261
|
start_time=start_time,
|
254
262
|
end_time=datetime.now(),
|
255
263
|
memory_used=0,
|
256
|
-
input_data=self.
|
264
|
+
input_data=self.input_data,
|
257
265
|
output_data=None,
|
258
266
|
error=error_component,
|
259
267
|
children=children,
|
260
268
|
parent_id=parent_agent_id # Add parent ID if exists
|
261
269
|
)
|
262
|
-
|
263
270
|
# If this is a nested agent, add it to parent's children
|
264
271
|
if parent_agent_id:
|
265
272
|
parent_component = self._agent_components.get(parent_agent_id)
|
@@ -164,12 +164,11 @@ class AgenticTracing(BaseTracer, LLMTracerMixin, ToolTracerMixin, AgentTracerMix
|
|
164
164
|
self.trace.metadata.total_cost = total_cost
|
165
165
|
self.trace.metadata.total_tokens = total_tokens
|
166
166
|
|
167
|
-
def add_component(self, component_data: dict):
|
167
|
+
def add_component(self, component_data: dict, is_error: bool = False):
|
168
168
|
"""Add a component to the trace data"""
|
169
169
|
# Convert dict to appropriate Component type
|
170
170
|
filtered_data = {k: v for k, v in component_data.items() if k in ["id", "hash_id", "type", "name", "start_time", "end_time", "parent_id", "info", "data", "network_calls", "interactions", "error"]}
|
171
171
|
|
172
|
-
|
173
172
|
if component_data["type"] == "llm":
|
174
173
|
component = LLMComponent(**filtered_data)
|
175
174
|
elif component_data["type"] == "agent":
|
@@ -179,8 +178,6 @@ class AgenticTracing(BaseTracer, LLMTracerMixin, ToolTracerMixin, AgentTracerMix
|
|
179
178
|
else:
|
180
179
|
component = Component(**component_data)
|
181
180
|
|
182
|
-
# import pdb; pdb.set_trace()
|
183
|
-
|
184
181
|
# Check if there's an active agent context
|
185
182
|
current_agent_id = self.current_agent_id.get()
|
186
183
|
if current_agent_id and component_data["type"] in ["llm", "tool"]:
|
@@ -191,6 +188,43 @@ class AgenticTracing(BaseTracer, LLMTracerMixin, ToolTracerMixin, AgentTracerMix
|
|
191
188
|
else:
|
192
189
|
# Add component to the main trace
|
193
190
|
super().add_component(component)
|
191
|
+
|
192
|
+
# Handle error case
|
193
|
+
if is_error:
|
194
|
+
# Get the parent component if it exists
|
195
|
+
parent_id = component_data.get("parent_id")
|
196
|
+
children = self.agent_children.get()
|
197
|
+
|
198
|
+
# Set parent_id for all children
|
199
|
+
for child in children:
|
200
|
+
child["parent_id"] = parent_id
|
201
|
+
|
202
|
+
agent_tracer_mixin = AgentTracerMixin()
|
203
|
+
agent_tracer_mixin.component_network_calls = self.component_network_calls
|
204
|
+
agent_tracer_mixin.component_user_interaction = self.component_user_interaction
|
205
|
+
|
206
|
+
# Create parent component with error info
|
207
|
+
parent_component = agent_tracer_mixin.create_agent_component(
|
208
|
+
component_id=parent_id,
|
209
|
+
hash_id=str(uuid.uuid4()),
|
210
|
+
name=self.current_agent_name.get(),
|
211
|
+
agent_type=self.agent_type.get(),
|
212
|
+
version=self.version.get(),
|
213
|
+
capabilities=self.capabilities.get(),
|
214
|
+
start_time=self.start_time,
|
215
|
+
end_time=datetime.now(),
|
216
|
+
memory_used=0,
|
217
|
+
input_data=self.input_data,
|
218
|
+
output_data=None,
|
219
|
+
children=children,
|
220
|
+
parent_id=None # Add parent ID if exists
|
221
|
+
)
|
222
|
+
|
223
|
+
filtered_data = {k: v for k, v in parent_component.items() if k in ["id", "hash_id", "type", "name", "start_time", "end_time", "parent_id", "info", "data", "network_calls", "interactions", "error"]}
|
224
|
+
parent_agent_component = AgentComponent(**filtered_data)
|
225
|
+
# Add the parent component to trace and stop tracing
|
226
|
+
super().add_component(parent_agent_component)
|
227
|
+
self.stop()
|
194
228
|
|
195
229
|
def __enter__(self):
|
196
230
|
"""Context manager entry"""
|
@@ -501,12 +501,6 @@ class LLMTracerMixin:
|
|
501
501
|
name = self.current_llm_call_name.get()
|
502
502
|
if name is None:
|
503
503
|
name = original_func.__name__
|
504
|
-
|
505
|
-
end_memory = psutil.Process().memory_info().rss
|
506
|
-
memory_used = max(0, end_memory - start_memory)
|
507
|
-
|
508
|
-
# Get parent agent ID if exists
|
509
|
-
parent_agent_id = self.current_agent_id.get() if hasattr(self, 'current_agent_id') else None
|
510
504
|
|
511
505
|
llm_component = self.create_llm_component(
|
512
506
|
component_id=component_id,
|
@@ -514,24 +508,15 @@ class LLMTracerMixin:
|
|
514
508
|
name=name,
|
515
509
|
llm_type="unknown",
|
516
510
|
version="1.0.0",
|
517
|
-
memory_used=
|
511
|
+
memory_used=0,
|
518
512
|
start_time=start_time,
|
519
513
|
end_time=end_time,
|
520
514
|
input_data=self._extract_input_data(args, kwargs, None),
|
521
515
|
output_data=None,
|
522
|
-
error=error_component
|
523
|
-
parent_id=parent_agent_id
|
516
|
+
error=error_component
|
524
517
|
)
|
525
518
|
|
526
|
-
|
527
|
-
if parent_agent_id and hasattr(self, 'agent_children'):
|
528
|
-
parent_children = self.agent_children.get()
|
529
|
-
parent_children.append(llm_component)
|
530
|
-
self.agent_children.set(parent_children)
|
531
|
-
else:
|
532
|
-
# Only add to root components if no parent
|
533
|
-
self.add_component(llm_component)
|
534
|
-
|
519
|
+
self.add_component(llm_component)
|
535
520
|
raise
|
536
521
|
|
537
522
|
def trace_llm_call_sync(self, original_func, *args, **kwargs):
|
@@ -618,9 +603,6 @@ class LLMTracerMixin:
|
|
618
603
|
end_memory = psutil.Process().memory_info().rss
|
619
604
|
memory_used = max(0, end_memory - start_memory)
|
620
605
|
|
621
|
-
# Get parent agent ID if exists
|
622
|
-
parent_agent_id = self.current_agent_id.get() if hasattr(self, 'current_agent_id') else None
|
623
|
-
|
624
606
|
llm_component = self.create_llm_component(
|
625
607
|
component_id=component_id,
|
626
608
|
hash_id=hash_id,
|
@@ -632,22 +614,14 @@ class LLMTracerMixin:
|
|
632
614
|
end_time=end_time,
|
633
615
|
input_data=self._extract_input_data(args, kwargs, None),
|
634
616
|
output_data=None,
|
635
|
-
error=error_component
|
636
|
-
parent_id=parent_agent_id
|
617
|
+
error=error_component
|
637
618
|
)
|
638
619
|
|
639
|
-
|
640
|
-
if parent_agent_id and hasattr(self, 'agent_children'):
|
641
|
-
parent_children = self.agent_children.get()
|
642
|
-
parent_children.append(llm_component)
|
643
|
-
self.agent_children.set(parent_children)
|
644
|
-
else:
|
645
|
-
# Only add to root components if no parent
|
646
|
-
self.add_component(llm_component)
|
647
|
-
|
620
|
+
self.add_component(llm_component, is_error=True)
|
648
621
|
raise
|
649
622
|
|
650
623
|
def trace_llm(self, name: str = None):
|
624
|
+
self.current_llm_call_name.set(name)
|
651
625
|
def decorator(func):
|
652
626
|
@self.file_tracker.trace_decorator
|
653
627
|
@functools.wraps(func)
|
@@ -661,7 +635,6 @@ class LLMTracerMixin:
|
|
661
635
|
parent_agent_id = self.current_agent_id.get()
|
662
636
|
self.start_component(component_id)
|
663
637
|
|
664
|
-
start_time = datetime.now()
|
665
638
|
error_info = None
|
666
639
|
result = None
|
667
640
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ragaai_catalyst
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.1.1b0
|
4
4
|
Summary: RAGA AI CATALYST
|
5
5
|
Author-email: Kiran Scaria <kiran.scaria@raga.ai>, Kedar Gaikwad <kedar.gaikwad@raga.ai>, Dushyant Mahajan <dushyant.mahajan@raga.ai>, Siddhartha Kosti <siddhartha.kosti@raga.ai>, Ritika Goel <ritika.goel@raga.ai>, Vijay Chaurasia <vijay.chaurasia@raga.ai>
|
6
|
-
Requires-Python:
|
6
|
+
Requires-Python: <3.13,>=3.9
|
7
7
|
Description-Content-Type: text/markdown
|
8
8
|
Requires-Dist: aiohttp>=3.10.2
|
9
9
|
Requires-Dist: opentelemetry-api==1.25.0
|
@@ -27,7 +27,7 @@ Requires-Dist: Markdown>=3.7
|
|
27
27
|
Requires-Dist: litellm==1.51.1
|
28
28
|
Requires-Dist: tenacity==8.3.0
|
29
29
|
Requires-Dist: tqdm>=4.66.5
|
30
|
-
Requires-Dist: llama-index
|
30
|
+
Requires-Dist: llama-index~=0.10
|
31
31
|
Requires-Dist: pyopenssl>=24.2.1
|
32
32
|
Requires-Dist: psutil~=6.0.0
|
33
33
|
Requires-Dist: py-cpuinfo~=9.0.0
|
@@ -16,12 +16,12 @@ ragaai_catalyst/tracers/llamaindex_callback.py,sha256=vPE7MieKjfwLrLUnnPs20Df0xN
|
|
16
16
|
ragaai_catalyst/tracers/tracer.py,sha256=dGYQfo0RXms6w-sAJf04gqTo1zOXTqreGXaJlnvK48A,12463
|
17
17
|
ragaai_catalyst/tracers/upload_traces.py,sha256=hs0PEmit3n3_uUqrdbwcBdyK5Nbkik3JQVwJMEwYTd4,4796
|
18
18
|
ragaai_catalyst/tracers/agentic_tracing/__init__.py,sha256=6QyQI8P7aNFHTantNJOP1ZdSNrDKBLhlg_gGNj7tm1c,73
|
19
|
-
ragaai_catalyst/tracers/agentic_tracing/agent_tracer.py,sha256=
|
20
|
-
ragaai_catalyst/tracers/agentic_tracing/agentic_tracing.py,sha256=
|
19
|
+
ragaai_catalyst/tracers/agentic_tracing/agent_tracer.py,sha256=oLe5QtrndaO-sBAHvxUPfj9GB_EwQbi0T3JwjcqmvtY,21388
|
20
|
+
ragaai_catalyst/tracers/agentic_tracing/agentic_tracing.py,sha256=yqWu_xnKfLE6nVYM0TqaAYLI_tzy5Z2wZwgA9-Gjppo,10218
|
21
21
|
ragaai_catalyst/tracers/agentic_tracing/base.py,sha256=jRf_-5EIfCzGbaSQtkqgiDQAH4ymoKUrg9A8YqB08jk,14008
|
22
22
|
ragaai_catalyst/tracers/agentic_tracing/data_structure.py,sha256=wkZctMTUQUViqKrHhdZiMERSBVfwURAJ-lFlQUou638,7395
|
23
23
|
ragaai_catalyst/tracers/agentic_tracing/file_name_tracker.py,sha256=515NNDQJTyy3O-2rdlUYUoWL9qSwLIfvV3sMB9BtHp8,1366
|
24
|
-
ragaai_catalyst/tracers/agentic_tracing/llm_tracer.py,sha256=
|
24
|
+
ragaai_catalyst/tracers/agentic_tracing/llm_tracer.py,sha256=BpazvaHy9YBsnizQMIEZoRlan7DiM7pCUO9u-RSYiXo,32721
|
25
25
|
ragaai_catalyst/tracers/agentic_tracing/network_tracer.py,sha256=6FTA15xMnum9omM_0Jd9cMIuWdKu1gR5Tc8fOXAkP8E,10068
|
26
26
|
ragaai_catalyst/tracers/agentic_tracing/sample.py,sha256=S4rCcKzU_5SB62BYEbNn_1VbbTdG4396N8rdZ3ZNGcE,5654
|
27
27
|
ragaai_catalyst/tracers/agentic_tracing/tool_tracer.py,sha256=Yc4x82rk0hCANwXUt4M66Qv_4OdpsXsjlq6OIOef1io,8763
|
@@ -50,7 +50,7 @@ ragaai_catalyst/tracers/instrumentators/llamaindex.py,sha256=SMrRlR4xM7k9HK43hak
|
|
50
50
|
ragaai_catalyst/tracers/instrumentators/openai.py,sha256=14R4KW9wQCR1xysLfsP_nxS7cqXrTPoD8En4MBAaZUU,379
|
51
51
|
ragaai_catalyst/tracers/utils/__init__.py,sha256=KeMaZtYaTojilpLv65qH08QmpYclfpacDA0U3wg6Ybw,64
|
52
52
|
ragaai_catalyst/tracers/utils/utils.py,sha256=ViygfJ7vZ7U0CTSA1lbxVloHp4NSlmfDzBRNCJuMhis,2374
|
53
|
-
ragaai_catalyst-2.
|
54
|
-
ragaai_catalyst-2.
|
55
|
-
ragaai_catalyst-2.
|
56
|
-
ragaai_catalyst-2.
|
53
|
+
ragaai_catalyst-2.1.1b0.dist-info/METADATA,sha256=qAtdLG3fZX-NLrkgejCFS-aIna4O_suzsle3OKByqew,1801
|
54
|
+
ragaai_catalyst-2.1.1b0.dist-info/WHEEL,sha256=A3WOREP4zgxI0fKrHUG8DC8013e3dK3n7a6HDbcEIwE,91
|
55
|
+
ragaai_catalyst-2.1.1b0.dist-info/top_level.txt,sha256=HpgsdRgEJMk8nqrU6qdCYk3di7MJkDL0B19lkc7dLfM,16
|
56
|
+
ragaai_catalyst-2.1.1b0.dist-info/RECORD,,
|
File without changes
|
File without changes
|