ragaai-catalyst 2.1.7b1__py3-none-any.whl → 2.1.7.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/exporters/dynamic_trace_exporter.py +15 -2
- ragaai_catalyst/tracers/exporters/ragaai_trace_exporter.py +29 -4
- ragaai_catalyst/tracers/tracer.py +58 -12
- ragaai_catalyst/tracers/utils/rag_trace_json_converter.py +5 -3
- {ragaai_catalyst-2.1.7b1.dist-info → ragaai_catalyst-2.1.7.1b0.dist-info}/METADATA +3 -3
- {ragaai_catalyst-2.1.7b1.dist-info → ragaai_catalyst-2.1.7.1b0.dist-info}/RECORD +9 -9
- {ragaai_catalyst-2.1.7b1.dist-info → ragaai_catalyst-2.1.7.1b0.dist-info}/WHEEL +0 -0
- {ragaai_catalyst-2.1.7b1.dist-info → ragaai_catalyst-2.1.7.1b0.dist-info}/licenses/LICENSE +0 -0
- {ragaai_catalyst-2.1.7b1.dist-info → ragaai_catalyst-2.1.7.1b0.dist-info}/top_level.txt +0 -0
@@ -14,7 +14,7 @@ class DynamicTraceExporter(SpanExporter):
|
|
14
14
|
certain properties to be updated dynamically during execution.
|
15
15
|
"""
|
16
16
|
|
17
|
-
def __init__(self, tracer_type, files_to_zip, project_name, project_id, dataset_name, user_details, base_url, custom_model_cost, timeout=120, post_processor = None, max_upload_workers = 30):
|
17
|
+
def __init__(self, tracer_type, files_to_zip, project_name, project_id, dataset_name, user_details, base_url, custom_model_cost, timeout=120, post_processor = None, max_upload_workers = 30,user_context = None, external_id=None):
|
18
18
|
"""
|
19
19
|
Initialize the DynamicTraceExporter.
|
20
20
|
|
@@ -40,7 +40,9 @@ class DynamicTraceExporter(SpanExporter):
|
|
40
40
|
custom_model_cost=custom_model_cost,
|
41
41
|
timeout=timeout,
|
42
42
|
post_processor= post_processor,
|
43
|
-
max_upload_workers = max_upload_workers
|
43
|
+
max_upload_workers = max_upload_workers,
|
44
|
+
user_context = user_context,
|
45
|
+
external_id=external_id
|
44
46
|
)
|
45
47
|
|
46
48
|
# Store the initial values
|
@@ -53,6 +55,7 @@ class DynamicTraceExporter(SpanExporter):
|
|
53
55
|
self._custom_model_cost = custom_model_cost
|
54
56
|
self._post_processor = post_processor
|
55
57
|
self._max_upload_workers = max_upload_workers
|
58
|
+
self._user_context = user_context
|
56
59
|
|
57
60
|
|
58
61
|
def export(self, spans):
|
@@ -111,6 +114,7 @@ class DynamicTraceExporter(SpanExporter):
|
|
111
114
|
self._exporter.custom_model_cost = self._custom_model_cost
|
112
115
|
self._exporter.post_processor = self._post_processor
|
113
116
|
self._exporter.max_upload_workers = self._max_upload_workers
|
117
|
+
self._exporter.user_context = self._user_context
|
114
118
|
|
115
119
|
# Getter and setter methods for dynamic properties
|
116
120
|
|
@@ -177,3 +181,12 @@ class DynamicTraceExporter(SpanExporter):
|
|
177
181
|
@max_upload_workers.setter
|
178
182
|
def max_upload_workers(self, value):
|
179
183
|
self._max_upload_workers = value
|
184
|
+
|
185
|
+
@property
|
186
|
+
def user_context(self):
|
187
|
+
return self._user_context
|
188
|
+
|
189
|
+
@user_context.setter
|
190
|
+
def user_context(self, value):
|
191
|
+
self._user_context = value
|
192
|
+
|
@@ -26,7 +26,7 @@ logging_level = (
|
|
26
26
|
|
27
27
|
|
28
28
|
class RAGATraceExporter(SpanExporter):
|
29
|
-
def __init__(self, tracer_type, files_to_zip, project_name, project_id, dataset_name, user_details, base_url, custom_model_cost, timeout=120, post_processor = None, max_upload_workers = 30):
|
29
|
+
def __init__(self, tracer_type, files_to_zip, project_name, project_id, dataset_name, user_details, base_url, custom_model_cost, timeout=120, post_processor = None, max_upload_workers = 30,user_context = None, external_id=None):
|
30
30
|
self.trace_spans = dict()
|
31
31
|
self.tmp_dir = tempfile.gettempdir()
|
32
32
|
self.tracer_type = tracer_type
|
@@ -41,6 +41,8 @@ class RAGATraceExporter(SpanExporter):
|
|
41
41
|
self.timeout = timeout
|
42
42
|
self.post_processor = post_processor
|
43
43
|
self.max_upload_workers = max_upload_workers
|
44
|
+
self.user_context = user_context
|
45
|
+
self.external_id = external_id
|
44
46
|
|
45
47
|
def export(self, spans):
|
46
48
|
for span in spans:
|
@@ -86,12 +88,33 @@ class RAGATraceExporter(SpanExporter):
|
|
86
88
|
ragaai_trace_details = self.prepare_trace(spans, trace_id)
|
87
89
|
except Exception as e:
|
88
90
|
print(f"Error converting trace {trace_id}: {e}")
|
91
|
+
return # Exit early if conversion fails
|
92
|
+
|
93
|
+
# Check if trace details are None (conversion failed)
|
94
|
+
if ragaai_trace_details is None:
|
95
|
+
logger.error(f"Cannot upload trace {trace_id}: conversion failed and returned None")
|
96
|
+
return # Exit early if conversion failed
|
97
|
+
|
89
98
|
# Upload the trace if upload_trace function is provided
|
90
99
|
try:
|
91
100
|
if self.post_processor!=None:
|
92
101
|
ragaai_trace_details['trace_file_path'] = self.post_processor(ragaai_trace_details['trace_file_path'])
|
93
102
|
if self.tracer_type == "langchain":
|
94
|
-
|
103
|
+
# Check if we're already in an event loop
|
104
|
+
try:
|
105
|
+
loop = asyncio.get_event_loop()
|
106
|
+
if loop.is_running():
|
107
|
+
# We're in a running event loop (like in Colab/Jupyter)
|
108
|
+
# Create a future and run the coroutine
|
109
|
+
future = asyncio.ensure_future(self.upload_rag_trace(ragaai_trace_details, additional_metadata, trace_id))
|
110
|
+
# We don't wait for it to complete as this would block the event loop
|
111
|
+
logger.info(f"Scheduled async upload for trace {trace_id} in existing event loop")
|
112
|
+
else:
|
113
|
+
# No running event loop, use asyncio.run()
|
114
|
+
asyncio.run(self.upload_rag_trace(ragaai_trace_details, additional_metadata, trace_id))
|
115
|
+
except RuntimeError:
|
116
|
+
# No event loop exists, create one
|
117
|
+
asyncio.run(self.upload_rag_trace(ragaai_trace_details, additional_metadata, trace_id))
|
95
118
|
else:
|
96
119
|
self.upload_trace(ragaai_trace_details, trace_id)
|
97
120
|
except Exception as e:
|
@@ -185,10 +208,12 @@ class RAGATraceExporter(SpanExporter):
|
|
185
208
|
|
186
209
|
async def upload_rag_trace(self, ragaai_trace, additional_metadata, trace_id):
|
187
210
|
try:
|
211
|
+
ragaai_trace[0]['external_id'] = self.external_id
|
188
212
|
trace_file_path = os.path.join(self.tmp_dir, f"{trace_id}.json")
|
189
213
|
with open(trace_file_path, 'w') as f:
|
190
214
|
json.dump(ragaai_trace, f, indent=2)
|
191
|
-
|
215
|
+
logger.info(f"Trace file saved at {trace_file_path}")
|
216
|
+
|
192
217
|
# Create a ThreadPoolExecutor with max_workers=30
|
193
218
|
with concurrent.futures.ThreadPoolExecutor(max_workers=self.max_upload_workers) as executor:
|
194
219
|
# Create a partial function with all the necessary arguments
|
@@ -233,7 +258,7 @@ class RAGATraceExporter(SpanExporter):
|
|
233
258
|
|
234
259
|
def prepare_rag_trace(self, spans, trace_id):
|
235
260
|
try:
|
236
|
-
ragaai_trace, additional_metadata = rag_trace_json_converter(spans, self.custom_model_cost, trace_id, self.user_details, self.tracer_type)
|
261
|
+
ragaai_trace, additional_metadata = rag_trace_json_converter(spans, self.custom_model_cost, trace_id, self.user_details, self.tracer_type,self.user_context)
|
237
262
|
ragaai_trace["metadata"]["recorded_on"] = datetime.datetime.now().astimezone().isoformat()
|
238
263
|
ragaai_trace["metadata"]["log_source"] = "langchain_tracer"
|
239
264
|
|
@@ -24,6 +24,7 @@ from ragaai_catalyst.tracers.exporters.raga_exporter import RagaExporter
|
|
24
24
|
from ragaai_catalyst.tracers.utils import get_unique_key
|
25
25
|
# from ragaai_catalyst.tracers.llamaindex_callback import LlamaIndexTracer
|
26
26
|
from ragaai_catalyst.tracers.llamaindex_instrumentation import LlamaIndexInstrumentationTracer
|
27
|
+
from openinference.instrumentation.langchain import LangChainInstrumentor
|
27
28
|
from ragaai_catalyst import RagaAICatalyst
|
28
29
|
from ragaai_catalyst.tracers.agentic_tracing import AgenticTracing
|
29
30
|
from ragaai_catalyst.tracers.agentic_tracing.tracers.llm_tracer import LLMTracerMixin
|
@@ -59,7 +60,8 @@ class Tracer(AgenticTracing):
|
|
59
60
|
},
|
60
61
|
interval_time=2,
|
61
62
|
# auto_instrumentation=True/False # to control automatic instrumentation of everything
|
62
|
-
max_upload_workers=30
|
63
|
+
max_upload_workers=30,
|
64
|
+
external_id=None
|
63
65
|
|
64
66
|
):
|
65
67
|
"""
|
@@ -143,6 +145,10 @@ class Tracer(AgenticTracing):
|
|
143
145
|
self.file_tracker = TrackName()
|
144
146
|
self.post_processor = None
|
145
147
|
self.max_upload_workers = max_upload_workers
|
148
|
+
self.user_details = self._pass_user_data()
|
149
|
+
self.update_llm_cost = update_llm_cost
|
150
|
+
self.auto_instrumentation = auto_instrumentation
|
151
|
+
self.external_id = external_id
|
146
152
|
|
147
153
|
try:
|
148
154
|
response = requests.get(
|
@@ -460,6 +466,30 @@ class Tracer(AgenticTracing):
|
|
460
466
|
self.dynamic_exporter._exporter.post_processor = post_processor_func
|
461
467
|
self.dynamic_exporter._post_processor = post_processor_func
|
462
468
|
logger.info("Registered post process as: "+str(post_processor_func))
|
469
|
+
|
470
|
+
|
471
|
+
def set_external_id(self, external_id):
|
472
|
+
current_params = {
|
473
|
+
'project_name': self.project_name,
|
474
|
+
'dataset_name': self.dataset_name,
|
475
|
+
'trace_name': self.trace_name,
|
476
|
+
'tracer_type': self.tracer_type,
|
477
|
+
'pipeline': self.pipeline,
|
478
|
+
'metadata': self.metadata,
|
479
|
+
'description': self.description,
|
480
|
+
'timeout': self.timeout,
|
481
|
+
'update_llm_cost': self.update_llm_cost,
|
482
|
+
'auto_instrumentation': self.auto_instrumentation,
|
483
|
+
'interval_time': self.interval_time,
|
484
|
+
'max_upload_workers': self.max_upload_workers
|
485
|
+
}
|
486
|
+
|
487
|
+
# Reinitialize self with new external_id and stored parameters
|
488
|
+
self.__init__(
|
489
|
+
external_id=external_id,
|
490
|
+
**current_params
|
491
|
+
)
|
492
|
+
|
463
493
|
|
464
494
|
|
465
495
|
def set_dataset_name(self, dataset_name):
|
@@ -485,15 +515,20 @@ class Tracer(AgenticTracing):
|
|
485
515
|
# Also update the user_details in the dynamic exporter
|
486
516
|
self.dynamic_exporter.user_details = self.user_details
|
487
517
|
else:
|
488
|
-
# Store current parameters
|
489
518
|
current_params = {
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
519
|
+
'project_name': self.project_name,
|
520
|
+
'trace_name': self.trace_name,
|
521
|
+
'tracer_type': self.tracer_type,
|
522
|
+
'pipeline': self.pipeline,
|
523
|
+
'metadata': self.metadata,
|
524
|
+
'description': self.description,
|
525
|
+
'timeout': self.timeout,
|
526
|
+
'update_llm_cost': self.update_llm_cost,
|
527
|
+
'auto_instrumentation': self.auto_instrumentation,
|
528
|
+
'interval_time': self.interval_time,
|
529
|
+
'max_upload_workers': self.max_upload_workers,
|
530
|
+
'external_id': self.external_id
|
531
|
+
}
|
497
532
|
|
498
533
|
# Reinitialize self with new dataset_name and stored parameters
|
499
534
|
self.__init__(
|
@@ -503,7 +538,7 @@ class Tracer(AgenticTracing):
|
|
503
538
|
|
504
539
|
def _improve_metadata(self, metadata, tracer_type):
|
505
540
|
if metadata is None:
|
506
|
-
metadata = {}
|
541
|
+
metadata = {"metadata": {}}
|
507
542
|
metadata.setdefault("log_source", f"{tracer_type}_tracer")
|
508
543
|
metadata.setdefault("recorded_on", str(datetime.datetime.now()))
|
509
544
|
return metadata
|
@@ -766,7 +801,9 @@ class Tracer(AgenticTracing):
|
|
766
801
|
custom_model_cost=self.model_custom_cost,
|
767
802
|
timeout = self.timeout,
|
768
803
|
post_processor= self.post_processor,
|
769
|
-
max_upload_workers = self.max_upload_workers
|
804
|
+
max_upload_workers = self.max_upload_workers,
|
805
|
+
user_context = self.user_context,
|
806
|
+
external_id=self.external_id
|
770
807
|
)
|
771
808
|
|
772
809
|
# Set up tracer provider
|
@@ -775,7 +812,15 @@ class Tracer(AgenticTracing):
|
|
775
812
|
|
776
813
|
# Instrument all specified instrumentors
|
777
814
|
for instrumentor_class, args in instrumentors:
|
778
|
-
|
815
|
+
# Create an instance of the instrumentor
|
816
|
+
instrumentor = instrumentor_class()
|
817
|
+
|
818
|
+
# Uninstrument only if it is already instrumented
|
819
|
+
if isinstance(instrumentor, LangChainInstrumentor) and instrumentor._is_instrumented_by_opentelemetry:
|
820
|
+
instrumentor.uninstrument()
|
821
|
+
|
822
|
+
# Instrument with the provided tracer provider and arguments
|
823
|
+
instrumentor.instrument(tracer_provider=tracer_provider, *args)
|
779
824
|
|
780
825
|
def update_file_list(self):
|
781
826
|
"""
|
@@ -810,6 +855,7 @@ class Tracer(AgenticTracing):
|
|
810
855
|
|
811
856
|
# Convert string context to string if needed
|
812
857
|
if isinstance(context, str):
|
858
|
+
self.dynamic_exporter.user_context = context
|
813
859
|
self.user_context = context
|
814
860
|
else:
|
815
861
|
raise TypeError("context must be a string")
|
@@ -11,9 +11,8 @@ logging_level = (
|
|
11
11
|
logger.setLevel(logging.DEBUG) if os.getenv("DEBUG") == "1" else logging.INFO
|
12
12
|
)
|
13
13
|
|
14
|
-
def rag_trace_json_converter(input_trace, custom_model_cost, trace_id, user_details, tracer_type):
|
14
|
+
def rag_trace_json_converter(input_trace, custom_model_cost, trace_id, user_details, tracer_type,user_context):
|
15
15
|
trace_aggregate = {}
|
16
|
-
|
17
16
|
def get_prompt(input_trace):
|
18
17
|
if tracer_type == "langchain":
|
19
18
|
for span in input_trace:
|
@@ -46,7 +45,9 @@ def rag_trace_json_converter(input_trace, custom_model_cost, trace_id, user_deta
|
|
46
45
|
return None
|
47
46
|
|
48
47
|
def get_context(input_trace):
|
49
|
-
if
|
48
|
+
if user_context.strip():
|
49
|
+
return user_context
|
50
|
+
elif tracer_type == "langchain":
|
50
51
|
for span in input_trace:
|
51
52
|
if span["name"] == "VectorStoreRetriever":
|
52
53
|
return span["attributes"].get("retrieval.documents.1.document.content")
|
@@ -82,6 +83,7 @@ def rag_trace_json_converter(input_trace, custom_model_cost, trace_id, user_deta
|
|
82
83
|
else:
|
83
84
|
additional_metadata = get_additional_metadata(input_trace, custom_model_cost, model_cost)
|
84
85
|
|
86
|
+
trace_aggregate["metadata"] = user_details.get("trace_user_detail", {}).get("metadata")
|
85
87
|
trace_aggregate["metadata"].update(additional_metadata)
|
86
88
|
additional_metadata.pop("total_cost")
|
87
89
|
additional_metadata.pop("total_latency")
|
@@ -1,9 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ragaai_catalyst
|
3
|
-
Version: 2.1.
|
3
|
+
Version: 2.1.7.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>, Tushar Kumar <tushar.kumar@raga.ai>
|
6
|
-
Requires-Python:
|
6
|
+
Requires-Python: <=3.13.2,>=3.10
|
7
7
|
Description-Content-Type: text/markdown
|
8
8
|
License-File: LICENSE
|
9
9
|
Requires-Dist: aiohttp>=3.10.2
|
@@ -45,7 +45,7 @@ Requires-Dist: opentelemetry-sdk
|
|
45
45
|
Requires-Dist: opentelemetry-exporter-otlp
|
46
46
|
Requires-Dist: opentelemetry-proto>=1.12.0
|
47
47
|
Provides-Extra: dev
|
48
|
-
Requires-Dist: pytest; extra == "dev"
|
48
|
+
Requires-Dist: pytest>=8.3.5; extra == "dev"
|
49
49
|
Requires-Dist: pytest-cov; extra == "dev"
|
50
50
|
Requires-Dist: black; extra == "dev"
|
51
51
|
Requires-Dist: isort; extra == "dev"
|
@@ -31,7 +31,7 @@ ragaai_catalyst/tracers/distributed.py,sha256=MwlBwIxCAng-OI-7Ove_rkE1mTLeuW4Jw-
|
|
31
31
|
ragaai_catalyst/tracers/langchain_callback.py,sha256=CB75zzG3-DkYTELj0vI1MOHQTY0MuQJfoHIXz9Cl8S8,34568
|
32
32
|
ragaai_catalyst/tracers/llamaindex_callback.py,sha256=ZY0BJrrlz-P9Mg2dX-ZkVKG3gSvzwqBtk7JL_05MiYA,14028
|
33
33
|
ragaai_catalyst/tracers/llamaindex_instrumentation.py,sha256=Ys_jLkvVqo12bKgXDmkp4TxJu9HkBATrFE8cIcTYxWw,14329
|
34
|
-
ragaai_catalyst/tracers/tracer.py,sha256=
|
34
|
+
ragaai_catalyst/tracers/tracer.py,sha256=LHRd35rTFgYovxsI4tyXHgsCCdccO1_O1txFLFyLUKc,39069
|
35
35
|
ragaai_catalyst/tracers/upload_traces.py,sha256=PEE_JhAmOAMKyb-pl4ZoFWhIePxJm1zs93crrk94iEg,5887
|
36
36
|
ragaai_catalyst/tracers/agentic_tracing/README.md,sha256=X4QwLb7-Jg7GQMIXj-SerZIgDETfw-7VgYlczOR8ZeQ,4508
|
37
37
|
ragaai_catalyst/tracers/agentic_tracing/__init__.py,sha256=yf6SKvOPSpH-9LiKaoLKXwqj5sez8F_5wkOb91yp0oE,260
|
@@ -74,10 +74,10 @@ ragaai_catalyst/tracers/agentic_tracing/utils/trace_utils.py,sha256=W7Nw-IpugejI
|
|
74
74
|
ragaai_catalyst/tracers/agentic_tracing/utils/unique_decorator.py,sha256=G027toV-Km20JjKrc-Y_PilQ8ABEKrBvvzgLTnqVg7I,5819
|
75
75
|
ragaai_catalyst/tracers/agentic_tracing/utils/zip_list_of_unique_files.py,sha256=4TeCGsFF26249fV6dJHLTZDrRa93SG9oer4rudoF8Y4,19443
|
76
76
|
ragaai_catalyst/tracers/exporters/__init__.py,sha256=wQbaqyeIjVZxYprHCKZ9BeiqxeXYBKjzEgP79LWNxCU,293
|
77
|
-
ragaai_catalyst/tracers/exporters/dynamic_trace_exporter.py,sha256=
|
77
|
+
ragaai_catalyst/tracers/exporters/dynamic_trace_exporter.py,sha256=v2V-y1l9t9gQQbqoi2jlEhm1xRQjR5yTyr6rxSriXCE,6303
|
78
78
|
ragaai_catalyst/tracers/exporters/file_span_exporter.py,sha256=RgGteu-NVGprXKkynvyIO5yOjpbtA41R3W_NzCjnkwE,6445
|
79
79
|
ragaai_catalyst/tracers/exporters/raga_exporter.py,sha256=6xvjWXyh8XPkHKSLLmAZUQSvwuyY17ov8pv2VdfI0qA,17875
|
80
|
-
ragaai_catalyst/tracers/exporters/ragaai_trace_exporter.py,sha256=
|
80
|
+
ragaai_catalyst/tracers/exporters/ragaai_trace_exporter.py,sha256=BzL5u7yOcWHHtPueoJclXcvexBQo1SFu5lHY8ANnzP8,12998
|
81
81
|
ragaai_catalyst/tracers/instrumentators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
82
82
|
ragaai_catalyst/tracers/utils/__init__.py,sha256=KeMaZtYaTojilpLv65qH08QmpYclfpacDA0U3wg6Ybw,64
|
83
83
|
ragaai_catalyst/tracers/utils/convert_langchain_callbacks_output.py,sha256=e0URuRWCdzpxuBLfL82FOTMjbRuDAkW8aIRi7s7Nocc,1655
|
@@ -85,11 +85,11 @@ ragaai_catalyst/tracers/utils/convert_llama_instru_callback.py,sha256=8qLo7x4Zsn
|
|
85
85
|
ragaai_catalyst/tracers/utils/extraction_logic_llama_index.py,sha256=ZhPs0YhVtB82-Pq9o1BvCinKE_WPvVxPTEcZjlJbFYM,2371
|
86
86
|
ragaai_catalyst/tracers/utils/langchain_tracer_extraction_logic.py,sha256=XS2_x2qneqEx9oAighLg-LRiueWcESLwIC2r7eJT-Ww,3117
|
87
87
|
ragaai_catalyst/tracers/utils/model_prices_and_context_window_backup.json,sha256=C3uwkibJ08C9sOX-54kulZYmJlIpZ-SQpfE6HNGrjbM,343502
|
88
|
-
ragaai_catalyst/tracers/utils/rag_trace_json_converter.py,sha256=
|
88
|
+
ragaai_catalyst/tracers/utils/rag_trace_json_converter.py,sha256=sIUWwzXlEGU8wkVVL0w944tXxsOVdUHHV9UCImvBVOU,11406
|
89
89
|
ragaai_catalyst/tracers/utils/trace_json_converter.py,sha256=E0_QfciQMMpCtQYrNB4l8HJhlaFalr5bkMqkVRgQahY,14073
|
90
90
|
ragaai_catalyst/tracers/utils/utils.py,sha256=ViygfJ7vZ7U0CTSA1lbxVloHp4NSlmfDzBRNCJuMhis,2374
|
91
|
-
ragaai_catalyst-2.1.
|
92
|
-
ragaai_catalyst-2.1.
|
93
|
-
ragaai_catalyst-2.1.
|
94
|
-
ragaai_catalyst-2.1.
|
95
|
-
ragaai_catalyst-2.1.
|
91
|
+
ragaai_catalyst-2.1.7.1b0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
92
|
+
ragaai_catalyst-2.1.7.1b0.dist-info/METADATA,sha256=XmXgArVT9fOkKtws19dhu-OsyD4wAyinuEGl5z1VnoQ,22151
|
93
|
+
ragaai_catalyst-2.1.7.1b0.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
94
|
+
ragaai_catalyst-2.1.7.1b0.dist-info/top_level.txt,sha256=HpgsdRgEJMk8nqrU6qdCYk3di7MJkDL0B19lkc7dLfM,16
|
95
|
+
ragaai_catalyst-2.1.7.1b0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|