ragaai-catalyst 2.1b5__py3-none-any.whl → 2.1.1b1__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 (32) hide show
  1. ragaai_catalyst/tracers/agentic_tracing/README.md +97 -0
  2. ragaai_catalyst/tracers/agentic_tracing/__init__.py +4 -2
  3. ragaai_catalyst/tracers/agentic_tracing/data/__init__.py +0 -0
  4. ragaai_catalyst/tracers/agentic_tracing/{data_structure.py → data/data_structure.py} +14 -1
  5. ragaai_catalyst/tracers/agentic_tracing/tests/__init__.py +0 -0
  6. ragaai_catalyst/tracers/agentic_tracing/tracers/__init__.py +0 -0
  7. ragaai_catalyst/tracers/agentic_tracing/{agent_tracer.py → tracers/agent_tracer.py} +15 -10
  8. ragaai_catalyst/tracers/agentic_tracing/{base.py → tracers/base.py} +5 -6
  9. ragaai_catalyst/tracers/agentic_tracing/{llm_tracer.py → tracers/llm_tracer.py} +30 -246
  10. ragaai_catalyst/tracers/agentic_tracing/{agentic_tracing.py → tracers/main_tracer.py} +41 -8
  11. ragaai_catalyst/tracers/agentic_tracing/{tool_tracer.py → tracers/tool_tracer.py} +3 -3
  12. ragaai_catalyst/tracers/agentic_tracing/upload/__init__.py +0 -0
  13. ragaai_catalyst/tracers/agentic_tracing/utils/llm_utils.py +229 -43
  14. ragaai_catalyst/tracers/tracer.py +11 -12
  15. {ragaai_catalyst-2.1b5.dist-info → ragaai_catalyst-2.1.1b1.dist-info}/METADATA +3 -3
  16. ragaai_catalyst-2.1.1b1.dist-info/RECORD +60 -0
  17. ragaai_catalyst/tracers/agentic_tracing/utils/data_classes.py +0 -61
  18. ragaai_catalyst-2.1b5.dist-info/RECORD +0 -56
  19. /ragaai_catalyst/tracers/agentic_tracing/{examples → tests}/FinancialAnalysisSystem.ipynb +0 -0
  20. /ragaai_catalyst/tracers/agentic_tracing/{examples → tests}/GameActivityEventPlanner.ipynb +0 -0
  21. /ragaai_catalyst/tracers/agentic_tracing/{examples → tests}/TravelPlanner.ipynb +0 -0
  22. /ragaai_catalyst/tracers/agentic_tracing/{sample.py → tests/ai_travel_agent.py} +0 -0
  23. /ragaai_catalyst/tracers/agentic_tracing/{unique_decorator_test.py → tests/unique_decorator_test.py} +0 -0
  24. /ragaai_catalyst/tracers/agentic_tracing/{network_tracer.py → tracers/network_tracer.py} +0 -0
  25. /ragaai_catalyst/tracers/agentic_tracing/{user_interaction_tracer.py → tracers/user_interaction_tracer.py} +0 -0
  26. /ragaai_catalyst/tracers/agentic_tracing/{upload_agentic_traces.py → upload/upload_agentic_traces.py} +0 -0
  27. /ragaai_catalyst/tracers/agentic_tracing/{upload_code.py → upload/upload_code.py} +0 -0
  28. /ragaai_catalyst/tracers/agentic_tracing/{file_name_tracker.py → utils/file_name_tracker.py} +0 -0
  29. /ragaai_catalyst/tracers/agentic_tracing/{unique_decorator.py → utils/unique_decorator.py} +0 -0
  30. /ragaai_catalyst/tracers/agentic_tracing/{zip_list_of_unique_files.py → utils/zip_list_of_unique_files.py} +0 -0
  31. {ragaai_catalyst-2.1b5.dist-info → ragaai_catalyst-2.1.1b1.dist-info}/WHEEL +0 -0
  32. {ragaai_catalyst-2.1b5.dist-info → ragaai_catalyst-2.1.1b1.dist-info}/top_level.txt +0 -0
@@ -1,12 +1,12 @@
1
- import functools
2
1
  import uuid
3
2
  from datetime import datetime
4
3
  import psutil
4
+ import functools
5
5
  from typing import Optional, Any, Dict, List
6
- from .unique_decorator import generate_unique_hash_simple
6
+ from ..utils.unique_decorator import generate_unique_hash_simple, mydecorator
7
7
  import contextvars
8
8
  import asyncio
9
- from .file_name_tracker import TrackName
9
+ from ..utils.file_name_tracker import TrackName
10
10
 
11
11
 
12
12
  class ToolTracerMixin:
