ragaai-catalyst 2.0.7.2__py3-none-any.whl → 2.0.7.2b0__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/evaluation.py +107 -153
- ragaai_catalyst/tracers/agentic_tracing/Untitled-1.json +660 -0
- ragaai_catalyst/tracers/agentic_tracing/__init__.py +3 -0
- ragaai_catalyst/tracers/agentic_tracing/agent_tracer.py +311 -0
- ragaai_catalyst/tracers/agentic_tracing/agentic_tracing.py +212 -0
- ragaai_catalyst/tracers/agentic_tracing/base.py +270 -0
- ragaai_catalyst/tracers/agentic_tracing/data_structure.py +239 -0
- ragaai_catalyst/tracers/agentic_tracing/llm_tracer.py +906 -0
- ragaai_catalyst/tracers/agentic_tracing/network_tracer.py +286 -0
- ragaai_catalyst/tracers/agentic_tracing/sample.py +197 -0
- ragaai_catalyst/tracers/agentic_tracing/tool_tracer.py +235 -0
- ragaai_catalyst/tracers/agentic_tracing/unique_decorator.py +221 -0
- ragaai_catalyst/tracers/agentic_tracing/unique_decorator_test.py +172 -0
- ragaai_catalyst/tracers/agentic_tracing/user_interaction_tracer.py +67 -0
- ragaai_catalyst/tracers/agentic_tracing/utils/__init__.py +3 -0
- ragaai_catalyst/tracers/agentic_tracing/utils/api_utils.py +18 -0
- ragaai_catalyst/tracers/agentic_tracing/utils/data_classes.py +61 -0
- ragaai_catalyst/tracers/agentic_tracing/utils/generic.py +32 -0
- ragaai_catalyst/tracers/agentic_tracing/utils/llm_utils.py +181 -0
- ragaai_catalyst/tracers/agentic_tracing/utils/model_costs.json +5946 -0
- ragaai_catalyst/tracers/agentic_tracing/utils/trace_utils.py +74 -0
- ragaai_catalyst/tracers/tracer.py +26 -4
- ragaai_catalyst/tracers/upload_traces.py +127 -0
- ragaai_catalyst-2.0.7.2b0.dist-info/METADATA +39 -0
- ragaai_catalyst-2.0.7.2b0.dist-info/RECORD +50 -0
- ragaai_catalyst-2.0.7.2.dist-info/METADATA +0 -386
- ragaai_catalyst-2.0.7.2.dist-info/RECORD +0 -29
- {ragaai_catalyst-2.0.7.2.dist-info → ragaai_catalyst-2.0.7.2b0.dist-info}/WHEEL +0 -0
- {ragaai_catalyst-2.0.7.2.dist-info → ragaai_catalyst-2.0.7.2b0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,74 @@
|
|
1
|
+
import json
|
2
|
+
import os
|
3
|
+
from importlib import resources
|
4
|
+
from dataclasses import asdict
|
5
|
+
|
6
|
+
|
7
|
+
def convert_usage_to_dict(usage):
|
8
|
+
# Initialize the token_usage dictionary with default values
|
9
|
+
token_usage = {
|
10
|
+
"input": 0,
|
11
|
+
"completion": 0,
|
12
|
+
"reasoning": 0, # Default reasoning tokens to 0 unless specified
|
13
|
+
}
|
14
|
+
|
15
|
+
if usage:
|
16
|
+
if isinstance(usage, dict):
|
17
|
+
# Access usage data as dictionary keys
|
18
|
+
token_usage["input"] = usage.get("prompt_tokens", 0)
|
19
|
+
token_usage["completion"] = usage.get("completion_tokens", 0)
|
20
|
+
# If reasoning tokens are provided, adjust accordingly
|
21
|
+
token_usage["reasoning"] = usage.get("reasoning_tokens", 0)
|
22
|
+
else:
|
23
|
+
# Handle the case where usage is not a dictionary
|
24
|
+
# This could be an object with attributes, or something else
|
25
|
+
try:
|
26
|
+
token_usage["input"] = getattr(usage, "prompt_tokens", 0)
|
27
|
+
token_usage["completion"] = getattr(usage, "completion_tokens", 0)
|
28
|
+
token_usage["reasoning"] = getattr(usage, "reasoning_tokens", 0)
|
29
|
+
except AttributeError:
|
30
|
+
# If attributes are not found, log or handle the error as needed
|
31
|
+
print(f"Warning: Unexpected usage type: {type(usage)}")
|
32
|
+
|
33
|
+
return token_usage
|
34
|
+
|
35
|
+
|
36
|
+
def calculate_cost(
|
37
|
+
token_usage,
|
38
|
+
input_cost_per_token=0.0,
|
39
|
+
output_cost_per_token=0.0,
|
40
|
+
reasoning_cost_per_token=0.0,
|
41
|
+
):
|
42
|
+
input_tokens = token_usage.get("prompt_tokens", 0)
|
43
|
+
output_tokens = token_usage.get("completion_tokens", 0)
|
44
|
+
reasoning_tokens = token_usage.get("reasoning_tokens", 0)
|
45
|
+
|
46
|
+
input_cost = input_tokens * input_cost_per_token
|
47
|
+
output_cost = output_tokens * output_cost_per_token
|
48
|
+
reasoning_cost = reasoning_tokens * reasoning_cost_per_token
|
49
|
+
|
50
|
+
total_cost = input_cost + output_cost + reasoning_cost
|
51
|
+
|
52
|
+
return {
|
53
|
+
"input": input_cost,
|
54
|
+
"completion": output_cost,
|
55
|
+
"reasoning": reasoning_cost,
|
56
|
+
"total": total_cost,
|
57
|
+
}
|
58
|
+
|
59
|
+
|
60
|
+
def load_model_costs():
|
61
|
+
try:
|
62
|
+
current_dir = os.path.dirname(os.path.abspath(__file__))
|
63
|
+
model_costs_path = os.path.join(current_dir, "model_costs.json")
|
64
|
+
with open(model_costs_path, "r") as file:
|
65
|
+
return json.load(file)
|
66
|
+
except FileNotFoundError:
|
67
|
+
with resources.open_text("utils", "model_costs.json") as file:
|
68
|
+
return json.load(file)
|
69
|
+
|
70
|
+
|
71
|
+
def log_event(event_data, log_file_path):
|
72
|
+
event_data = asdict(event_data)
|
73
|
+
with open(log_file_path, "a") as f:
|
74
|
+
f.write(json.dumps(event_data) + "\n")
|
@@ -19,11 +19,13 @@ from .instrumentators import (
|
|
19
19
|
from .utils import get_unique_key
|
20
20
|
# from .llamaindex_callback import LlamaIndexTracer
|
21
21
|
from ..ragaai_catalyst import RagaAICatalyst
|
22
|
+
from .agentic_tracing.agentic_tracing import AgenticTracing
|
23
|
+
from .agentic_tracing.llm_tracer import LLMTracerMixin
|
22
24
|
|
23
25
|
logger = logging.getLogger(__name__)
|
24
26
|
|
25
27
|
|
26
|
-
class Tracer:
|
28
|
+
class Tracer(AgenticTracing):
|
27
29
|
NUM_PROJECTS = 100
|
28
30
|
TIMEOUT = 10
|
29
31
|
def __init__(
|
@@ -41,6 +43,7 @@ class Tracer:
|
|
41
43
|
|
42
44
|
Args:
|
43
45
|
project_name (str): The name of the project.
|
46
|
+
dataset_name (str): The name of the dataset.
|
44
47
|
tracer_type (str, optional): The type of tracer. Defaults to None.
|
45
48
|
pipeline (dict, optional): The pipeline configuration. Defaults to None.
|
46
49
|
metadata (dict, optional): The metadata. Defaults to None.
|
@@ -50,16 +53,28 @@ class Tracer:
|
|
50
53
|
Returns:
|
51
54
|
None
|
52
55
|
"""
|
56
|
+
# Set auto_instrument_llm to True to enable automatic LLM tracing
|
57
|
+
user_detail = {
|
58
|
+
"project_name": project_name,
|
59
|
+
"project_id": None, # Will be set after project validation
|
60
|
+
"dataset_name": dataset_name,
|
61
|
+
"trace_user_detail": {"metadata": metadata} if metadata else {}
|
62
|
+
}
|
63
|
+
super().__init__(user_detail=user_detail, auto_instrument_llm=True)
|
64
|
+
self.is_active = True
|
53
65
|
self.project_name = project_name
|
54
66
|
self.dataset_name = dataset_name
|
55
67
|
self.tracer_type = tracer_type
|
56
68
|
self.metadata = self._improve_metadata(metadata, tracer_type)
|
69
|
+
self.metadata["total_cost"] = 0.0
|
70
|
+
self.metadata["total_tokens"] = 0
|
57
71
|
self.pipeline = pipeline
|
58
72
|
self.description = description
|
59
73
|
self.upload_timeout = upload_timeout
|
60
74
|
self.base_url = f"{RagaAICatalyst.BASE_URL}"
|
61
75
|
self.timeout = 10
|
62
76
|
self.num_projects = 100
|
77
|
+
self.start_time = datetime.datetime.now(datetime.timezone.utc)
|
63
78
|
|
64
79
|
try:
|
65
80
|
response = requests.get(
|
@@ -81,6 +96,7 @@ class Tracer:
|
|
81
96
|
self.project_id = [
|
82
97
|
project["id"] for project in response.json()["data"]["content"] if project["name"] == project_name
|
83
98
|
][0]
|
99
|
+
self._pass_user_data()
|
84
100
|
|
85
101
|
except requests.exceptions.RequestException as e:
|
86
102
|
logger.error(f"Failed to retrieve projects list: {e}")
|
@@ -98,7 +114,8 @@ class Tracer:
|
|
98
114
|
from .llamaindex_callback import LlamaIndexTracer
|
99
115
|
|
100
116
|
else:
|
101
|
-
|
117
|
+
self._upload_task = None
|
118
|
+
# raise ValueError (f"Currently supported tracer types are 'langchain' and 'llamaindex'.")
|
102
119
|
|
103
120
|
def _improve_metadata(self, metadata, tracer_type):
|
104
121
|
if metadata is None:
|
@@ -157,7 +174,9 @@ class Tracer:
|
|
157
174
|
elif self.tracer_type == "llamaindex":
|
158
175
|
from .llamaindex_callback import LlamaIndexTracer
|
159
176
|
return LlamaIndexTracer(self._pass_user_data()).start()
|
160
|
-
|
177
|
+
else:
|
178
|
+
super().start()
|
179
|
+
return self
|
161
180
|
|
162
181
|
def stop(self):
|
163
182
|
"""Stop the tracer and initiate trace upload."""
|
@@ -172,7 +191,9 @@ class Tracer:
|
|
172
191
|
return "Trace upload initiated. Use get_upload_status() to check the status."
|
173
192
|
elif self.tracer_type == "llamaindex":
|
174
193
|
from .llamaindex_callback import LlamaIndexTracer
|
175
|
-
return LlamaIndexTracer().stop()
|
194
|
+
return LlamaIndexTracer(self._pass_user_data()).stop()
|
195
|
+
else:
|
196
|
+
super().stop()
|
176
197
|
|
177
198
|
def get_upload_status(self):
|
178
199
|
"""Check the status of the trace upload."""
|
@@ -262,6 +283,7 @@ class Tracer:
|
|
262
283
|
# Reset instrumentation flag
|
263
284
|
self.is_instrumented = False
|
264
285
|
# Note: We're not resetting all attributes here to allow for upload status checking
|
286
|
+
|
265
287
|
def _pass_user_data(self):
|
266
288
|
return {"project_name":self.project_name,
|
267
289
|
"project_id": self.project_id,
|
@@ -0,0 +1,127 @@
|
|
1
|
+
import requests
|
2
|
+
import json
|
3
|
+
import os
|
4
|
+
from datetime import datetime
|
5
|
+
|
6
|
+
|
7
|
+
class UploadTraces:
|
8
|
+
def __init__(self,
|
9
|
+
json_file_path,
|
10
|
+
project_name,
|
11
|
+
project_id,
|
12
|
+
dataset_name,
|
13
|
+
user_detail,
|
14
|
+
base_url):
|
15
|
+
self.json_file_path = json_file_path
|
16
|
+
self.project_name = project_name
|
17
|
+
self.project_id = project_id
|
18
|
+
self.dataset_name = dataset_name
|
19
|
+
self.user_detail = user_detail
|
20
|
+
self.base_url = base_url
|
21
|
+
self.timeout = 10
|
22
|
+
|
23
|
+
def _create_dataset_schema_with_trace(self):
|
24
|
+
SCHEMA_MAPPING_NEW = {
|
25
|
+
"trace_id": {"columnType": "traceId"},
|
26
|
+
"trace_uri": {"columnType": "traceUri"},
|
27
|
+
"prompt": {"columnType": "prompt"},
|
28
|
+
"response":{"columnType": "response"},
|
29
|
+
"context": {"columnType": "context"},
|
30
|
+
"llm_model": {"columnType":"pipeline"},
|
31
|
+
"recorded_on": {"columnType": "metadata"},
|
32
|
+
"embed_model": {"columnType":"pipeline"},
|
33
|
+
"log_source": {"columnType": "metadata"},
|
34
|
+
"vector_store":{"columnType":"pipeline"},
|
35
|
+
"feedback": {"columnType":"feedBack"}
|
36
|
+
}
|
37
|
+
def make_request():
|
38
|
+
headers = {
|
39
|
+
"Content-Type": "application/json",
|
40
|
+
"Authorization": f"Bearer {os.getenv('RAGAAI_CATALYST_TOKEN')}",
|
41
|
+
"X-Project-Name": self.project_name,
|
42
|
+
}
|
43
|
+
payload = json.dumps({
|
44
|
+
"datasetName": self.dataset_name,
|
45
|
+
"schemaMapping": SCHEMA_MAPPING_NEW,
|
46
|
+
"traceFolderUrl": None,
|
47
|
+
})
|
48
|
+
response = requests.request("POST",
|
49
|
+
f"{self.base_url}/v1/llm/dataset/logs",
|
50
|
+
headers=headers,
|
51
|
+
data=payload,
|
52
|
+
timeout=self.timeout
|
53
|
+
)
|
54
|
+
|
55
|
+
return response
|
56
|
+
|
57
|
+
response = make_request()
|
58
|
+
|
59
|
+
if response.status_code == 401:
|
60
|
+
# get_token() # Fetch a new token and set it in the environment
|
61
|
+
response = make_request() # Retry the request
|
62
|
+
if response.status_code != 200:
|
63
|
+
return response.status_code
|
64
|
+
return response.status_code
|
65
|
+
|
66
|
+
def _get_presigned_url(self):
|
67
|
+
payload = json.dumps({
|
68
|
+
"datasetName": self.dataset_name,
|
69
|
+
"numFiles": 1,
|
70
|
+
})
|
71
|
+
headers = {
|
72
|
+
"Content-Type": "application/json",
|
73
|
+
"Authorization": f"Bearer {os.getenv('RAGAAI_CATALYST_TOKEN')}",
|
74
|
+
"X-Project-Name": self.project_name,
|
75
|
+
}
|
76
|
+
|
77
|
+
response = requests.request("GET",
|
78
|
+
f"{self.base_url}/v1/llm/presigned-url",
|
79
|
+
headers=headers,
|
80
|
+
data=payload,
|
81
|
+
timeout=self.timeout)
|
82
|
+
if response.status_code == 200:
|
83
|
+
presignedUrls = response.json()["data"]["presignedUrls"][0]
|
84
|
+
return presignedUrls
|
85
|
+
|
86
|
+
def _put_presigned_url(self, presignedUrl, filename):
|
87
|
+
headers = {
|
88
|
+
"Content-Type": "application/json",
|
89
|
+
}
|
90
|
+
|
91
|
+
if "blob.core.windows.net" in presignedUrl: # Azure
|
92
|
+
headers["x-ms-blob-type"] = "BlockBlob"
|
93
|
+
print(f"Uploading traces...")
|
94
|
+
with open(filename) as f:
|
95
|
+
payload = f.read().replace("\n", "").replace("\r", "").encode()
|
96
|
+
|
97
|
+
|
98
|
+
response = requests.request("PUT",
|
99
|
+
presignedUrl,
|
100
|
+
headers=headers,
|
101
|
+
data=payload,
|
102
|
+
timeout=self.timeout)
|
103
|
+
if response.status_code != 200 or response.status_code != 201:
|
104
|
+
return response, response.status_code
|
105
|
+
|
106
|
+
def _insert_traces(self, presignedUrl):
|
107
|
+
headers = {
|
108
|
+
"Authorization": f"Bearer {os.getenv('RAGAAI_CATALYST_TOKEN')}",
|
109
|
+
"Content-Type": "application/json",
|
110
|
+
"X-Project-Name": self.project_name,
|
111
|
+
}
|
112
|
+
payload = json.dumps({
|
113
|
+
"datasetName": self.dataset_name,
|
114
|
+
"presignedUrl": presignedUrl,
|
115
|
+
})
|
116
|
+
response = requests.request("POST",
|
117
|
+
f"{self.base_url}/v1/llm/insert/trace",
|
118
|
+
headers=headers,
|
119
|
+
data=payload,
|
120
|
+
timeout=self.timeout)
|
121
|
+
|
122
|
+
def upload_traces(self):
|
123
|
+
self._create_dataset_schema_with_trace()
|
124
|
+
presignedUrl = self._get_presigned_url()
|
125
|
+
self._put_presigned_url(presignedUrl, self.json_file_path)
|
126
|
+
self._insert_traces(presignedUrl)
|
127
|
+
print("Traces uplaoded")
|
@@ -0,0 +1,39 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: ragaai_catalyst
|
3
|
+
Version: 2.0.7.2b0
|
4
|
+
Summary: RAGA AI CATALYST
|
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
|
7
|
+
Description-Content-Type: text/markdown
|
8
|
+
Requires-Dist: aiohttp>=3.10.2
|
9
|
+
Requires-Dist: opentelemetry-api==1.25.0
|
10
|
+
Requires-Dist: opentelemetry-sdk==1.25.0
|
11
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.25.0
|
12
|
+
Requires-Dist: opentelemetry-instrumentation==0.46b0
|
13
|
+
Requires-Dist: opentelemetry-instrumentation-fastapi==0.46b0
|
14
|
+
Requires-Dist: opentelemetry-instrumentation-asgi==0.46b0
|
15
|
+
Requires-Dist: opentelemetry-semantic-conventions==0.46b0
|
16
|
+
Requires-Dist: opentelemetry-util-http==0.46b0
|
17
|
+
Requires-Dist: opentelemetry-instrumentation-langchain~=0.24.0
|
18
|
+
Requires-Dist: opentelemetry-instrumentation-openai~=0.24.0
|
19
|
+
Requires-Dist: langchain-core>=0.2.11
|
20
|
+
Requires-Dist: langchain>=0.2.11
|
21
|
+
Requires-Dist: openai>=1.57.0
|
22
|
+
Requires-Dist: pandas>=2.1.1
|
23
|
+
Requires-Dist: groq>=0.11.0
|
24
|
+
Requires-Dist: PyPDF2>=3.0.1
|
25
|
+
Requires-Dist: google-generativeai>=0.8.2
|
26
|
+
Requires-Dist: Markdown>=3.7
|
27
|
+
Requires-Dist: litellm==1.51.1
|
28
|
+
Requires-Dist: tenacity==8.3.0
|
29
|
+
Requires-Dist: tqdm>=4.66.5
|
30
|
+
Requires-Dist: llama-index==0.10.0
|
31
|
+
Requires-Dist: pyopenssl==24.2.1
|
32
|
+
Requires-Dist: psutil>=5.9.5
|
33
|
+
Provides-Extra: dev
|
34
|
+
Requires-Dist: pytest; extra == "dev"
|
35
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
36
|
+
Requires-Dist: black; extra == "dev"
|
37
|
+
Requires-Dist: isort; extra == "dev"
|
38
|
+
Requires-Dist: mypy; extra == "dev"
|
39
|
+
Requires-Dist: flake8; extra == "dev"
|
@@ -0,0 +1,50 @@
|
|
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=j_vu3Xkp_8qYW0J9Qnn53Uyh98MsugqYl5zxhOv9EOg,10731
|
4
|
+
ragaai_catalyst/evaluation.py,sha256=xrJ8kxw-fGNJgHsBTJCdH4jrxwzI6jpzUIQ9po-V4kc,20327
|
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=NppmJhD3sQ5R1q6teaZLS7rULj08Gb6JT8XiPRIe_B0,49
|
15
|
+
ragaai_catalyst/tracers/llamaindex_callback.py,sha256=vPE7MieKjfwLrLUnnPs20Df0xNYqoCCj-Mt2NbiuiKU,14023
|
16
|
+
ragaai_catalyst/tracers/tracer.py,sha256=F7LiIUKj1mCl9tl_xwJOWLP-80ICuw5KVBsismLpOM0,12280
|
17
|
+
ragaai_catalyst/tracers/upload_traces.py,sha256=hs0PEmit3n3_uUqrdbwcBdyK5Nbkik3JQVwJMEwYTd4,4796
|
18
|
+
ragaai_catalyst/tracers/agentic_tracing/Untitled-1.json,sha256=kqwtLzflk342U7Tvjf5Bari9m3I0dVMVU7wNShDwuW4,43639
|
19
|
+
ragaai_catalyst/tracers/agentic_tracing/__init__.py,sha256=6QyQI8P7aNFHTantNJOP1ZdSNrDKBLhlg_gGNj7tm1c,73
|
20
|
+
ragaai_catalyst/tracers/agentic_tracing/agent_tracer.py,sha256=n0fuZOguYScuRoRijz-16okfh54HWlpbTmt133msi64,11815
|
21
|
+
ragaai_catalyst/tracers/agentic_tracing/agentic_tracing.py,sha256=XvoOqEJjqzhE5Xa8mJ2knik6qrecxd1-kRZAFl7P0FI,8680
|
22
|
+
ragaai_catalyst/tracers/agentic_tracing/base.py,sha256=4YWt9Sdrs4IZoJldBN_tl0DCu4zLLEYyDoLvs36oFiw,9955
|
23
|
+
ragaai_catalyst/tracers/agentic_tracing/data_structure.py,sha256=YRZFTzenIIPJ-eDblnUUjY1QeECu6DozfhCgmj38n9s,4696
|
24
|
+
ragaai_catalyst/tracers/agentic_tracing/llm_tracer.py,sha256=hxvUc4CYeVncgzJThykyg8Dd98lgogSGbMch8pjF5C8,36766
|
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=O9HJ-lOTK5WYyv6u27W0pvQp4vfsuZGYDua6Ev2zzFc,8407
|
28
|
+
ragaai_catalyst/tracers/agentic_tracing/unique_decorator.py,sha256=WtcALkwS8dsJhqc1641toyH1lVwWyzFwRLBKY56XKJI,7448
|
29
|
+
ragaai_catalyst/tracers/agentic_tracing/unique_decorator_test.py,sha256=Xk1cLzs-2A3dgyBwRRnCWs7Eubki40FVonwd433hPN8,4805
|
30
|
+
ragaai_catalyst/tracers/agentic_tracing/user_interaction_tracer.py,sha256=7Y-31rcoJ4YeZn9gSnqJgujGpRX6rKAkq6Y0KDIMTOo,2085
|
31
|
+
ragaai_catalyst/tracers/agentic_tracing/utils/__init__.py,sha256=XdB3X_ufe4RVvGorxSqAiB9dYv4UD7Hvvuw3bsDUppY,60
|
32
|
+
ragaai_catalyst/tracers/agentic_tracing/utils/api_utils.py,sha256=JyNCbfpW-w4O9CjtemTqmor2Rh1WGpQwhRaDSRmBxw8,689
|
33
|
+
ragaai_catalyst/tracers/agentic_tracing/utils/data_classes.py,sha256=gFOadWzUORETaH3Y_HerHXs_aVFEt5ry2NQ36domW58,1267
|
34
|
+
ragaai_catalyst/tracers/agentic_tracing/utils/generic.py,sha256=WwXT01xmp8MSr7KinuDCSK9a1ifpLcT7ajFkvYviG_A,1190
|
35
|
+
ragaai_catalyst/tracers/agentic_tracing/utils/llm_utils.py,sha256=noCDrF1tG-n1LSdooq_-kkBw8z35YvsiGGhcy1-yL4M,5810
|
36
|
+
ragaai_catalyst/tracers/agentic_tracing/utils/model_costs.json,sha256=5jvhriJJkWT-nz8S-KsgsjOn9g7D2hKYob8URl9FHOk,215176
|
37
|
+
ragaai_catalyst/tracers/agentic_tracing/utils/trace_utils.py,sha256=9cFzfFqIA968bUG7LNTjdN7zbdEXUtcvRKg883ade2c,2586
|
38
|
+
ragaai_catalyst/tracers/exporters/__init__.py,sha256=kVA8zp05h3phu4e-iHSlnznp_PzMRczB7LphSsZgUjg,138
|
39
|
+
ragaai_catalyst/tracers/exporters/file_span_exporter.py,sha256=RgGteu-NVGprXKkynvyIO5yOjpbtA41R3W_NzCjnkwE,6445
|
40
|
+
ragaai_catalyst/tracers/exporters/raga_exporter.py,sha256=rQ5Wj71f2Ke3qLlV8KiWCskbGBR-ia_hlzDx86rPrEo,18188
|
41
|
+
ragaai_catalyst/tracers/instrumentators/__init__.py,sha256=FgnMQupoRTzmVsG9YKsLQera2Pfs-AluZv8CxwavoyQ,253
|
42
|
+
ragaai_catalyst/tracers/instrumentators/langchain.py,sha256=yMN0qVF0pUVk6R5M1vJoUXezDo1ejs4klCFRlE8x4vE,574
|
43
|
+
ragaai_catalyst/tracers/instrumentators/llamaindex.py,sha256=SMrRlR4xM7k9HK43hakE8rkrWHxMlmtmWD-AX6TeByc,416
|
44
|
+
ragaai_catalyst/tracers/instrumentators/openai.py,sha256=14R4KW9wQCR1xysLfsP_nxS7cqXrTPoD8En4MBAaZUU,379
|
45
|
+
ragaai_catalyst/tracers/utils/__init__.py,sha256=KeMaZtYaTojilpLv65qH08QmpYclfpacDA0U3wg6Ybw,64
|
46
|
+
ragaai_catalyst/tracers/utils/utils.py,sha256=ViygfJ7vZ7U0CTSA1lbxVloHp4NSlmfDzBRNCJuMhis,2374
|
47
|
+
ragaai_catalyst-2.0.7.2b0.dist-info/METADATA,sha256=dBXbhc2TWIyfwewQ2tmlnEcu8DU6hOyZVIPX22Gl-6w,1677
|
48
|
+
ragaai_catalyst-2.0.7.2b0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
49
|
+
ragaai_catalyst-2.0.7.2b0.dist-info/top_level.txt,sha256=HpgsdRgEJMk8nqrU6qdCYk3di7MJkDL0B19lkc7dLfM,16
|
50
|
+
ragaai_catalyst-2.0.7.2b0.dist-info/RECORD,,
|