ragaai-catalyst 2.0.7.2b1__py3-none-any.whl → 2.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.
Files changed (29) hide show
  1. ragaai_catalyst/dataset.py +0 -3
  2. ragaai_catalyst/evaluation.py +1 -2
  3. ragaai_catalyst/tracers/__init__.py +1 -1
  4. ragaai_catalyst/tracers/agentic_tracing/agent_tracer.py +231 -74
  5. ragaai_catalyst/tracers/agentic_tracing/agentic_tracing.py +32 -42
  6. ragaai_catalyst/tracers/agentic_tracing/base.py +132 -30
  7. ragaai_catalyst/tracers/agentic_tracing/data_structure.py +91 -79
  8. ragaai_catalyst/tracers/agentic_tracing/examples/FinancialAnalysisSystem.ipynb +536 -0
  9. ragaai_catalyst/tracers/agentic_tracing/examples/GameActivityEventPlanner.ipynb +134 -0
  10. ragaai_catalyst/tracers/agentic_tracing/examples/TravelPlanner.ipynb +563 -0
  11. ragaai_catalyst/tracers/agentic_tracing/file_name_tracker.py +46 -0
  12. ragaai_catalyst/tracers/agentic_tracing/llm_tracer.py +262 -356
  13. ragaai_catalyst/tracers/agentic_tracing/tool_tracer.py +31 -19
  14. ragaai_catalyst/tracers/agentic_tracing/unique_decorator.py +61 -117
  15. ragaai_catalyst/tracers/agentic_tracing/upload_agentic_traces.py +187 -0
  16. ragaai_catalyst/tracers/agentic_tracing/upload_code.py +115 -0
  17. ragaai_catalyst/tracers/agentic_tracing/user_interaction_tracer.py +35 -59
  18. ragaai_catalyst/tracers/agentic_tracing/utils/llm_utils.py +0 -4
  19. ragaai_catalyst/tracers/agentic_tracing/utils/model_costs.json +2201 -324
  20. ragaai_catalyst/tracers/agentic_tracing/zip_list_of_unique_files.py +186 -0
  21. ragaai_catalyst/tracers/exporters/raga_exporter.py +1 -7
  22. ragaai_catalyst/tracers/llamaindex_callback.py +56 -60
  23. ragaai_catalyst/tracers/tracer.py +6 -2
  24. ragaai_catalyst/tracers/upload_traces.py +46 -57
  25. {ragaai_catalyst-2.0.7.2b1.dist-info → ragaai_catalyst-2.1.dist-info}/METADATA +8 -4
  26. {ragaai_catalyst-2.0.7.2b1.dist-info → ragaai_catalyst-2.1.dist-info}/RECORD +28 -22
  27. {ragaai_catalyst-2.0.7.2b1.dist-info → ragaai_catalyst-2.1.dist-info}/WHEEL +1 -1
  28. ragaai_catalyst/tracers/agentic_tracing/Untitled-1.json +0 -660
  29. {ragaai_catalyst-2.0.7.2b1.dist-info → ragaai_catalyst-2.1.dist-info}/top_level.txt +0 -0
@@ -1,67 +1,43 @@
1
1
  import builtins
2
- from contextlib import contextmanager, asynccontextmanager
3
2
  from datetime import datetime
4
-
5
- from ..data import UserInteractionModel
6
-
3
+ import contextvars
4
+ import inspect
5
+ import uuid
7
6
 
8
7
  class UserInteractionTracer:
9
- def __init__(self, tracer):
10
- self.tracer = tracer
8
+ def __init__(self, *args, **kwargs):
9
+ self.project_id = contextvars.ContextVar("project_id", default=None)
10
+ self.trace_id = contextvars.ContextVar("trace_id", default=None)
11
+ self.tracer = contextvars.ContextVar("tracer", default=None)
12
+ self.component_id = contextvars.ContextVar("component_id", default=None)
11
13
  self.original_input = builtins.input
12
14
  self.original_print = builtins.print
15
+ self.interactions = []
13
16
 
14
- def input(self, prompt=""):
15
- content = prompt
16
- user_input = self.original_input(prompt)
17
- self._log_interaction("input", user_input)
18
- return user_input
19
-
20
- def print(self, *args, **kwargs):
21
- content = " ".join(str(arg) for arg in args)
22
- self._log_interaction("output", content)
23
- self.original_print(*args, **kwargs)
24
-
25
- def _log_interaction(self, interaction_type, content):
26
- agent_id = self.tracer.current_agent_id.get()
27
- user_interaction = UserInteractionModel(
28
- project_id=self.tracer.project_id,
29
- trace_id=self.tracer.trace_id,
30
- agent_id=agent_id,
31
- interaction_type=interaction_type,
32
- content=content,
33
- timestamp=datetime.now(),
34
- )
35
- with self.tracer.Session() as session:
36
- session.add(user_interaction)
37
- session.commit()
38
-
39
- # Also add to trace data
40
- self.tracer.trace_data.setdefault("user_interactions", []).append(
41
- {
42
- "interaction_type": interaction_type,
43
- "content": content,
44
- "timestamp": datetime.now(),
45
- "agent_id": agent_id,
46
- }
47
- )
48
-
49
- @contextmanager
50
- def capture(self):
51
- builtins.input = self.input
52
- builtins.print = self.print
17
+ def traced_input(self, prompt=""):
18
+ # Get caller information
19
+ if prompt:
20
+ self.traced_print(prompt, end="")
53
21
  try:
54
- yield
55
- finally:
56
- builtins.input = self.original_input
57
- builtins.print = self.original_print
58
-
59
- @asynccontextmanager
60
- async def async_capture(self):
61
- builtins.input = self.input
62
- builtins.print = self.print
63
- try:
64
- yield
65
- finally:
66
- builtins.input = self.original_input
67
- builtins.print = self.original_print
22
+ content = self.original_input()
23
+ except EOFError:
24
+ content = "" # Return empty string on EOF
25
+
26
+ self.interactions.append({
27
+ "id": str(uuid.uuid4()),
28
+ "interaction_type": "input",
29
+ "content": content,
30
+ "timestamp": datetime.now().isoformat()
31
+ })
32
+ return content
33
+
34
+ def traced_print(self, *args, **kwargs):
35
+ content = " ".join(str(arg) for arg in args)
36
+
37
+ self.interactions.append({
38
+ "id": str(uuid.uuid4()),
39
+ "interaction_type": "output",
40
+ "content": content,
41
+ "timestamp": datetime.now().isoformat()
42
+ })
43
+ return self.original_print(*args, **kwargs)
@@ -23,10 +23,6 @@ except FileNotFoundError:
23
23
 
24
24
 
25
25
  def extract_llm_output(result):
26
-
27
- # import pdb
28
-
29
- # pdb.set_trace()
30
26
  # Initialize variables
31
27
  model_name = None
32
28
  output_response = ""