@@ -1,4 +1,4 @@
1
- from .data_classes import LLMCall
1
+ from ..data.data_structure import LLMCall
2
2
  from .trace_utils import (
3
3
  calculate_cost,
4
4
  convert_usage_to_dict,
@@ -7,22 +7,237 @@ from .trace_utils import (
7
7
  from importlib import resources
8
8
  import json
9
9
  import os
10
+ import asyncio
11
+ import psutil
10
12
 
11
13
 
12
- # Load the Json configuration
13
- try:
14
- current_dir = os.path.dirname(os.path.abspath(__file__))
15
- model_costs_path = os.path.join(current_dir, "model_costs.json")
16
- with open(model_costs_path, "r") as file:
17
- config = json.load(file)
18
- except FileNotFoundError:
19
- from importlib.resources import files
20
- with (files("") / "model_costs.json").open("r") as file:
21
- config = json.load(file)
14
+ def extract_model_name(args, kwargs, result):
15
+ """Extract model name from kwargs or result"""
16
+ # First try direct model parameter
17
+ model = kwargs.get("model", "")
18
+
19
+ if not model:
20
+ # Try to get from instance
21
+ instance = kwargs.get("self", None)
22
+ if instance:
23
+ # Try model_name first (Google format)
24
+ if hasattr(instance, "model_name"):
25
+ model = instance.model_name
26
+ # Try model attribute
27
+ elif hasattr(instance, "model"):
28
+ model = instance.model
29
+
30
+ # Normalize Google model names
31
+ if model and isinstance(model, str):
32
+ model = model.lower()
33
+ if "gemini-1.5-flash" in model:
34
+ return "gemini-1.5-flash"
35
+ if "gemini-1.5-pro" in model:
36
+ return "gemini-1.5-pro"
37
+ if "gemini-pro" in model:
38
+ return "gemini-pro"
22
39
 
40
+ if 'to_dict' in dir(result):
41
+ result = result.to_dict()
42
+ if 'model_version' in result:
43
+ model = result['model_version']
44
+
45
+ return model or "default"
46
+
47
+
48
+ def extract_parameters(kwargs):
49
+ """Extract all non-null parameters from kwargs"""
50
+ parameters = {k: v for k, v in kwargs.items() if v is not None}
51
+
52
+ # Remove contents key in parameters (Google LLM Response)
53
+ if 'contents' in parameters:
54
+ del parameters['contents']
55
+
56
+ # Remove messages key in parameters (OpenAI message)
57
+ if 'messages' in parameters:
58
+ del parameters['messages']
59
+
60
+ if 'generation_config' in parameters:
61
+ generation_config = parameters['generation_config']
62
+ # If generation_config is already a dict, use it directly
63
+ if isinstance(generation_config, dict):
64
+ config_dict = generation_config
65
+ else:
66
+ # Convert GenerationConfig to dictionary if it has a to_dict method, otherwise try to get its __dict__
67
+ config_dict = getattr(generation_config, 'to_dict', lambda: generation_config.__dict__)()
68
+ parameters.update(config_dict)
69
+ del parameters['generation_config']
70
+
71
+ return parameters
72
+
73
+
74
+ def extract_token_usage(result):
75
+ """Extract token usage from result"""
76
+ # Handle coroutines
77
+ if asyncio.iscoroutine(result):
78
+ # Get the current event loop
79
+ loop = asyncio.get_event_loop()
80
+ # Run the coroutine in the current event loop
81
+ result = loop.run_until_complete(result)
82
+
83
+ # Handle standard OpenAI/Anthropic format
84
+ if hasattr(result, "usage"):
85
+ usage = result.usage
86
+ return {
87
+ "prompt_tokens": getattr(usage, "prompt_tokens", 0),
88
+ "completion_tokens": getattr(usage, "completion_tokens", 0),
89
+ "total_tokens": getattr(usage, "total_tokens", 0)
90
+ }
91
+
92
+ # Handle Google GenerativeAI format with usage_metadata
93
+ if hasattr(result, "usage_metadata"):
94
+ metadata = result.usage_metadata
95
+ return {
96
+ "prompt_tokens": getattr(metadata, "prompt_token_count", 0),
97
+ "completion_tokens": getattr(metadata, "candidates_token_count", 0),
98
+ "total_tokens": getattr(metadata, "total_token_count", 0)
99
+ }
100
+
101
+ # Handle Vertex AI format
102
+ if hasattr(result, "text"):
103
+ # For LangChain ChatVertexAI
104
+ total_tokens = getattr(result, "token_count", 0)
105
+ if not total_tokens and hasattr(result, "_raw_response"):
106
+ # Try to get from raw response
107
+ total_tokens = getattr(result._raw_response, "token_count", 0)
108
+ return {
109
+ "prompt_tokens": 0, # Vertex AI doesn't provide this breakdown
110
+ "completion_tokens": total_tokens,
111
+ "total_tokens": total_tokens
112
+ }
113
+
114
+ return {
115
+ "prompt_tokens": 0,
116
+ "completion_tokens": 0,
117
+ "total_tokens": 0
118
+ }
119
+
120
+
121
+ def extract_input_data(args, kwargs, result):
122
+ """Extract input data from function call"""
123
+ return {
124
+ 'args': args,
125
+ 'kwargs': kwargs
126
+ }
127
+
128
+
129
+ def calculate_llm_cost(token_usage, model_name, model_costs):
130
+ """Calculate cost based on token usage and model"""
131
+ if not isinstance(token_usage, dict):
132
+ token_usage = {
133
+ "prompt_tokens": 0,
134
+ "completion_tokens": 0,
135
+ "total_tokens": token_usage if isinstance(token_usage, (int, float)) else 0
136
+ }
137
+
138
+ # Get model costs, defaulting to default costs if unknown
139
+ model_cost = model_costs.get(model_name, {
140
+ "input_cost_per_token": 0.0,
141
+ "output_cost_per_token": 0.0
142
+ })
143
+
144
+ input_cost = (token_usage.get("prompt_tokens", 0)) * model_cost.get("input_cost_per_token", 0.0)
145
+ output_cost = (token_usage.get("completion_tokens", 0)) * model_cost.get("output_cost_per_token", 0.0)
146
+ total_cost = input_cost + output_cost
147
+
148
+ return {
149
+ "input_cost": round(input_cost, 10),
150
+ "output_cost": round(output_cost, 10),
151
+ "total_cost": round(total_cost, 10)
152
+ }
153
+
154
+
155
+ def sanitize_api_keys(data):
156
+ """Remove sensitive information from data"""
157
+ if isinstance(data, dict):
158
+ return {k: sanitize_api_keys(v) for k, v in data.items()
159
+ if not any(sensitive in k.lower() for sensitive in ['key', 'token', 'secret', 'password'])}
160
+ elif isinstance(data, list):
161
+ return [sanitize_api_keys(item) for item in data]
162
+ elif isinstance(data, tuple):
163
+ return tuple(sanitize_api_keys(item) for item in data)
164
+ return data
165
+
166
+
167
+ def sanitize_input(args, kwargs):
168
+ """Convert input arguments to text format.
169
+
170
+ Args:
171
+ args: Input arguments that may contain nested dictionaries
172
+
173
+ Returns:
174
+ str: Text representation of the input arguments
175
+ """
176
+ if isinstance(args, dict):
177
+ return str({k: sanitize_input(v, {}) for k, v in args.items()})
178
+ elif isinstance(args, (list, tuple)):
179
+ return str([sanitize_input(item, {}) for item in args])
180
+ return str(args)
23
181
 
24
182
 
25
183
  def extract_llm_output(result):
184
+ """Extract output from LLM response"""
185
+ class OutputResponse:
186
+ def __init__(self, output_response):
187
+ self.output_response = output_response
188
+
189
+ # Handle coroutines
190
+ if asyncio.iscoroutine(result):
191
+ # For sync context, run the coroutine
192
+ if not asyncio.get_event_loop().is_running():
193
+ result = asyncio.run(result)
194
+ else:
195
+ # We're in an async context, but this function is called synchronously
196
+ # Return a placeholder and let the caller handle the coroutine
197
+ return OutputResponse("Coroutine result pending")
198
+
199
+ # Handle Google GenerativeAI format
200
+ if hasattr(result, "result"):
201
+ candidates = getattr(result.result, "candidates", [])
202
+ output = []
203
+ for candidate in candidates:
204
+ content = getattr(candidate, "content", None)
205
+ if content and hasattr(content, "parts"):
206
+ for part in content.parts:
207
+ if hasattr(part, "text"):
208
+ output.append({
209
+ "content": part.text,
210
+ "role": getattr(content, "role", "assistant"),
211
+ "finish_reason": getattr(candidate, "finish_reason", None)
212
+ })
213
+ return OutputResponse(output)
214
+
215
+ # Handle Vertex AI format
216
+ if hasattr(result, "text"):
217
+ return OutputResponse([{
218
+ "content": result.text,
219
+ "role": "assistant"
220
+ }])
221
+
222
+ # Handle OpenAI format
223
+ if hasattr(result, "choices"):
224
+ return OutputResponse([{
225
+ "content": choice.message.content,
226
+ "role": choice.message.role
227
+ } for choice in result.choices])
228
+
229
+ # Handle Anthropic format
230
+ if hasattr(result, "completion"):
231
+ return OutputResponse([{
232
+ "content": result.completion,
233
+ "role": "assistant"
234
+ }])
235
+
236
+ # Default case
237
+ return OutputResponse(str(result))
238
+
239
+
240
+ def extract_llm_data(args, kwargs, result):
26
241
  # Initialize variables
27
242
  model_name = None
28
243
  output_response = ""
@@ -32,15 +247,7 @@ def extract_llm_output(result):
32
247
  cost = {}
33
248
 
34
249
  # Try to get model_name from result or result.content
35
- model_name = None
36
- if hasattr(result, "model"):
37
- model_name = result.model
38
- elif hasattr(result, "content"):
39
- try:
40
- content_dict = json.loads(result.content)
41
- model_name = content_dict.get("model", None)
42
- except (json.JSONDecodeError, TypeError):
43
- model_name = None
250
+ model_name = extract_model_name(args, kwargs, result)
44
251
 
45
252
  # Try to get choices from result or result.content
46
253
  choices = None
@@ -136,34 +343,13 @@ def extract_llm_output(result):
136
343
  else:
137
344
  usage = {}
138
345
 
139
- token_usage = convert_usage_to_dict(usage)
346
+ token_usage = extract_token_usage(result)
140
347
 
141
348
  # Load model costs
142
349
  model_costs = load_model_costs()
143
350
 
144
351
  # Calculate cost
145
- if model_name in model_costs:
146
- model_config = model_costs[model_name]
147
- input_cost_per_token = model_config.get("input_cost_per_token", 0.0)
148
- output_cost_per_token = model_config.get("output_cost_per_token", 0.0)
149
- reasoning_cost_per_token = model_config.get(
150
- "reasoning_cost_per_token", output_cost_per_token
151
- )
152
- else:
153
- # Default costs or log a warning
154
- print(
155
- f"Warning: Model '{model_name}' not found in config. Using default costs."
156
- )
157
- input_cost_per_token = 0.0
158
- output_cost_per_token = 0.0
159
- reasoning_cost_per_token = 0.0
160
-
161
- cost = calculate_cost(
162
- token_usage,
163
- input_cost_per_token=input_cost_per_token,
164
- output_cost_per_token=output_cost_per_token,
165
- reasoning_cost_per_token=reasoning_cost_per_token,
166
- )
352
+ cost = calculate_llm_cost(token_usage, model_name, model_costs)
167
353
 
168
354
  llm_data = LLMCall(
169
355
  name="",
@@ -9,19 +9,18 @@ from concurrent.futures import ThreadPoolExecutor
9
9
 
10
10
  from opentelemetry.sdk import trace as trace_sdk
11
11
  from opentelemetry.sdk.trace.export import SimpleSpanProcessor
12
- from .exporters.file_span_exporter import FileSpanExporter
13
- from .exporters.raga_exporter import RagaExporter
14
- from .instrumentators import (
12
+ from ragaai_catalyst.tracers.exporters.file_span_exporter import FileSpanExporter
13
+ from ragaai_catalyst.tracers.exporters.raga_exporter import RagaExporter
14
+ from ragaai_catalyst.tracers.instrumentators import (
15
15
  LangchainInstrumentor,
16
16
  OpenAIInstrumentor,
17
17
  LlamaIndexInstrumentor,
18
18
  )
19
- from .utils import get_unique_key
20
- # from .llamaindex_callback import LlamaIndexTracer
21
- from ..ragaai_catalyst import RagaAICatalyst
22
- from .agentic_tracing.agentic_tracing import AgenticTracing
23
- from .agentic_tracing.file_name_tracker import TrackName
24
- from .agentic_tracing.llm_tracer import LLMTracerMixin
19
+ from ragaai_catalyst.tracers.utils import get_unique_key
20
+ # from ragaai_catalyst.tracers.llamaindex_callback import LlamaIndexTracer
21
+ from ragaai_catalyst import RagaAICatalyst
22
+ from ragaai_catalyst.tracers.agentic_tracing import AgenticTracing, TrackName
23
+ from ragaai_catalyst.tracers.agentic_tracing.tracers.llm_tracer import LLMTracerMixin
25
24
 
26
25
  logger = logging.getLogger(__name__)
27
26
 
@@ -114,7 +113,7 @@ class Tracer(AgenticTracing):
114
113
  self._upload_task = None
115
114
  elif tracer_type == "llamaindex":
116
115
  self._upload_task = None
117
- from .llamaindex_callback import LlamaIndexTracer
116
+ from ragaai_catalyst.tracers.llamaindex_callback import LlamaIndexTracer
118
117
 
119
118
  else:
120
119
  self._upload_task = None
@@ -176,7 +175,7 @@ class Tracer(AgenticTracing):
176
175
  print(f"Tracer started for project: {self.project_name}")
177
176
  return self
178
177
  elif self.tracer_type == "llamaindex":
179
- from .llamaindex_callback import LlamaIndexTracer
178
+ from ragaai_catalyst.tracers.llamaindex_callback import LlamaIndexTracer
180
179
  return LlamaIndexTracer(self._pass_user_data()).start()
181
180
  else:
182
181
  super().start()
@@ -194,7 +193,7 @@ class Tracer(AgenticTracing):
194
193
  self._upload_task = self._run_async(self._upload_traces())
195
194
  return "Trace upload initiated. Use get_upload_status() to check the status."
196
195
  elif self.tracer_type == "llamaindex":
197
- from .llamaindex_callback import LlamaIndexTracer
196
+ from ragaai_catalyst.tracers.llamaindex_callback import LlamaIndexTracer
198
197
  return LlamaIndexTracer(self._pass_user_data()).stop()
199
198
  else:
200
199
  super().stop()
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ragaai_catalyst
3
- Version: 2.1b5
3
+ Version: 2.1.1b1
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: >=3.9
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>=0.10.0
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
@@ -0,0 +1,60 @@
1
+ ragaai_catalyst/__init__.py,sha256=BdIJ_UUre0uEnRTsLw_hE0C0muWk6XWNZqdVOel22R4,537
2
+ ragaai_catalyst/_version.py,sha256=JKt9KaVNOMVeGs8ojO6LvIZr7ZkMzNN-gCcvryy4x8E,460
3
+ ragaai_catalyst/dataset.py,sha256=On-iOhD5R7iLusph6dLAGS1dOnNtb1koiKxKjTH90pE,10660
4
+ ragaai_catalyst/evaluation.py,sha256=34H2bYZNSrcu0jMQgDZw1OLVbQU80PaVLo2avju8POM,20311
5
+ ragaai_catalyst/experiment.py,sha256=8KvqgJg5JVnt9ghhGDJvdb4mN7ETBX_E5gNxBT0Nsn8,19010
6
+ ragaai_catalyst/guard_executor.py,sha256=llPbE3DyVtrybojXknzBZj8-dtUrGBQwi9-ZiPJxGRo,3762
7
+ ragaai_catalyst/guardrails_manager.py,sha256=DILMOAASK57FH9BLq_8yC1AQzRJ8McMFLwCXgYwNAd4,11904
8
+ ragaai_catalyst/internal_api_completion.py,sha256=DdICI5yfEudiOAIC8L4oxH0Qz7kX-BZCdo9IWsi2gNo,2965
9
+ ragaai_catalyst/prompt_manager.py,sha256=W8ypramzOprrJ7-22d5vkBXIuIQ8v9XAzKDGxKsTK28,16550
10
+ ragaai_catalyst/proxy_call.py,sha256=CHxldeceZUaLU-to_hs_Kf1z_b2vHMssLS_cOBedu78,5499
11
+ ragaai_catalyst/ragaai_catalyst.py,sha256=FdqMzwuQLqS2-3JJDsTQ8uh2itllOxfPrRUjb8Kwmn0,17428
12
+ ragaai_catalyst/synthetic_data_generation.py,sha256=uDV9tNwto2xSkWg5XHXUvjErW-4P34CTrxaJpRfezyA,19250
13
+ ragaai_catalyst/utils.py,sha256=TlhEFwLyRU690HvANbyoRycR3nQ67lxVUQoUOfTPYQ0,3772
14
+ ragaai_catalyst/tracers/__init__.py,sha256=yxepo7iVjTNI_wFdk3Z6Ghu64SazVyszCPEHYrX5WQk,50
15
+ ragaai_catalyst/tracers/llamaindex_callback.py,sha256=vPE7MieKjfwLrLUnnPs20Df0xNYqoCCj-Mt2NbiuiKU,14023
16
+ ragaai_catalyst/tracers/tracer.py,sha256=ecr90nRvd6iHRc9HaVm79HM0fB875QwS6YNh6HHSCD8,12637
17
+ ragaai_catalyst/tracers/upload_traces.py,sha256=hs0PEmit3n3_uUqrdbwcBdyK5Nbkik3JQVwJMEwYTd4,4796
18
+ ragaai_catalyst/tracers/agentic_tracing/README.md,sha256=X4QwLb7-Jg7GQMIXj-SerZIgDETfw-7VgYlczOR8ZeQ,4508
19
+ ragaai_catalyst/tracers/agentic_tracing/__init__.py,sha256=yf6SKvOPSpH-9LiKaoLKXwqj5sez8F_5wkOb91yp0oE,260
20
+ ragaai_catalyst/tracers/agentic_tracing/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ ragaai_catalyst/tracers/agentic_tracing/data/data_structure.py,sha256=fv1h5IvVZDj7IYrozW2NL9tdoL2CWWWOPey_LTduNuI,7708
22
+ ragaai_catalyst/tracers/agentic_tracing/tests/FinancialAnalysisSystem.ipynb,sha256=0qZxjWqYCTAVvdo3Tsp544D8Am48wfeMQ9RKpKgAL8g,34291
23
+ ragaai_catalyst/tracers/agentic_tracing/tests/GameActivityEventPlanner.ipynb,sha256=QCMFJYbGX0fd9eMW4PqyQLZjyWuTXo7n1nqO_hMLf0s,4225
24
+ ragaai_catalyst/tracers/agentic_tracing/tests/TravelPlanner.ipynb,sha256=fU3inXoemJbdTkGAQl_N1UwVEZ10LrKv4gCEpbQ4ISg,43481
25
+ ragaai_catalyst/tracers/agentic_tracing/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ ragaai_catalyst/tracers/agentic_tracing/tests/ai_travel_agent.py,sha256=S4rCcKzU_5SB62BYEbNn_1VbbTdG4396N8rdZ3ZNGcE,5654
27
+ ragaai_catalyst/tracers/agentic_tracing/tests/unique_decorator_test.py,sha256=Xk1cLzs-2A3dgyBwRRnCWs7Eubki40FVonwd433hPN8,4805
28
+ ragaai_catalyst/tracers/agentic_tracing/tracers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ ragaai_catalyst/tracers/agentic_tracing/tracers/agent_tracer.py,sha256=_9yGrHLw9TnKkYaNkWHQaLFQgsi945CClDTpf6JhINk,21372
30
+ ragaai_catalyst/tracers/agentic_tracing/tracers/base.py,sha256=lxr62VIbULd9vqCT30nvuWfokvbm7LLWlsu84m0YQfk,14043
31
+ ragaai_catalyst/tracers/agentic_tracing/tracers/llm_tracer.py,sha256=22iikpmikzjBxi9tqc4HBWuIdakoQOBqfZroz9QE-38,23740
32
+ ragaai_catalyst/tracers/agentic_tracing/tracers/main_tracer.py,sha256=urY3AWI01JAlGe2rjg-K0EV0CFHti4_SUOAXp23ROk4,10246
33
+ ragaai_catalyst/tracers/agentic_tracing/tracers/network_tracer.py,sha256=6FTA15xMnum9omM_0Jd9cMIuWdKu1gR5Tc8fOXAkP8E,10068
34
+ ragaai_catalyst/tracers/agentic_tracing/tracers/tool_tracer.py,sha256=RuxmiOT8DUzpy5oFNjImQDNjYDQ0kJO3Jkv-S1RukEE,8788
35
+ ragaai_catalyst/tracers/agentic_tracing/tracers/user_interaction_tracer.py,sha256=wsCwTK7tM_L3mdNrcg5Mq3D1k07XCHZkhOB26kz_rLY,1472
36
+ ragaai_catalyst/tracers/agentic_tracing/upload/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
+ ragaai_catalyst/tracers/agentic_tracing/upload/upload_agentic_traces.py,sha256=ydaWAbrSS5B6ijabzTnUVxlW8m6eX5dsEJnzl06ZDFU,7539
38
+ ragaai_catalyst/tracers/agentic_tracing/upload/upload_code.py,sha256=u9bRWcM5oDezJupEQoHUXrKz7YvZJK9IZf10ejBWoa4,4254
39
+ ragaai_catalyst/tracers/agentic_tracing/utils/__init__.py,sha256=XdB3X_ufe4RVvGorxSqAiB9dYv4UD7Hvvuw3bsDUppY,60
40
+ ragaai_catalyst/tracers/agentic_tracing/utils/api_utils.py,sha256=JyNCbfpW-w4O9CjtemTqmor2Rh1WGpQwhRaDSRmBxw8,689
41
+ ragaai_catalyst/tracers/agentic_tracing/utils/file_name_tracker.py,sha256=515NNDQJTyy3O-2rdlUYUoWL9qSwLIfvV3sMB9BtHp8,1366
42
+ ragaai_catalyst/tracers/agentic_tracing/utils/generic.py,sha256=WwXT01xmp8MSr7KinuDCSK9a1ifpLcT7ajFkvYviG_A,1190
43
+ ragaai_catalyst/tracers/agentic_tracing/utils/llm_utils.py,sha256=7r9UrXEdftoMWsE0fy0ps9dcPq0o5M4pMYmr7VXs7yc,12238
44
+ ragaai_catalyst/tracers/agentic_tracing/utils/model_costs.json,sha256=6wnDtkBH-uwJeZm9FtyeXuUWux8u-skT3lmrtFwsReI,286298
45
+ ragaai_catalyst/tracers/agentic_tracing/utils/trace_utils.py,sha256=9cFzfFqIA968bUG7LNTjdN7zbdEXUtcvRKg883ade2c,2586
46
+ ragaai_catalyst/tracers/agentic_tracing/utils/unique_decorator.py,sha256=DQHjcEuqEKsNSWaNs7SoOaq50yK4Jsl966S7mBnV-zA,5723
47
+ ragaai_catalyst/tracers/agentic_tracing/utils/zip_list_of_unique_files.py,sha256=faFat_OAUnVJGnauMVo6yeHhTv-_njgyXGOtUwYJ8kE,7568
48
+ ragaai_catalyst/tracers/exporters/__init__.py,sha256=kVA8zp05h3phu4e-iHSlnznp_PzMRczB7LphSsZgUjg,138
49
+ ragaai_catalyst/tracers/exporters/file_span_exporter.py,sha256=RgGteu-NVGprXKkynvyIO5yOjpbtA41R3W_NzCjnkwE,6445
50
+ ragaai_catalyst/tracers/exporters/raga_exporter.py,sha256=pU9EH6Fn1Z757bpM3VaXPDHuJ5wyUrMObGaACiztvTU,18014
51
+ ragaai_catalyst/tracers/instrumentators/__init__.py,sha256=FgnMQupoRTzmVsG9YKsLQera2Pfs-AluZv8CxwavoyQ,253
52
+ ragaai_catalyst/tracers/instrumentators/langchain.py,sha256=yMN0qVF0pUVk6R5M1vJoUXezDo1ejs4klCFRlE8x4vE,574
53
+ ragaai_catalyst/tracers/instrumentators/llamaindex.py,sha256=SMrRlR4xM7k9HK43hakE8rkrWHxMlmtmWD-AX6TeByc,416
54
+ ragaai_catalyst/tracers/instrumentators/openai.py,sha256=14R4KW9wQCR1xysLfsP_nxS7cqXrTPoD8En4MBAaZUU,379
55
+ ragaai_catalyst/tracers/utils/__init__.py,sha256=KeMaZtYaTojilpLv65qH08QmpYclfpacDA0U3wg6Ybw,64
56
+ ragaai_catalyst/tracers/utils/utils.py,sha256=ViygfJ7vZ7U0CTSA1lbxVloHp4NSlmfDzBRNCJuMhis,2374
57
+ ragaai_catalyst-2.1.1b1.dist-info/METADATA,sha256=hS4Mu0WYuuC13ue3ACZ-b4AKwKkYxrfo3XqSfK56M80,1801
58
+ ragaai_catalyst-2.1.1b1.dist-info/WHEEL,sha256=A3WOREP4zgxI0fKrHUG8DC8013e3dK3n7a6HDbcEIwE,91
59
+ ragaai_catalyst-2.1.1b1.dist-info/top_level.txt,sha256=HpgsdRgEJMk8nqrU6qdCYk3di7MJkDL0B19lkc7dLfM,16
60
+ ragaai_catalyst-2.1.1b1.dist-info/RECORD,,
@@ -1,61 +0,0 @@
1
- from dataclasses import dataclass, field
2
- from typing import Dict, List, Any, Optional
3
-
4
-
5
- @dataclass
6
- class ProjectInfo:
7
- project_name: str
8
- start_time: float
9
- end_time: float = field(default=0)
10
- duration: float = field(default=0)
11
- total_cost: float = field(default=0)
12
- total_tokens: int = field(default=0)
13
-
14
-
15
- @dataclass
16
- class SystemInfo:
17
- project_id: int
18
- os_name: str
19
- os_version: str
20
- python_version: str
21
- cpu_info: str
22
- memory_total: float
23
- installed_packages: str
24
-
25
-
26
- @dataclass
27
- class LLMCall:
28
- name: str
29
- model_name: str
30
- input_prompt: str
31
- output_response: str
32
- tool_call: Dict
33
- token_usage: Dict[str, int]
34
- cost: Dict[str, float]
35
- start_time: float = field(default=0)
36
- end_time: float = field(default=0)
37
- duration: float = field(default=0)
38
-
39
-
40
- @dataclass
41
- class ToolCall:
42
- name: str
43
- input_parameters: Dict[str, Any]
44
- output: Any
45
- start_time: float
46
- end_time: float
47
- duration: float
48
- errors: Optional[str] = None
49
-
50
-
51
- @dataclass
52
- class AgentCall:
53
- name: str
54
- input_parameters: Dict[str, Any]
55
- output: Any
56
- start_time: float
57
- end_time: float
58
- duration: float
59
- tool_calls: List[Dict[str, Any]]
60
- llm_calls: List[Dict[str, Any]]
61
- errors: Optional[str] = None
@@ -1,56 +0,0 @@
1
- ragaai_catalyst/__init__.py,sha256=BdIJ_UUre0uEnRTsLw_hE0C0muWk6XWNZqdVOel22R4,537
2
- ragaai_catalyst/_version.py,sha256=JKt9KaVNOMVeGs8ojO6LvIZr7ZkMzNN-gCcvryy4x8E,460
3
- ragaai_catalyst/dataset.py,sha256=On-iOhD5R7iLusph6dLAGS1dOnNtb1koiKxKjTH90pE,10660
4
- ragaai_catalyst/evaluation.py,sha256=34H2bYZNSrcu0jMQgDZw1OLVbQU80PaVLo2avju8POM,20311
5
- ragaai_catalyst/experiment.py,sha256=8KvqgJg5JVnt9ghhGDJvdb4mN7ETBX_E5gNxBT0Nsn8,19010
6
- ragaai_catalyst/guard_executor.py,sha256=llPbE3DyVtrybojXknzBZj8-dtUrGBQwi9-ZiPJxGRo,3762
7
- ragaai_catalyst/guardrails_manager.py,sha256=DILMOAASK57FH9BLq_8yC1AQzRJ8McMFLwCXgYwNAd4,11904
8
- ragaai_catalyst/internal_api_completion.py,sha256=DdICI5yfEudiOAIC8L4oxH0Qz7kX-BZCdo9IWsi2gNo,2965
9
- ragaai_catalyst/prompt_manager.py,sha256=W8ypramzOprrJ7-22d5vkBXIuIQ8v9XAzKDGxKsTK28,16550
10
- ragaai_catalyst/proxy_call.py,sha256=CHxldeceZUaLU-to_hs_Kf1z_b2vHMssLS_cOBedu78,5499
11
- ragaai_catalyst/ragaai_catalyst.py,sha256=FdqMzwuQLqS2-3JJDsTQ8uh2itllOxfPrRUjb8Kwmn0,17428
12
- ragaai_catalyst/synthetic_data_generation.py,sha256=uDV9tNwto2xSkWg5XHXUvjErW-4P34CTrxaJpRfezyA,19250
13
- ragaai_catalyst/utils.py,sha256=TlhEFwLyRU690HvANbyoRycR3nQ67lxVUQoUOfTPYQ0,3772
14
- ragaai_catalyst/tracers/__init__.py,sha256=yxepo7iVjTNI_wFdk3Z6Ghu64SazVyszCPEHYrX5WQk,50
15
- ragaai_catalyst/tracers/llamaindex_callback.py,sha256=vPE7MieKjfwLrLUnnPs20Df0xNYqoCCj-Mt2NbiuiKU,14023
16
- ragaai_catalyst/tracers/tracer.py,sha256=dGYQfo0RXms6w-sAJf04gqTo1zOXTqreGXaJlnvK48A,12463
17
- ragaai_catalyst/tracers/upload_traces.py,sha256=hs0PEmit3n3_uUqrdbwcBdyK5Nbkik3JQVwJMEwYTd4,4796
18
- ragaai_catalyst/tracers/agentic_tracing/__init__.py,sha256=6QyQI8P7aNFHTantNJOP1ZdSNrDKBLhlg_gGNj7tm1c,73
19
- ragaai_catalyst/tracers/agentic_tracing/agent_tracer.py,sha256=M5RBNzcuSCEKv-rYwmzBMN-BxvthM3y6d_279UYERZQ,20832
20
- ragaai_catalyst/tracers/agentic_tracing/agentic_tracing.py,sha256=WsddEXn2afdPx8PfignQoLIwZfn9350XsqtkqtZdMxw,8502
21
- ragaai_catalyst/tracers/agentic_tracing/base.py,sha256=jRf_-5EIfCzGbaSQtkqgiDQAH4ymoKUrg9A8YqB08jk,14008
22
- ragaai_catalyst/tracers/agentic_tracing/data_structure.py,sha256=wkZctMTUQUViqKrHhdZiMERSBVfwURAJ-lFlQUou638,7395
23
- ragaai_catalyst/tracers/agentic_tracing/file_name_tracker.py,sha256=515NNDQJTyy3O-2rdlUYUoWL9qSwLIfvV3sMB9BtHp8,1366
24
- ragaai_catalyst/tracers/agentic_tracing/llm_tracer.py,sha256=dI2Pg4cNGTf5k7g7ViVRUu6Pck8In4aqQYGLn_xwNxY,32705
25
- ragaai_catalyst/tracers/agentic_tracing/network_tracer.py,sha256=6FTA15xMnum9omM_0Jd9cMIuWdKu1gR5Tc8fOXAkP8E,10068
26
- ragaai_catalyst/tracers/agentic_tracing/sample.py,sha256=S4rCcKzU_5SB62BYEbNn_1VbbTdG4396N8rdZ3ZNGcE,5654
27
- ragaai_catalyst/tracers/agentic_tracing/tool_tracer.py,sha256=Yc4x82rk0hCANwXUt4M66Qv_4OdpsXsjlq6OIOef1io,8763
28
- ragaai_catalyst/tracers/agentic_tracing/unique_decorator.py,sha256=DQHjcEuqEKsNSWaNs7SoOaq50yK4Jsl966S7mBnV-zA,5723
29
- ragaai_catalyst/tracers/agentic_tracing/unique_decorator_test.py,sha256=Xk1cLzs-2A3dgyBwRRnCWs7Eubki40FVonwd433hPN8,4805
30
- ragaai_catalyst/tracers/agentic_tracing/upload_agentic_traces.py,sha256=ydaWAbrSS5B6ijabzTnUVxlW8m6eX5dsEJnzl06ZDFU,7539
31
- ragaai_catalyst/tracers/agentic_tracing/upload_code.py,sha256=u9bRWcM5oDezJupEQoHUXrKz7YvZJK9IZf10ejBWoa4,4254
32
- ragaai_catalyst/tracers/agentic_tracing/user_interaction_tracer.py,sha256=wsCwTK7tM_L3mdNrcg5Mq3D1k07XCHZkhOB26kz_rLY,1472
33
- ragaai_catalyst/tracers/agentic_tracing/zip_list_of_unique_files.py,sha256=faFat_OAUnVJGnauMVo6yeHhTv-_njgyXGOtUwYJ8kE,7568
34
- ragaai_catalyst/tracers/agentic_tracing/examples/FinancialAnalysisSystem.ipynb,sha256=0qZxjWqYCTAVvdo3Tsp544D8Am48wfeMQ9RKpKgAL8g,34291
35
- ragaai_catalyst/tracers/agentic_tracing/examples/GameActivityEventPlanner.ipynb,sha256=QCMFJYbGX0fd9eMW4PqyQLZjyWuTXo7n1nqO_hMLf0s,4225
36
- ragaai_catalyst/tracers/agentic_tracing/examples/TravelPlanner.ipynb,sha256=fU3inXoemJbdTkGAQl_N1UwVEZ10LrKv4gCEpbQ4ISg,43481
37
- ragaai_catalyst/tracers/agentic_tracing/utils/__init__.py,sha256=XdB3X_ufe4RVvGorxSqAiB9dYv4UD7Hvvuw3bsDUppY,60
38
- ragaai_catalyst/tracers/agentic_tracing/utils/api_utils.py,sha256=JyNCbfpW-w4O9CjtemTqmor2Rh1WGpQwhRaDSRmBxw8,689
39
- ragaai_catalyst/tracers/agentic_tracing/utils/data_classes.py,sha256=gFOadWzUORETaH3Y_HerHXs_aVFEt5ry2NQ36domW58,1267
40
- ragaai_catalyst/tracers/agentic_tracing/utils/generic.py,sha256=WwXT01xmp8MSr7KinuDCSK9a1ifpLcT7ajFkvYviG_A,1190
41
- ragaai_catalyst/tracers/agentic_tracing/utils/llm_utils.py,sha256=7lHJ84kbe7kn4Hbd6MT8KeSl-We7nc_yq2xkfgxgl2E,5769
42
- ragaai_catalyst/tracers/agentic_tracing/utils/model_costs.json,sha256=6wnDtkBH-uwJeZm9FtyeXuUWux8u-skT3lmrtFwsReI,286298
43
- ragaai_catalyst/tracers/agentic_tracing/utils/trace_utils.py,sha256=9cFzfFqIA968bUG7LNTjdN7zbdEXUtcvRKg883ade2c,2586
44
- ragaai_catalyst/tracers/exporters/__init__.py,sha256=kVA8zp05h3phu4e-iHSlnznp_PzMRczB7LphSsZgUjg,138
45
- ragaai_catalyst/tracers/exporters/file_span_exporter.py,sha256=RgGteu-NVGprXKkynvyIO5yOjpbtA41R3W_NzCjnkwE,6445
46
- ragaai_catalyst/tracers/exporters/raga_exporter.py,sha256=pU9EH6Fn1Z757bpM3VaXPDHuJ5wyUrMObGaACiztvTU,18014
47
- ragaai_catalyst/tracers/instrumentators/__init__.py,sha256=FgnMQupoRTzmVsG9YKsLQera2Pfs-AluZv8CxwavoyQ,253
48
- ragaai_catalyst/tracers/instrumentators/langchain.py,sha256=yMN0qVF0pUVk6R5M1vJoUXezDo1ejs4klCFRlE8x4vE,574
49
- ragaai_catalyst/tracers/instrumentators/llamaindex.py,sha256=SMrRlR4xM7k9HK43hakE8rkrWHxMlmtmWD-AX6TeByc,416
50
- ragaai_catalyst/tracers/instrumentators/openai.py,sha256=14R4KW9wQCR1xysLfsP_nxS7cqXrTPoD8En4MBAaZUU,379
51
- ragaai_catalyst/tracers/utils/__init__.py,sha256=KeMaZtYaTojilpLv65qH08QmpYclfpacDA0U3wg6Ybw,64
52
- ragaai_catalyst/tracers/utils/utils.py,sha256=ViygfJ7vZ7U0CTSA1lbxVloHp4NSlmfDzBRNCJuMhis,2374
53
- ragaai_catalyst-2.1b5.dist-info/METADATA,sha256=Aqk9psd4uVTwFEtlydBvf79poBz1uPttrh_qLw-p5Bc,1795
54
- ragaai_catalyst-2.1b5.dist-info/WHEEL,sha256=A3WOREP4zgxI0fKrHUG8DC8013e3dK3n7a6HDbcEIwE,91
55
- ragaai_catalyst-2.1b5.dist-info/top_level.txt,sha256=HpgsdRgEJMk8nqrU6qdCYk3di7MJkDL0B19lkc7dLfM,16
56
- ragaai_catalyst-2.1b5.dist-info/RECORD,,