langtrace-python-sdk 2.2.17__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.
Files changed (24) hide show
  1. langtrace_python_sdk/instrumentation/anthropic/patch.py +2 -1
  2. langtrace_python_sdk/instrumentation/chroma/patch.py +2 -1
  3. langtrace_python_sdk/instrumentation/cohere/patch.py +14 -4
  4. langtrace_python_sdk/instrumentation/crewai/patch.py +4 -1
  5. langtrace_python_sdk/instrumentation/gemini/patch.py +3 -2
  6. langtrace_python_sdk/instrumentation/groq/patch.py +3 -2
  7. langtrace_python_sdk/instrumentation/langchain/patch.py +2 -1
  8. langtrace_python_sdk/instrumentation/langchain_community/patch.py +2 -1
  9. langtrace_python_sdk/instrumentation/langchain_core/patch.py +2 -1
  10. langtrace_python_sdk/instrumentation/langgraph/patch.py +2 -1
  11. langtrace_python_sdk/instrumentation/llamaindex/patch.py +5 -2
  12. langtrace_python_sdk/instrumentation/ollama/patch.py +2 -1
  13. langtrace_python_sdk/instrumentation/openai/patch.py +8 -7
  14. langtrace_python_sdk/instrumentation/pinecone/patch.py +2 -1
  15. langtrace_python_sdk/instrumentation/qdrant/patch.py +2 -1
  16. langtrace_python_sdk/instrumentation/vertexai/patch.py +2 -1
  17. langtrace_python_sdk/instrumentation/weaviate/patch.py +2 -1
  18. langtrace_python_sdk/utils/llm.py +7 -0
  19. langtrace_python_sdk/version.py +1 -1
  20. {langtrace_python_sdk-2.2.17.dist-info → langtrace_python_sdk-2.2.18.dist-info}/METADATA +1 -1
  21. {langtrace_python_sdk-2.2.17.dist-info → langtrace_python_sdk-2.2.18.dist-info}/RECORD +24 -24
  22. {langtrace_python_sdk-2.2.17.dist-info → langtrace_python_sdk-2.2.18.dist-info}/WHEEL +0 -0
  23. {langtrace_python_sdk-2.2.17.dist-info → langtrace_python_sdk-2.2.18.dist-info}/entry_points.txt +0 -0
  24. {langtrace_python_sdk-2.2.17.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(APIS["RERANK"]["METHOD"], kind=SpanKind.CLIENT)
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(APIS["EMBED"]["METHOD"], kind=SpanKind.CLIENT)
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(APIS["CHAT_CREATE"]["METHOD"], kind=SpanKind.CLIENT)
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(APIS["CHAT_STREAM"]["METHOD"], kind=SpanKind.CLIENT)
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(operation_name, kind=SpanKind.CLIENT) as 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(method, kind=SpanKind.CLIENT) as 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
 
@@ -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."""
@@ -1 +1 @@
1
- __version__ = "2.2.17"
1
+ __version__ = "2.2.18"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: langtrace-python-sdk
3
- Version: 2.2.17
3
+ Version: 2.2.18
4
4
  Summary: Python SDK for LangTrace
5
5
  Project-URL: Homepage, https://github.com/Scale3-Labs/langtrace-python-sdk
6
6
  Author-email: Scale3 Labs <engineering@scale3labs.com>
@@ -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=hjMOqp8UAdaorn81Yw7bZbU6dNdRaB_NWQmHbo4JvyY,23
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=aii6bcdMQFfwsSbOKoMtqA3bCJdBW2GalD425H5bpvg,6819
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=JfFc8SDfwkEyIwTd1yM6jwa1vu5hZH6IXyxAEcQQQOs,9010
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=Qokp9qPTYwRvQzp3dTG2_g6r3EC3zJT1fujyJo30fXE,21080
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=Vnpip9Pbk4UFbTFHoUrHtAnDgsaihwSvZBgtUeOtLr8,6109
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=XtsxD9vbe4lv4o8K8iRb9K1-U8DrjtUG6rWCYkCdJuc,6315
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=WHCPnzbg5GYkW58gIWs8TbDsmri7HxHTk7m9LqdRfWM,23754
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=2ZgLdgQpvie4PtpVC068T3KUEBqcLQCRsdyThmKh7VQ,4089
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=aKhTNzmmyriAPfx5rnDQdK0ctktBN-fTIJRBBsKOpRw,4046
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=-beRBpL9ryWfxhU50UGEbTKNFK5RiQyzP1hfyd6i3uE,8869
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=jFW2xMtTNI5B0YaRvfmGuCc-Iyrx29NhS_5uTI814mo,4883
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=OGk7ps438gW49zvJQCDp7ZmkQnFxouAUu2PvHbmcAP8,4496
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=isyeHGuITSHCUVrc2iFmszkXX0k7To17VB3k9OoBHlI,8089
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=ebxUpg0X60e7uK-IPWb_fSDxpP3d5BG-xhOEBIABo14,24082
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=KiIRRz8kk47FllFT746Cb_w6F6M60AN_pcsguD979E4,5172
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=HIogSyk9ROwmjX9sivAunXdYtDwGDAhQemdZEAczRuE,4938
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=EmnChh2SrXn4W-qjbRW8dhX2kqMmI3e25MfL1M01Mbk,4455
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=rRD6WfQcNGYpw9teoCkGPCZkzolG0h-mZdPGNKkgE10,5971
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=MLmRpR6a0R-RVCf05XD-XTnsGRzfz-NdP0_5Ebec6rY,12860
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.17.dist-info/METADATA,sha256=BlsENLAAnXawtZ6oihmH83LDCSbn6uTjnArV2l2jQbY,14705
192
- langtrace_python_sdk-2.2.17.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
193
- langtrace_python_sdk-2.2.17.dist-info/entry_points.txt,sha256=1_b9-qvf2fE7uQNZcbUei9vLpFZBbbh9LrtGw95ssAo,70
194
- langtrace_python_sdk-2.2.17.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
195
- langtrace_python_sdk-2.2.17.dist-info/RECORD,,
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,,