langtrace-python-sdk 2.2.16__py3-none-any.whl → 2.2.18__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.
- langtrace_python_sdk/instrumentation/anthropic/patch.py +2 -1
- langtrace_python_sdk/instrumentation/chroma/patch.py +2 -1
- langtrace_python_sdk/instrumentation/cohere/patch.py +14 -4
- langtrace_python_sdk/instrumentation/crewai/patch.py +4 -1
- langtrace_python_sdk/instrumentation/gemini/patch.py +3 -2
- langtrace_python_sdk/instrumentation/groq/patch.py +3 -2
- langtrace_python_sdk/instrumentation/langchain/patch.py +2 -1
- langtrace_python_sdk/instrumentation/langchain_community/patch.py +2 -1
- langtrace_python_sdk/instrumentation/langchain_core/patch.py +2 -1
- langtrace_python_sdk/instrumentation/langgraph/patch.py +2 -1
- langtrace_python_sdk/instrumentation/llamaindex/patch.py +5 -2
- langtrace_python_sdk/instrumentation/ollama/patch.py +12 -7
- langtrace_python_sdk/instrumentation/openai/patch.py +8 -7
- langtrace_python_sdk/instrumentation/pinecone/patch.py +2 -1
- langtrace_python_sdk/instrumentation/qdrant/patch.py +2 -1
- langtrace_python_sdk/instrumentation/vertexai/patch.py +2 -1
- langtrace_python_sdk/instrumentation/weaviate/patch.py +2 -1
- langtrace_python_sdk/utils/llm.py +7 -0
- langtrace_python_sdk/version.py +1 -1
- {langtrace_python_sdk-2.2.16.dist-info → langtrace_python_sdk-2.2.18.dist-info}/METADATA +1 -1
- {langtrace_python_sdk-2.2.16.dist-info → langtrace_python_sdk-2.2.18.dist-info}/RECORD +24 -24
- {langtrace_python_sdk-2.2.16.dist-info → langtrace_python_sdk-2.2.18.dist-info}/WHEEL +0 -0
- {langtrace_python_sdk-2.2.16.dist-info → langtrace_python_sdk-2.2.18.dist-info}/entry_points.txt +0 -0
- {langtrace_python_sdk-2.2.16.dist-info → langtrace_python_sdk-2.2.18.dist-info}/licenses/LICENSE +0 -0
|
@@ -23,6 +23,7 @@ from langtrace_python_sdk.utils.llm import (
|
|
|
23
23
|
get_langtrace_attributes,
|
|
24
24
|
get_llm_request_attributes,
|
|
25
25
|
get_llm_url,
|
|
26
|
+
get_span_name,
|
|
26
27
|
is_streaming,
|
|
27
28
|
set_event_completion,
|
|
28
29
|
set_event_completion_chunk,
|
|
@@ -64,7 +65,7 @@ def messages_create(original_method, version, tracer):
|
|
|
64
65
|
attributes = LLMSpanAttributes(**span_attributes)
|
|
65
66
|
|
|
66
67
|
span = tracer.start_span(
|
|
67
|
-
APIS["MESSAGES_CREATE"]["METHOD"], kind=SpanKind.CLIENT
|
|
68
|
+
name=get_span_name(APIS["MESSAGES_CREATE"]["METHOD"]), kind=SpanKind.CLIENT
|
|
68
69
|
)
|
|
69
70
|
for field, value in attributes.model_dump(by_alias=True).items():
|
|
70
71
|
set_span_attribute(span, field, value)
|
|
@@ -16,6 +16,7 @@ limitations under the License.
|
|
|
16
16
|
|
|
17
17
|
from langtrace.trace_attributes import DatabaseSpanAttributes
|
|
18
18
|
from langtrace_python_sdk.utils import set_span_attribute
|
|
19
|
+
from langtrace_python_sdk.utils.llm import get_span_name
|
|
19
20
|
from langtrace_python_sdk.utils.silently_fail import silently_fail
|
|
20
21
|
from opentelemetry import baggage, trace
|
|
21
22
|
from opentelemetry.trace import SpanKind
|
|
@@ -60,7 +61,7 @@ def collection_patch(method, version, tracer):
|
|
|
60
61
|
attributes = DatabaseSpanAttributes(**span_attributes)
|
|
61
62
|
|
|
62
63
|
with tracer.start_as_current_span(
|
|
63
|
-
api["METHOD"],
|
|
64
|
+
name=get_span_name(api["METHOD"]),
|
|
64
65
|
kind=SpanKind.CLIENT,
|
|
65
66
|
context=set_span_in_context(trace.get_current_span()),
|
|
66
67
|
) as span:
|
|
@@ -21,6 +21,7 @@ from langtrace_python_sdk.utils.llm import (
|
|
|
21
21
|
get_llm_request_attributes,
|
|
22
22
|
get_extra_attributes,
|
|
23
23
|
get_llm_url,
|
|
24
|
+
get_span_name,
|
|
24
25
|
set_event_completion,
|
|
25
26
|
set_event_completion_chunk,
|
|
26
27
|
set_usage_attributes,
|
|
@@ -57,7 +58,9 @@ def rerank(original_method, version, tracer):
|
|
|
57
58
|
|
|
58
59
|
attributes = LLMSpanAttributes(**span_attributes)
|
|
59
60
|
|
|
60
|
-
span = tracer.start_span(
|
|
61
|
+
span = tracer.start_span(
|
|
62
|
+
name=get_span_name(APIS["RERANK"]["METHOD"]), kind=SpanKind.CLIENT
|
|
63
|
+
)
|
|
61
64
|
for field, value in attributes.model_dump(by_alias=True).items():
|
|
62
65
|
set_span_attribute(span, field, value)
|
|
63
66
|
try:
|
|
@@ -137,7 +140,10 @@ def embed(original_method, version, tracer):
|
|
|
137
140
|
|
|
138
141
|
attributes = LLMSpanAttributes(**span_attributes)
|
|
139
142
|
|
|
140
|
-
span = tracer.start_span(
|
|
143
|
+
span = tracer.start_span(
|
|
144
|
+
name=get_span_name(APIS["EMBED"]["METHOD"]),
|
|
145
|
+
kind=SpanKind.CLIENT,
|
|
146
|
+
)
|
|
141
147
|
for field, value in attributes.model_dump(by_alias=True).items():
|
|
142
148
|
set_span_attribute(span, field, value)
|
|
143
149
|
try:
|
|
@@ -225,7 +231,9 @@ def chat_create(original_method, version, tracer):
|
|
|
225
231
|
# stringify the list of objects
|
|
226
232
|
attributes.llm_tool_results = json.dumps(kwargs.get("tool_results"))
|
|
227
233
|
|
|
228
|
-
span = tracer.start_span(
|
|
234
|
+
span = tracer.start_span(
|
|
235
|
+
name=get_span_name(APIS["CHAT_CREATE"]["METHOD"]), kind=SpanKind.CLIENT
|
|
236
|
+
)
|
|
229
237
|
|
|
230
238
|
# Set the attributes on the span
|
|
231
239
|
for field, value in attributes.model_dump(by_alias=True).items():
|
|
@@ -391,7 +399,9 @@ def chat_stream(original_method, version, tracer):
|
|
|
391
399
|
# stringify the list of objects
|
|
392
400
|
attributes.llm_tool_results = json.dumps(kwargs.get("tool_results"))
|
|
393
401
|
|
|
394
|
-
span = tracer.start_span(
|
|
402
|
+
span = tracer.start_span(
|
|
403
|
+
name=get_span_name(APIS["CHAT_STREAM"]["METHOD"]), kind=SpanKind.CLIENT
|
|
404
|
+
)
|
|
395
405
|
for field, value in attributes.model_dump(by_alias=True).items():
|
|
396
406
|
set_span_attribute(span, field, value)
|
|
397
407
|
try:
|
|
@@ -2,6 +2,7 @@ import json
|
|
|
2
2
|
from importlib_metadata import version as v
|
|
3
3
|
from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
|
|
4
4
|
from langtrace_python_sdk.utils import set_span_attribute
|
|
5
|
+
from langtrace_python_sdk.utils.llm import get_span_name
|
|
5
6
|
from langtrace_python_sdk.utils.silently_fail import silently_fail
|
|
6
7
|
from langtrace_python_sdk.constants.instrumentation.common import (
|
|
7
8
|
LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY,
|
|
@@ -143,7 +144,9 @@ def patch_crew(operation_name, version, tracer):
|
|
|
143
144
|
|
|
144
145
|
attributes = FrameworkSpanAttributes(**span_attributes)
|
|
145
146
|
|
|
146
|
-
with tracer.start_as_current_span(
|
|
147
|
+
with tracer.start_as_current_span(
|
|
148
|
+
get_span_name(operation_name), kind=SpanKind.CLIENT
|
|
149
|
+
) as span:
|
|
147
150
|
_set_input_attributes(span, kwargs, attributes)
|
|
148
151
|
|
|
149
152
|
try:
|
|
@@ -10,6 +10,7 @@ from langtrace_python_sdk.utils.llm import (
|
|
|
10
10
|
get_langtrace_attributes,
|
|
11
11
|
get_llm_request_attributes,
|
|
12
12
|
get_llm_url,
|
|
13
|
+
get_span_name,
|
|
13
14
|
is_streaming,
|
|
14
15
|
set_event_completion,
|
|
15
16
|
set_event_completion_chunk,
|
|
@@ -35,7 +36,7 @@ def patch_gemini(name, version, tracer: Tracer):
|
|
|
35
36
|
}
|
|
36
37
|
attributes = LLMSpanAttributes(**span_attributes)
|
|
37
38
|
span = tracer.start_span(
|
|
38
|
-
name=name,
|
|
39
|
+
name=get_span_name(name),
|
|
39
40
|
kind=SpanKind.CLIENT,
|
|
40
41
|
context=set_span_in_context(trace.get_current_span()),
|
|
41
42
|
)
|
|
@@ -76,7 +77,7 @@ def apatch_gemini(name, version, tracer: Tracer):
|
|
|
76
77
|
}
|
|
77
78
|
attributes = LLMSpanAttributes(**span_attributes)
|
|
78
79
|
span = tracer.start_span(
|
|
79
|
-
name=name,
|
|
80
|
+
name=get_span_name(name),
|
|
80
81
|
kind=SpanKind.CLIENT,
|
|
81
82
|
context=set_span_in_context(trace.get_current_span()),
|
|
82
83
|
)
|
|
@@ -29,6 +29,7 @@ from langtrace_python_sdk.utils.llm import (
|
|
|
29
29
|
get_llm_request_attributes,
|
|
30
30
|
get_llm_url,
|
|
31
31
|
get_langtrace_attributes,
|
|
32
|
+
get_span_name,
|
|
32
33
|
set_event_completion,
|
|
33
34
|
set_event_completion_chunk,
|
|
34
35
|
set_usage_attributes,
|
|
@@ -107,7 +108,7 @@ def chat_completions_create(original_method, version, tracer):
|
|
|
107
108
|
# with tracer.start_as_current_span(APIS["CHAT_COMPLETION"]["METHOD"],
|
|
108
109
|
# kind=SpanKind.CLIENT) as span:
|
|
109
110
|
span = tracer.start_span(
|
|
110
|
-
APIS["CHAT_COMPLETION"]["METHOD"],
|
|
111
|
+
name=get_span_name(APIS["CHAT_COMPLETION"]["METHOD"]),
|
|
111
112
|
kind=SpanKind.CLIENT,
|
|
112
113
|
context=set_span_in_context(trace.get_current_span()),
|
|
113
114
|
)
|
|
@@ -335,7 +336,7 @@ def async_chat_completions_create(original_method, version, tracer):
|
|
|
335
336
|
# with tracer.start_as_current_span(APIS["CHAT_COMPLETION"]["METHOD"],
|
|
336
337
|
# kind=SpanKind.CLIENT) as span:
|
|
337
338
|
span = tracer.start_span(
|
|
338
|
-
APIS["CHAT_COMPLETION"]["METHOD"], kind=SpanKind.CLIENT
|
|
339
|
+
name=get_span_name(APIS["CHAT_COMPLETION"]["METHOD"]), kind=SpanKind.CLIENT
|
|
339
340
|
)
|
|
340
341
|
for field, value in attributes.model_dump(by_alias=True).items():
|
|
341
342
|
set_span_attribute(span, field, value)
|
|
@@ -18,6 +18,7 @@ import json
|
|
|
18
18
|
|
|
19
19
|
from langtrace.trace_attributes import FrameworkSpanAttributes
|
|
20
20
|
from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
|
|
21
|
+
from langtrace_python_sdk.utils.llm import get_span_name
|
|
21
22
|
from opentelemetry import baggage, trace
|
|
22
23
|
from opentelemetry.trace.propagation import set_span_in_context
|
|
23
24
|
from opentelemetry.trace import SpanKind, StatusCode
|
|
@@ -57,7 +58,7 @@ def generic_patch(
|
|
|
57
58
|
attributes = FrameworkSpanAttributes(**span_attributes)
|
|
58
59
|
|
|
59
60
|
with tracer.start_as_current_span(
|
|
60
|
-
method_name,
|
|
61
|
+
name=get_span_name(method_name),
|
|
61
62
|
kind=SpanKind.CLIENT,
|
|
62
63
|
context=set_span_in_context(trace.get_current_span()),
|
|
63
64
|
) as span:
|
|
@@ -17,6 +17,7 @@ limitations under the License.
|
|
|
17
17
|
import json
|
|
18
18
|
|
|
19
19
|
from langtrace.trace_attributes import FrameworkSpanAttributes
|
|
20
|
+
from langtrace_python_sdk.utils.llm import get_span_name
|
|
20
21
|
from opentelemetry import baggage, trace
|
|
21
22
|
from opentelemetry.trace.propagation import set_span_in_context
|
|
22
23
|
|
|
@@ -55,7 +56,7 @@ def generic_patch(
|
|
|
55
56
|
attributes = FrameworkSpanAttributes(**span_attributes)
|
|
56
57
|
|
|
57
58
|
with tracer.start_as_current_span(
|
|
58
|
-
method_name,
|
|
59
|
+
name=get_span_name(method_name),
|
|
59
60
|
kind=SpanKind.CLIENT,
|
|
60
61
|
context=set_span_in_context(trace.get_current_span()),
|
|
61
62
|
) as span:
|
|
@@ -17,6 +17,7 @@ limitations under the License.
|
|
|
17
17
|
import json
|
|
18
18
|
|
|
19
19
|
from langtrace.trace_attributes import FrameworkSpanAttributes
|
|
20
|
+
from langtrace_python_sdk.utils.llm import get_span_name
|
|
20
21
|
from opentelemetry import baggage, trace
|
|
21
22
|
from opentelemetry.trace import SpanKind, StatusCode
|
|
22
23
|
from opentelemetry.trace.status import Status
|
|
@@ -75,7 +76,7 @@ def generic_patch(
|
|
|
75
76
|
attributes = FrameworkSpanAttributes(**span_attributes)
|
|
76
77
|
|
|
77
78
|
with tracer.start_as_current_span(
|
|
78
|
-
method_name,
|
|
79
|
+
name=get_span_name(method_name),
|
|
79
80
|
kind=SpanKind.CLIENT,
|
|
80
81
|
context=set_span_in_context(trace.get_current_span()),
|
|
81
82
|
) as span:
|
|
@@ -15,6 +15,7 @@ limitations under the License.
|
|
|
15
15
|
"""
|
|
16
16
|
|
|
17
17
|
import json
|
|
18
|
+
from langtrace_python_sdk.utils.llm import get_span_name
|
|
18
19
|
from opentelemetry.trace.propagation import set_span_in_context
|
|
19
20
|
|
|
20
21
|
from langtrace.trace_attributes import FrameworkSpanAttributes
|
|
@@ -52,7 +53,7 @@ def patch_graph_methods(method_name, tracer, version):
|
|
|
52
53
|
attributes = FrameworkSpanAttributes(**span_attributes)
|
|
53
54
|
|
|
54
55
|
with tracer.start_as_current_span(
|
|
55
|
-
method_name,
|
|
56
|
+
name=get_span_name(method_name),
|
|
56
57
|
kind=SpanKind.CLIENT,
|
|
57
58
|
context=set_span_in_context(trace.get_current_span()),
|
|
58
59
|
) as span:
|
|
@@ -15,6 +15,7 @@ limitations under the License.
|
|
|
15
15
|
"""
|
|
16
16
|
|
|
17
17
|
from langtrace.trace_attributes import FrameworkSpanAttributes
|
|
18
|
+
from langtrace_python_sdk.utils.llm import get_span_name
|
|
18
19
|
from opentelemetry import baggage, trace
|
|
19
20
|
from opentelemetry.trace import SpanKind
|
|
20
21
|
from opentelemetry.trace.status import Status, StatusCode
|
|
@@ -49,7 +50,7 @@ def generic_patch(method, task, tracer, version):
|
|
|
49
50
|
attributes = FrameworkSpanAttributes(**span_attributes)
|
|
50
51
|
|
|
51
52
|
with tracer.start_as_current_span(
|
|
52
|
-
method,
|
|
53
|
+
name=get_span_name(method),
|
|
53
54
|
kind=SpanKind.CLIENT,
|
|
54
55
|
context=set_span_in_context(trace.get_current_span()),
|
|
55
56
|
) as span:
|
|
@@ -94,7 +95,9 @@ def async_generic_patch(method, task, tracer, version):
|
|
|
94
95
|
|
|
95
96
|
attributes = FrameworkSpanAttributes(**span_attributes)
|
|
96
97
|
|
|
97
|
-
with tracer.start_as_current_span(
|
|
98
|
+
with tracer.start_as_current_span(
|
|
99
|
+
name=get_span_name(method), kind=SpanKind.CLIENT
|
|
100
|
+
) as span:
|
|
98
101
|
async for field, value in attributes.model_dump(by_alias=True).items():
|
|
99
102
|
if value is not None:
|
|
100
103
|
span.set_attribute(field, value)
|
|
@@ -5,6 +5,7 @@ from langtrace_python_sdk.utils.llm import (
|
|
|
5
5
|
get_langtrace_attributes,
|
|
6
6
|
get_llm_request_attributes,
|
|
7
7
|
get_llm_url,
|
|
8
|
+
get_span_name,
|
|
8
9
|
set_event_completion,
|
|
9
10
|
set_event_completion_chunk,
|
|
10
11
|
)
|
|
@@ -35,7 +36,7 @@ def generic_patch(operation_name, version, tracer):
|
|
|
35
36
|
|
|
36
37
|
attributes = LLMSpanAttributes(**span_attributes)
|
|
37
38
|
with tracer.start_as_current_span(
|
|
38
|
-
f'ollama.{api["METHOD"]}', kind=SpanKind.CLIENT
|
|
39
|
+
name=get_span_name(f'ollama.{api["METHOD"]}'), kind=SpanKind.CLIENT
|
|
39
40
|
) as span:
|
|
40
41
|
_set_input_attributes(span, kwargs, attributes)
|
|
41
42
|
|
|
@@ -167,20 +168,21 @@ def _handle_streaming_response(span, response, api):
|
|
|
167
168
|
accumulated_tokens = None
|
|
168
169
|
if api == "chat":
|
|
169
170
|
accumulated_tokens = {"message": {"content": "", "role": ""}}
|
|
170
|
-
if api == "completion":
|
|
171
|
+
if api == "completion" or api == "generate":
|
|
171
172
|
accumulated_tokens = {"response": ""}
|
|
172
173
|
span.add_event(Event.STREAM_START.value)
|
|
173
174
|
try:
|
|
174
175
|
for chunk in response:
|
|
176
|
+
content = None
|
|
175
177
|
if api == "chat":
|
|
178
|
+
content = chunk["message"]["content"]
|
|
176
179
|
accumulated_tokens["message"]["content"] += chunk["message"]["content"]
|
|
177
180
|
accumulated_tokens["message"]["role"] = chunk["message"]["role"]
|
|
178
181
|
if api == "generate":
|
|
182
|
+
content = chunk["response"]
|
|
179
183
|
accumulated_tokens["response"] += chunk["response"]
|
|
180
184
|
|
|
181
|
-
set_event_completion_chunk(
|
|
182
|
-
span, chunk.get("response") or chunk.get("message").get("content")
|
|
183
|
-
)
|
|
185
|
+
set_event_completion_chunk(span, content)
|
|
184
186
|
|
|
185
187
|
_set_response_attributes(span, chunk | accumulated_tokens)
|
|
186
188
|
finally:
|
|
@@ -196,19 +198,22 @@ async def _ahandle_streaming_response(span, response, api):
|
|
|
196
198
|
accumulated_tokens = None
|
|
197
199
|
if api == "chat":
|
|
198
200
|
accumulated_tokens = {"message": {"content": "", "role": ""}}
|
|
199
|
-
if api == "completion":
|
|
201
|
+
if api == "completion" or api == "generate":
|
|
200
202
|
accumulated_tokens = {"response": ""}
|
|
201
203
|
|
|
202
204
|
span.add_event(Event.STREAM_START.value)
|
|
203
205
|
try:
|
|
204
206
|
async for chunk in response:
|
|
207
|
+
content = None
|
|
205
208
|
if api == "chat":
|
|
209
|
+
content = chunk["message"]["content"]
|
|
206
210
|
accumulated_tokens["message"]["content"] += chunk["message"]["content"]
|
|
207
211
|
accumulated_tokens["message"]["role"] = chunk["message"]["role"]
|
|
208
212
|
if api == "generate":
|
|
213
|
+
content = chunk["response"]
|
|
209
214
|
accumulated_tokens["response"] += chunk["response"]
|
|
210
215
|
|
|
211
|
-
set_event_completion_chunk(span,
|
|
216
|
+
set_event_completion_chunk(span, content)
|
|
212
217
|
_set_response_attributes(span, chunk | accumulated_tokens)
|
|
213
218
|
finally:
|
|
214
219
|
# Finalize span after processing all chunks
|
|
@@ -37,6 +37,7 @@ from langtrace_python_sdk.utils.llm import (
|
|
|
37
37
|
get_langtrace_attributes,
|
|
38
38
|
get_llm_request_attributes,
|
|
39
39
|
get_llm_url,
|
|
40
|
+
get_span_name,
|
|
40
41
|
get_tool_calls,
|
|
41
42
|
is_streaming,
|
|
42
43
|
set_event_completion,
|
|
@@ -64,7 +65,7 @@ def images_generate(original_method, version, tracer):
|
|
|
64
65
|
attributes = LLMSpanAttributes(**span_attributes)
|
|
65
66
|
|
|
66
67
|
with tracer.start_as_current_span(
|
|
67
|
-
APIS["IMAGES_GENERATION"]["METHOD"],
|
|
68
|
+
name=get_span_name(APIS["IMAGES_GENERATION"]["METHOD"]),
|
|
68
69
|
kind=SpanKind.CLIENT,
|
|
69
70
|
context=set_span_in_context(trace.get_current_span()),
|
|
70
71
|
) as span:
|
|
@@ -127,7 +128,7 @@ def async_images_generate(original_method, version, tracer):
|
|
|
127
128
|
attributes = LLMSpanAttributes(**span_attributes)
|
|
128
129
|
|
|
129
130
|
with tracer.start_as_current_span(
|
|
130
|
-
APIS["IMAGES_GENERATION"]["METHOD"],
|
|
131
|
+
name=get_span_name(APIS["IMAGES_GENERATION"]["METHOD"]),
|
|
131
132
|
kind=SpanKind.CLIENT,
|
|
132
133
|
context=set_span_in_context(trace.get_current_span()),
|
|
133
134
|
) as span:
|
|
@@ -192,7 +193,7 @@ def images_edit(original_method, version, tracer):
|
|
|
192
193
|
attributes = LLMSpanAttributes(**span_attributes)
|
|
193
194
|
|
|
194
195
|
with tracer.start_as_current_span(
|
|
195
|
-
APIS["IMAGES_EDIT"]["METHOD"],
|
|
196
|
+
name=APIS["IMAGES_EDIT"]["METHOD"],
|
|
196
197
|
kind=SpanKind.CLIENT,
|
|
197
198
|
context=set_span_in_context(trace.get_current_span()),
|
|
198
199
|
) as span:
|
|
@@ -282,7 +283,7 @@ def chat_completions_create(original_method, version, tracer):
|
|
|
282
283
|
attributes = LLMSpanAttributes(**span_attributes)
|
|
283
284
|
|
|
284
285
|
span = tracer.start_span(
|
|
285
|
-
APIS["CHAT_COMPLETION"]["METHOD"],
|
|
286
|
+
name=get_span_name(APIS["CHAT_COMPLETION"]["METHOD"]),
|
|
286
287
|
kind=SpanKind.CLIENT,
|
|
287
288
|
context=set_span_in_context(trace.get_current_span()),
|
|
288
289
|
)
|
|
@@ -376,7 +377,7 @@ def async_chat_completions_create(original_method, version, tracer):
|
|
|
376
377
|
attributes = LLMSpanAttributes(**span_attributes)
|
|
377
378
|
|
|
378
379
|
span = tracer.start_span(
|
|
379
|
-
APIS["CHAT_COMPLETION"]["METHOD"],
|
|
380
|
+
name=get_span_name(APIS["CHAT_COMPLETION"]["METHOD"]),
|
|
380
381
|
kind=SpanKind.CLIENT,
|
|
381
382
|
context=set_span_in_context(trace.get_current_span()),
|
|
382
383
|
)
|
|
@@ -455,7 +456,7 @@ def embeddings_create(original_method, version, tracer):
|
|
|
455
456
|
attributes = LLMSpanAttributes(**span_attributes)
|
|
456
457
|
|
|
457
458
|
with tracer.start_as_current_span(
|
|
458
|
-
APIS["EMBEDDINGS_CREATE"]["METHOD"],
|
|
459
|
+
name=get_span_name(APIS["EMBEDDINGS_CREATE"]["METHOD"]),
|
|
459
460
|
kind=SpanKind.CLIENT,
|
|
460
461
|
context=set_span_in_context(trace.get_current_span()),
|
|
461
462
|
) as span:
|
|
@@ -512,7 +513,7 @@ def async_embeddings_create(original_method, version, tracer):
|
|
|
512
513
|
)
|
|
513
514
|
|
|
514
515
|
with tracer.start_as_current_span(
|
|
515
|
-
APIS["EMBEDDINGS_CREATE"]["METHOD"],
|
|
516
|
+
name=get_span_name(APIS["EMBEDDINGS_CREATE"]["METHOD"]),
|
|
516
517
|
kind=SpanKind.CLIENT,
|
|
517
518
|
context=set_span_in_context(trace.get_current_span()),
|
|
518
519
|
) as span:
|
|
@@ -17,6 +17,7 @@ limitations under the License.
|
|
|
17
17
|
import json
|
|
18
18
|
|
|
19
19
|
from langtrace.trace_attributes import DatabaseSpanAttributes
|
|
20
|
+
from langtrace_python_sdk.utils.llm import get_span_name
|
|
20
21
|
from opentelemetry import baggage, trace
|
|
21
22
|
from opentelemetry.trace import SpanKind
|
|
22
23
|
from opentelemetry.trace.status import Status, StatusCode
|
|
@@ -57,7 +58,7 @@ def generic_patch(operation_name, version, tracer):
|
|
|
57
58
|
attributes = DatabaseSpanAttributes(**span_attributes)
|
|
58
59
|
|
|
59
60
|
with tracer.start_as_current_span(
|
|
60
|
-
api["METHOD"],
|
|
61
|
+
name=get_span_name(api["METHOD"]),
|
|
61
62
|
kind=SpanKind.CLIENT,
|
|
62
63
|
context=set_span_in_context(trace.get_current_span()),
|
|
63
64
|
) as span:
|
|
@@ -16,6 +16,7 @@ limitations under the License.
|
|
|
16
16
|
|
|
17
17
|
import json
|
|
18
18
|
from langtrace.trace_attributes import DatabaseSpanAttributes
|
|
19
|
+
from langtrace_python_sdk.utils.llm import get_span_name
|
|
19
20
|
from langtrace_python_sdk.utils.silently_fail import silently_fail
|
|
20
21
|
from langtrace_python_sdk.utils import set_span_attribute
|
|
21
22
|
from opentelemetry import baggage, trace
|
|
@@ -58,7 +59,7 @@ def collection_patch(method, version, tracer):
|
|
|
58
59
|
attributes = DatabaseSpanAttributes(**span_attributes)
|
|
59
60
|
|
|
60
61
|
with tracer.start_as_current_span(
|
|
61
|
-
api["METHOD"],
|
|
62
|
+
name=get_span_name(api["METHOD"]),
|
|
62
63
|
kind=SpanKind.CLIENT,
|
|
63
64
|
context=set_span_in_context(trace.get_current_span()),
|
|
64
65
|
) as span:
|
|
@@ -8,6 +8,7 @@ from langtrace_python_sdk.utils.llm import (
|
|
|
8
8
|
get_langtrace_attributes,
|
|
9
9
|
get_llm_request_attributes,
|
|
10
10
|
get_llm_url,
|
|
11
|
+
get_span_name,
|
|
11
12
|
set_event_completion,
|
|
12
13
|
set_span_attributes,
|
|
13
14
|
set_usage_attributes,
|
|
@@ -39,7 +40,7 @@ def patch_vertexai(name, version, tracer: Tracer):
|
|
|
39
40
|
}
|
|
40
41
|
attributes = LLMSpanAttributes(**span_attributes)
|
|
41
42
|
span = tracer.start_span(
|
|
42
|
-
name=name,
|
|
43
|
+
name=get_span_name(name),
|
|
43
44
|
kind=SpanKind.CLIENT,
|
|
44
45
|
context=set_span_in_context(trace.get_current_span()),
|
|
45
46
|
)
|
|
@@ -17,6 +17,7 @@ limitations under the License.
|
|
|
17
17
|
import json
|
|
18
18
|
|
|
19
19
|
from langtrace.trace_attributes import DatabaseSpanAttributes
|
|
20
|
+
from langtrace_python_sdk.utils.llm import get_span_name
|
|
20
21
|
from opentelemetry import baggage, trace
|
|
21
22
|
from opentelemetry.trace import SpanKind
|
|
22
23
|
from opentelemetry.trace.status import Status, StatusCode
|
|
@@ -132,7 +133,7 @@ def create_traced_method(method_name, version, tracer, get_collection_name=None)
|
|
|
132
133
|
attributes = DatabaseSpanAttributes(**span_attributes)
|
|
133
134
|
|
|
134
135
|
with tracer.start_as_current_span(
|
|
135
|
-
method_name,
|
|
136
|
+
name=get_span_name(method_name),
|
|
136
137
|
kind=SpanKind.CLIENT,
|
|
137
138
|
context=set_span_in_context(trace.get_current_span()),
|
|
138
139
|
) as span:
|
|
@@ -33,6 +33,13 @@ from opentelemetry.trace.status import StatusCode
|
|
|
33
33
|
import os
|
|
34
34
|
|
|
35
35
|
|
|
36
|
+
def get_span_name(operation_name):
|
|
37
|
+
extra_attributes = get_extra_attributes()
|
|
38
|
+
if extra_attributes is not None and "langtrace.span.name" in extra_attributes:
|
|
39
|
+
return f'{operation_name}-{extra_attributes["langtrace.span.name"]}'
|
|
40
|
+
return operation_name
|
|
41
|
+
|
|
42
|
+
|
|
36
43
|
def estimate_tokens(prompt):
|
|
37
44
|
"""
|
|
38
45
|
Estimate the number of tokens in a prompt."""
|
langtrace_python_sdk/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "2.2.
|
|
1
|
+
__version__ = "2.2.18"
|
|
@@ -62,7 +62,7 @@ examples/weaviate_example/__init__.py,sha256=8JMDBsRSEV10HfTd-YC7xb4txBjD3la56sn
|
|
|
62
62
|
examples/weaviate_example/query_text.py,sha256=sG8O-bXQpflBAiYpgE_M2X7GcHUlZNgl_wJW8_h-W6Q,127024
|
|
63
63
|
langtrace_python_sdk/__init__.py,sha256=VZM6i71NR7pBQK6XvJWRelknuTYUhqwqE7PlicKa5Wg,1166
|
|
64
64
|
langtrace_python_sdk/langtrace.py,sha256=1L0IjME-pzEYht92QfwByPZr3H1MClTrqQdoN1KyKJY,7689
|
|
65
|
-
langtrace_python_sdk/version.py,sha256=
|
|
65
|
+
langtrace_python_sdk/version.py,sha256=dAJhOn2CzAhbn9D0rqSlU6CWaiVM5rg_Z1ue7cHGUuA,23
|
|
66
66
|
langtrace_python_sdk/constants/__init__.py,sha256=P8QvYwt5czUNDZsKS64vxm9Dc41ptGbuF1TFtAF6nv4,44
|
|
67
67
|
langtrace_python_sdk/constants/exporter/langtrace_exporter.py,sha256=5MNjnAOg-4am78J3gVMH6FSwq5N8TOj72ugkhsw4vi0,46
|
|
68
68
|
langtrace_python_sdk/constants/instrumentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -84,62 +84,62 @@ langtrace_python_sdk/extensions/langtrace_filesystem.py,sha256=34fZutG28EJ66l67O
|
|
|
84
84
|
langtrace_python_sdk/instrumentation/__init__.py,sha256=yJd3aGu4kPfm2h6oe6kiCWvzTF9awpC1UztjXF9WSO4,1391
|
|
85
85
|
langtrace_python_sdk/instrumentation/anthropic/__init__.py,sha256=donrurJAGYlxrSRA3BIf76jGeUcAx9Tq8CVpah68S0Y,101
|
|
86
86
|
langtrace_python_sdk/instrumentation/anthropic/instrumentation.py,sha256=-srgE8qumAn0ulQYZxMa8ch-9IBH0XgBW_rfEnGk6LI,1684
|
|
87
|
-
langtrace_python_sdk/instrumentation/anthropic/patch.py,sha256=
|
|
87
|
+
langtrace_python_sdk/instrumentation/anthropic/patch.py,sha256=cVVXYFzIIHkaEzdVvq-YrEgf7-RaaKlXb9CH-9RU9vg,6858
|
|
88
88
|
langtrace_python_sdk/instrumentation/chroma/__init__.py,sha256=pNZ5UO8Q-d5VkXSobBf79reB6AmEl_usnnTp5Itv818,95
|
|
89
89
|
langtrace_python_sdk/instrumentation/chroma/instrumentation.py,sha256=nT6PS6bsrIOO9kLV5GuUeRjMe6THHHAZGvqWBP1dYog,1807
|
|
90
|
-
langtrace_python_sdk/instrumentation/chroma/patch.py,sha256=
|
|
90
|
+
langtrace_python_sdk/instrumentation/chroma/patch.py,sha256=1jCbyum11ifbQFLO43eg0yW33Yc7NI_fwhRf1gspHcM,9087
|
|
91
91
|
langtrace_python_sdk/instrumentation/cohere/__init__.py,sha256=sGUSLdTUyYf36Tm6L5jQflhzCqvmWrhnBOMYHjvp6Hs,95
|
|
92
92
|
langtrace_python_sdk/instrumentation/cohere/instrumentation.py,sha256=YQFHZIBd7SSPD4b6Va-ZR0thf_AuBCqj5yzHLHJVWnM,2121
|
|
93
|
-
langtrace_python_sdk/instrumentation/cohere/patch.py,sha256=
|
|
93
|
+
langtrace_python_sdk/instrumentation/cohere/patch.py,sha256=YPFgNVX_DNoL4FCp5aFbcDP8z8nQTp7v78dA28XRioA,21280
|
|
94
94
|
langtrace_python_sdk/instrumentation/crewai/__init__.py,sha256=_UBKfvQv7l0g2_wnmA5F6CdSAFH0atNOVPd49zsN3aM,88
|
|
95
95
|
langtrace_python_sdk/instrumentation/crewai/instrumentation.py,sha256=q07x6nnig9JPxDT6ZylyIShfXWjNafKBetnNcA1UdEU,1836
|
|
96
|
-
langtrace_python_sdk/instrumentation/crewai/patch.py,sha256=
|
|
96
|
+
langtrace_python_sdk/instrumentation/crewai/patch.py,sha256=4W7jEIJX4SJNViPlFTBJdSkvvPVJoI76Bb5DX673Ql8,6203
|
|
97
97
|
langtrace_python_sdk/instrumentation/dspy/__init__.py,sha256=tM1srfi_QgyCzrde4izojMrRq2Wm7Dj5QUvVQXIJzkk,84
|
|
98
98
|
langtrace_python_sdk/instrumentation/dspy/instrumentation.py,sha256=o8URiDvCbZ8LL0I-4xKHkn_Ms2sETBRpn-gOliv3xzQ,2929
|
|
99
99
|
langtrace_python_sdk/instrumentation/dspy/patch.py,sha256=E2P3MJBQ71or4M6BsvZOwYFtJK1UdTsYkdxVj9fSWPs,9869
|
|
100
100
|
langtrace_python_sdk/instrumentation/gemini/__init__.py,sha256=ilWmKA4Li-g3DX6R10WQ4v-51VljxToEnJpOQoQB5uQ,88
|
|
101
101
|
langtrace_python_sdk/instrumentation/gemini/instrumentation.py,sha256=eGWr2dy1f_9TVZiXSH_MlNQINyS4I28EsOTKREdMVio,1304
|
|
102
|
-
langtrace_python_sdk/instrumentation/gemini/patch.py,sha256=
|
|
102
|
+
langtrace_python_sdk/instrumentation/gemini/patch.py,sha256=WIeZdge0uiWvzJ9HR2KHYyTYO6NpLjQwtjueq8lB8lA,6364
|
|
103
103
|
langtrace_python_sdk/instrumentation/groq/__init__.py,sha256=ZXeq_nrej6Lm_uoMFEg8wbSejhjB2UJ5IoHQBPc2-C0,91
|
|
104
104
|
langtrace_python_sdk/instrumentation/groq/instrumentation.py,sha256=Ttf07XVKhdYY1_fqJc7QWiSdmgEhEVyQB_3Az2_wqYo,1832
|
|
105
|
-
langtrace_python_sdk/instrumentation/groq/patch.py,sha256=
|
|
105
|
+
langtrace_python_sdk/instrumentation/groq/patch.py,sha256=pffttsSPgsvKxaWKd3y2RSzJQ8wRoLFO7SfsQ9vc93k,23813
|
|
106
106
|
langtrace_python_sdk/instrumentation/langchain/__init__.py,sha256=-7ZkqQFu64F-cxSFd1ZPrciODKqmUIyUbQQ-eHuQPyM,101
|
|
107
107
|
langtrace_python_sdk/instrumentation/langchain/instrumentation.py,sha256=_Z4AeNb2hBPSCvMRxE-mUfmkUO_wP_tGGtu-jppWPiI,3462
|
|
108
|
-
langtrace_python_sdk/instrumentation/langchain/patch.py,sha256=
|
|
108
|
+
langtrace_python_sdk/instrumentation/langchain/patch.py,sha256=BmVBKPpI4P9AX6Y8e67WYSz0a0rxZK7cJkI75ure2f4,4166
|
|
109
109
|
langtrace_python_sdk/instrumentation/langchain_community/__init__.py,sha256=mj5RR_cfkjMql7W9OyyhmviT2GZ-4Pv9XJfGwJufp_E,119
|
|
110
110
|
langtrace_python_sdk/instrumentation/langchain_community/instrumentation.py,sha256=-9E2-8-XR5PQ5ON-_ib53p5Tp0uD4MT4Ioh4MlWlF2k,5192
|
|
111
|
-
langtrace_python_sdk/instrumentation/langchain_community/patch.py,sha256=
|
|
111
|
+
langtrace_python_sdk/instrumentation/langchain_community/patch.py,sha256=zYtMObTxZg67rW3vEc2yRLEVnX8Cu_-GVowWPh90cc0,4123
|
|
112
112
|
langtrace_python_sdk/instrumentation/langchain_core/__init__.py,sha256=kumE_reeqgM-ZvEZ6-XxyT-F-HAdKq_v_PKvsLb4EZQ,110
|
|
113
113
|
langtrace_python_sdk/instrumentation/langchain_core/instrumentation.py,sha256=KNXHtlnq80akLACF-vbPCo9oVXhnVjYIM1Lo7kNRwEg,5937
|
|
114
|
-
langtrace_python_sdk/instrumentation/langchain_core/patch.py,sha256
|
|
114
|
+
langtrace_python_sdk/instrumentation/langchain_core/patch.py,sha256=MSQahoJeAZPN3PwvWRE_Qx3mp-dInqHCW7WU8k4Cr-w,8946
|
|
115
115
|
langtrace_python_sdk/instrumentation/langgraph/__init__.py,sha256=eitlHloY-aZ4ZuIEJx61AadEA3G7siyecP-V-lziAr8,101
|
|
116
116
|
langtrace_python_sdk/instrumentation/langgraph/instrumentation.py,sha256=SUZZhWSIbcfsF1S5NtEqW8QzkRM_pKAuXB7pwk5tsOU,2526
|
|
117
|
-
langtrace_python_sdk/instrumentation/langgraph/patch.py,sha256=
|
|
117
|
+
langtrace_python_sdk/instrumentation/langgraph/patch.py,sha256=yRMUj9bjI7oIUD_tCkZxZu34a3dNShHETq6f6Km6tXI,4960
|
|
118
118
|
langtrace_python_sdk/instrumentation/llamaindex/__init__.py,sha256=rHvuqpuQKLj57Ow7vuKRqxAN5jT0b5NBeHwhXbbnRa4,103
|
|
119
119
|
langtrace_python_sdk/instrumentation/llamaindex/instrumentation.py,sha256=8iAg-Oxwf2W4S60qRfO5mvzORYxublgq7FdGWqUB4q8,2965
|
|
120
|
-
langtrace_python_sdk/instrumentation/llamaindex/patch.py,sha256=
|
|
120
|
+
langtrace_python_sdk/instrumentation/llamaindex/patch.py,sha256=548hzPyT_k-2wmt9AArv4JzTT4j4AGKJq5Ar2bWv7o8,4615
|
|
121
121
|
langtrace_python_sdk/instrumentation/ollama/__init__.py,sha256=g2zJsXnDHinXPzTc-WxDeTtHmr9gmAj3K6l_00kP8c8,82
|
|
122
122
|
langtrace_python_sdk/instrumentation/ollama/instrumentation.py,sha256=jdsvkqUJAAUNLVPtAkn_rG26HXetVQXWtjn4a6eWZro,2029
|
|
123
|
-
langtrace_python_sdk/instrumentation/ollama/patch.py,sha256=
|
|
123
|
+
langtrace_python_sdk/instrumentation/ollama/patch.py,sha256=AYIT8N6LXTgd5HqjuDOtKSfqD-24a1_5bF3pd_R3HGM,8128
|
|
124
124
|
langtrace_python_sdk/instrumentation/openai/__init__.py,sha256=VPHRNCQEdkizIVP2d0Uw_a7t8XOTSTprEIB8oboJFbs,95
|
|
125
125
|
langtrace_python_sdk/instrumentation/openai/instrumentation.py,sha256=A0BJHRLcZ74TNVg6I0I9M5YWvSpAtXwMmME6N5CEQ_M,2945
|
|
126
|
-
langtrace_python_sdk/instrumentation/openai/patch.py,sha256=
|
|
126
|
+
langtrace_python_sdk/instrumentation/openai/patch.py,sha256=4GCYJzZdUBopEDinpTwRBFf-Enb0hdNO16LiiMKqqvY,24226
|
|
127
127
|
langtrace_python_sdk/instrumentation/pinecone/__init__.py,sha256=DzXyGh9_MGWveJvXULkFwdkf7PbG2s3bAWtT1Dmz7Ok,99
|
|
128
128
|
langtrace_python_sdk/instrumentation/pinecone/instrumentation.py,sha256=HDXkRITrVPwdQEoOYJOfMzZE_2-vDDvuqHTlD8W1lQw,1845
|
|
129
|
-
langtrace_python_sdk/instrumentation/pinecone/patch.py,sha256=
|
|
129
|
+
langtrace_python_sdk/instrumentation/pinecone/patch.py,sha256=MIbUcEsVzl4W_pfq81LP9QFVhwPB8rHF0Aod9pq_j-o,5249
|
|
130
130
|
langtrace_python_sdk/instrumentation/qdrant/__init__.py,sha256=TaIGSAEPysrL23KJ5FcEL1tfQogrKCtEQ75_u62eqso,95
|
|
131
131
|
langtrace_python_sdk/instrumentation/qdrant/instrumentation.py,sha256=vl2eKSP55aqDo1JiRlvOUBrr6kddvG9Z5dCYew2OG08,1816
|
|
132
|
-
langtrace_python_sdk/instrumentation/qdrant/patch.py,sha256=
|
|
132
|
+
langtrace_python_sdk/instrumentation/qdrant/patch.py,sha256=IgdozFyKqB8n72BjKvBDiMhYM4o75DReD0I8_uIQ7KY,5015
|
|
133
133
|
langtrace_python_sdk/instrumentation/vertexai/__init__.py,sha256=ZzKxB7bl0FaRlgJhhgAk5V8Bf20FmThWM_Z9u9Eyy1s,92
|
|
134
134
|
langtrace_python_sdk/instrumentation/vertexai/instrumentation.py,sha256=Keeb1D7nJDYu33w6H8Q8jLS7OOJtSIHqngvJMipWqJo,1143
|
|
135
|
-
langtrace_python_sdk/instrumentation/vertexai/patch.py,sha256=
|
|
135
|
+
langtrace_python_sdk/instrumentation/vertexai/patch.py,sha256=mfd3LiKYGMW3jLf9OEi7Iq9NUOThLskCqa_blvFmGV0,4489
|
|
136
136
|
langtrace_python_sdk/instrumentation/weaviate/__init__.py,sha256=Mc-Je6evPo-kKQzerTG7bd1XO5JOh4YGTE3wBxaUBwg,99
|
|
137
137
|
langtrace_python_sdk/instrumentation/weaviate/instrumentation.py,sha256=oWLCnh5_Nuw8bKpXJW6Zo-PpI_kJ7q2nA4BImnZ7YqY,2295
|
|
138
|
-
langtrace_python_sdk/instrumentation/weaviate/patch.py,sha256=
|
|
138
|
+
langtrace_python_sdk/instrumentation/weaviate/patch.py,sha256=qX4VQqScH2kygn5lQabKvDmQkAJga_yVwU46YPCtceQ,6048
|
|
139
139
|
langtrace_python_sdk/types/__init__.py,sha256=KDW6S74FDxpeBa9xoH5zVEYfmRjccCCHzlW7lTJg1TA,3194
|
|
140
140
|
langtrace_python_sdk/utils/__init__.py,sha256=SwYYPIh2AzEpI3zbwowQU2zJlwRwoVdWOCcrAKnkI9g,873
|
|
141
141
|
langtrace_python_sdk/utils/langtrace_sampler.py,sha256=BupNndHbU9IL_wGleKetz8FdcveqHMBVz1bfKTTW80w,1753
|
|
142
|
-
langtrace_python_sdk/utils/llm.py,sha256=
|
|
142
|
+
langtrace_python_sdk/utils/llm.py,sha256=zvVhSE4TkVQCqzfnPtGKXbct66Hj9ZFJ6N2fVbNfvbw,13129
|
|
143
143
|
langtrace_python_sdk/utils/misc.py,sha256=CD9NWRLxLpFd0YwlHJqzlpFNedXVWtAKGOjQWnDCo8k,838
|
|
144
144
|
langtrace_python_sdk/utils/prompt_registry.py,sha256=n5dQMVLBw8aJZY8Utvf67bncc25ELf6AH9BYw8_hSzo,2619
|
|
145
145
|
langtrace_python_sdk/utils/sdk_version_checker.py,sha256=FzjIWZjn53cX0LEVPdipQd1fO9lG8iGVUEVUs9Hyk6M,1713
|
|
@@ -188,8 +188,8 @@ tests/pinecone/cassettes/test_query.yaml,sha256=b5v9G3ssUy00oG63PlFUR3JErF2Js-5A
|
|
|
188
188
|
tests/pinecone/cassettes/test_upsert.yaml,sha256=neWmQ1v3d03V8WoLl8FoFeeCYImb8pxlJBWnFd_lITU,38607
|
|
189
189
|
tests/qdrant/conftest.py,sha256=9n0uHxxIjWk9fbYc4bx-uP8lSAgLBVx-cV9UjnsyCHM,381
|
|
190
190
|
tests/qdrant/test_qdrant.py,sha256=pzjAjVY2kmsmGfrI2Gs2xrolfuaNHz7l1fqGQCjp5_o,3353
|
|
191
|
-
langtrace_python_sdk-2.2.
|
|
192
|
-
langtrace_python_sdk-2.2.
|
|
193
|
-
langtrace_python_sdk-2.2.
|
|
194
|
-
langtrace_python_sdk-2.2.
|
|
195
|
-
langtrace_python_sdk-2.2.
|
|
191
|
+
langtrace_python_sdk-2.2.18.dist-info/METADATA,sha256=aPLR9jj8Y_nif6NwkjcuihHmG_ijrN7oZ03EuXQNQV8,14705
|
|
192
|
+
langtrace_python_sdk-2.2.18.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
|
193
|
+
langtrace_python_sdk-2.2.18.dist-info/entry_points.txt,sha256=1_b9-qvf2fE7uQNZcbUei9vLpFZBbbh9LrtGw95ssAo,70
|
|
194
|
+
langtrace_python_sdk-2.2.18.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
|
195
|
+
langtrace_python_sdk-2.2.18.dist-info/RECORD,,
|
|
File without changes
|
{langtrace_python_sdk-2.2.16.dist-info → langtrace_python_sdk-2.2.18.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{langtrace_python_sdk-2.2.16.dist-info → langtrace_python_sdk-2.2.18.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|