langtrace-python-sdk 2.1.23__py3-none-any.whl → 2.1.25__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.
@@ -1,7 +1,5 @@
1
1
  APIS = {
2
- "GENERATE": {
3
- "METHOD": "generate",
4
- },
5
- "CHAT": {"METHOD": "chat"},
6
- "EMBEDDINGS": {"METHOD": "embeddings"},
2
+ "GENERATE": {"METHOD": "generate", "ENDPOINT": "/api/generate"},
3
+ "CHAT": {"METHOD": "chat", "ENDPOINT": "/api/chat"},
4
+ "EMBEDDINGS": {"METHOD": "embeddings", "ENDPOINT": "/api/embeddings"},
7
5
  }
@@ -6,6 +6,11 @@ APIS = {
6
6
  "METHOD": "_BM25Query.bm25",
7
7
  "OPERATION": "query",
8
8
  },
9
+ "weaviate.generate.bm25": {
10
+ "MODULE": WeaviateMethods.QUERY_BM25.value,
11
+ "METHOD": "_BM25Generate.bm25",
12
+ "OPERATION": "generate",
13
+ },
9
14
  "weaviate.query.fetch_object_by_id": {
10
15
  "MODULE": WeaviateMethods.QUERY_FETCH_OBJECT_BY_ID.value,
11
16
  "METHOD": "_FetchObjectByIDQuery.fetch_object_by_id",
@@ -16,26 +21,51 @@ APIS = {
16
21
  "METHOD": "_FetchObjectsQuery.fetch_objects",
17
22
  "OPERATION": "query",
18
23
  },
24
+ "weaviate.generate.fetch_objects": {
25
+ "MODULE": WeaviateMethods.QUERY_FETCH_OBJECTS.value,
26
+ "METHOD": "_FetchObjectsGenerate.fetch_objects",
27
+ "OPERATION": "generate",
28
+ },
19
29
  "weaviate.query.hybrid": {
20
30
  "MODULE": WeaviateMethods.QUERY_HYBRID.value,
21
31
  "METHOD": "_HybridQuery.hybrid",
22
32
  "OPERATION": "query",
23
33
  },
34
+ "weaviate.generate.hybrid": {
35
+ "MODULE": WeaviateMethods.QUERY_HYBRID.value,
36
+ "METHOD": "_HybridGenerate.hybrid",
37
+ "OPERATION": "generate",
38
+ },
24
39
  "weaviate.query.near_object": {
25
40
  "MODULE": WeaviateMethods.QUERY_NEAR_OBJECT.value,
26
41
  "METHOD": "_NearObjectQuery.near_object",
27
42
  "OPERATION": "query",
28
43
  },
44
+ "weaviate.generate.near_object": {
45
+ "MODULE": WeaviateMethods.QUERY_NEAR_OBJECT.value,
46
+ "METHOD": "_NearObjectGenerate.near_object",
47
+ "OPERATION": "generate",
48
+ },
29
49
  "weaviate.query.near_text": {
30
50
  "MODULE": WeaviateMethods.QUERY_NEAR_TEXT.value,
31
51
  "METHOD": "_NearTextQuery.near_text",
32
52
  "OPERATION": "query",
33
53
  },
54
+ "weaviate.generate.near_text": {
55
+ "MODULE": WeaviateMethods.QUERY_NEAR_TEXT.value,
56
+ "METHOD": "_NearTextGenerate.near_text",
57
+ "OPERATION": "generate",
58
+ },
34
59
  "weaviate.query.near_vector": {
35
60
  "MODULE": WeaviateMethods.QUERY_NEAR_VECTOR.value,
36
61
  "METHOD": "_NearVectorQuery.near_vector",
37
62
  "OPERATION": "query",
38
63
  },
64
+ "weaviate.generate.near_vector": {
65
+ "MODULE": WeaviateMethods.QUERY_NEAR_VECTOR.value,
66
+ "METHOD": "_NearVectorGenerate.near_vector",
67
+ "OPERATION": "generate",
68
+ },
39
69
  "weaviate.collections.create": {
40
70
  "MODULE": WeaviateMethods.COLLECTIONS_OPERATIONS.value,
41
71
  "METHOD": "_Collections.create",
@@ -34,7 +34,9 @@ def patch_bootstrapfewshot_optimizer(operation_name, version, tracer):
34
34
  if args[0].prog:
35
35
  prog = {
36
36
  "name": args[0].prog.__class__.__name__,
37
- "signature": str(args[0].prog.signature) if args[0].prog.signature else None,
37
+ "signature": (
38
+ str(args[0].prog.signature) if args[0].prog.signature else None
39
+ ),
38
40
  }
39
41
  span_attributes["dspy.optimizer.module.prog"] = json.dumps(prog)
40
42
  if "metric" in instance and instance.metric:
@@ -60,9 +62,7 @@ def patch_bootstrapfewshot_optimizer(operation_name, version, tracer):
60
62
  span_attributes["dspy.optimizer.config"] = json.dumps(config)
61
63
 
62
64
  attributes = FrameworkSpanAttributes(**span_attributes)
63
- with tracer.start_as_current_span(
64
- operation_name, kind=SpanKind.CLIENT
65
- ) as span:
65
+ with tracer.start_as_current_span(operation_name, kind=SpanKind.CLIENT) as span:
66
66
  _set_input_attributes(span, kwargs, attributes)
67
67
 
68
68
  try:
@@ -108,9 +108,7 @@ def patch_signature(operation_name, version, tracer):
108
108
  span_attributes["dspy.signature.args"] = str(kwargs)
109
109
 
110
110
  attributes = FrameworkSpanAttributes(**span_attributes)
111
- with tracer.start_as_current_span(
112
- operation_name, kind=SpanKind.CLIENT
113
- ) as span:
111
+ with tracer.start_as_current_span(operation_name, kind=SpanKind.CLIENT) as span:
114
112
  _set_input_attributes(span, kwargs, attributes)
115
113
 
116
114
  try:
@@ -156,11 +154,15 @@ def patch_evaluate(operation_name, version, tracer):
156
154
  if "num_threads" in instance and instance.num_threads is not None:
157
155
  span_attributes["dspy.evaluate.num_threads"] = str(instance.num_threads)
158
156
  if "return_outputs" in instance and instance.return_outputs is not None:
159
- span_attributes["dspy.evaluate.return_outputs"] = str(instance.return_outputs)
157
+ span_attributes["dspy.evaluate.return_outputs"] = str(
158
+ instance.return_outputs
159
+ )
160
160
  if "display_table" in instance and instance.display_table is not None:
161
161
  span_attributes["dspy.evaluate.display_table"] = str(instance.display_table)
162
162
  if "display_progress" in instance and instance.display_progress is not None:
163
- span_attributes["dspy.evaluate.display_progress"] = str(instance.display_progress)
163
+ span_attributes["dspy.evaluate.display_progress"] = str(
164
+ instance.display_progress
165
+ )
164
166
  if "metric" in instance and instance.metric is not None:
165
167
  span_attributes["dspy.evaluate.metric"] = instance.metric.__name__
166
168
  if "error_count" in instance and instance.error_count is not None:
@@ -173,9 +175,7 @@ def patch_evaluate(operation_name, version, tracer):
173
175
  span_attributes["dspy.evaluate.args"] = str(args)
174
176
 
175
177
  attributes = FrameworkSpanAttributes(**span_attributes)
176
- with tracer.start_as_current_span(
177
- operation_name, kind=SpanKind.CLIENT
178
- ) as span:
178
+ with tracer.start_as_current_span(operation_name, kind=SpanKind.CLIENT) as span:
179
179
  _set_input_attributes(span, kwargs, attributes)
180
180
 
181
181
  try:
@@ -33,7 +33,8 @@ def generic_patch(operation_name, version, tracer):
33
33
  "llm.model": kwargs.get("model"),
34
34
  "llm.stream": kwargs.get("stream"),
35
35
  "url.full": base_url,
36
- "llm.api": api["METHOD"],
36
+ "llm.api": api["ENDPOINT"],
37
+ "llm.response_format": kwargs.get("format"),
37
38
  **(extra_attributes if extra_attributes is not None else {}),
38
39
  }
39
40
 
@@ -87,6 +88,10 @@ def ageneric_patch(operation_name, version, tracer):
87
88
  "langtrace.version": v(LANGTRACE_SDK_NAME),
88
89
  "llm.model": kwargs.get("model"),
89
90
  "llm.stream": kwargs.get("stream"),
91
+ "llm.response_format": kwargs.get("format"),
92
+ "http.timeout": (
93
+ kwargs.get("keep_alive") if "keep_alive" in kwargs else None
94
+ ),
90
95
  **(extra_attributes if extra_attributes is not None else {}),
91
96
  }
92
97
 
@@ -134,32 +139,43 @@ def _set_response_attributes(span, response):
134
139
  if total_tokens > 0:
135
140
  set_span_attribute(span, "llm.token.counts", json.dumps(usage_dict))
136
141
  set_span_attribute(span, "llm.finish_reason", response.get("done_reason"))
137
-
138
142
  if "message" in response:
139
143
  set_span_attribute(span, "llm.responses", json.dumps([response.get("message")]))
140
144
 
141
145
  if "response" in response:
142
146
  set_span_attribute(
143
- span, "llm.responses", json.dumps([response.get("response")])
147
+ span,
148
+ "llm.responses",
149
+ json.dumps([{"role": "assistant", "content": response.get("response")}]),
144
150
  )
145
151
 
146
152
 
147
153
  @silently_fail
148
154
  def _set_input_attributes(span, kwargs, attributes):
155
+ options = kwargs.get("options")
156
+
149
157
  for field, value in attributes.model_dump(by_alias=True).items():
150
158
  set_span_attribute(span, field, value)
151
-
152
159
  if "messages" in kwargs:
153
160
  set_span_attribute(
154
161
  span,
155
162
  "llm.prompts",
156
- json.dumps([kwargs.get("messages", [])]),
163
+ json.dumps(kwargs.get("messages", [])),
157
164
  )
158
165
  if "prompt" in kwargs:
159
166
  set_span_attribute(
160
167
  span,
161
168
  "llm.prompts",
162
- json.dumps([{"role": "user", "content": kwargs.get("prompt", [])}]),
169
+ json.dumps([{"role": "user", "content": kwargs.get("prompt", "")}]),
170
+ )
171
+ if "options" in kwargs:
172
+ set_span_attribute(span, "llm.temperature", options.get("temperature"))
173
+ set_span_attribute(span, "llm.top_p", options.get("top_p"))
174
+ set_span_attribute(
175
+ span, "llm.frequency_penalty", options.get("frequency_penalty")
176
+ )
177
+ set_span_attribute(
178
+ span, "llm.presence_penalty", options.get("presence_penalty")
163
179
  )
164
180
 
165
181
 
@@ -169,7 +185,6 @@ def _handle_streaming_response(span, response, api):
169
185
  accumulated_tokens = {"message": {"content": "", "role": ""}}
170
186
  if api == "completion":
171
187
  accumulated_tokens = {"response": ""}
172
-
173
188
  span.add_event(Event.STREAM_START.value)
174
189
  try:
175
190
  for chunk in response:
@@ -29,6 +29,7 @@ from langtrace_python_sdk.constants.instrumentation.common import (
29
29
  )
30
30
  from langtrace_python_sdk.constants.instrumentation.openai import APIS
31
31
  from langtrace_python_sdk.utils.llm import calculate_prompt_tokens, estimate_tokens
32
+ from openai._types import NOT_GIVEN
32
33
 
33
34
 
34
35
  def images_generate(original_method, version, tracer):
@@ -470,16 +471,19 @@ def chat_completions_create(original_method, version, tracer):
470
471
  attributes = LLMSpanAttributes(**span_attributes)
471
472
 
472
473
  tools = []
473
- if kwargs.get("temperature") is not None:
474
+ if (
475
+ kwargs.get("temperature") is not None
476
+ and kwargs.get("temperature") != NOT_GIVEN
477
+ ):
474
478
  attributes.llm_temperature = kwargs.get("temperature")
475
- if kwargs.get("top_p") is not None:
479
+ if kwargs.get("top_p") is not None and kwargs.get("top_p") != NOT_GIVEN:
476
480
  attributes.llm_top_p = kwargs.get("top_p")
477
- if kwargs.get("user") is not None:
481
+ if kwargs.get("user") is not None and kwargs.get("user") != NOT_GIVEN:
478
482
  attributes.llm_user = kwargs.get("user")
479
- if kwargs.get("functions") is not None:
483
+ if kwargs.get("functions") is not None and kwargs.get("functions") != NOT_GIVEN:
480
484
  for function in kwargs.get("functions"):
481
485
  tools.append(json.dumps({"type": "function", "function": function}))
482
- if kwargs.get("tools") is not None:
486
+ if kwargs.get("tools") is not None and kwargs.get("tools") != NOT_GIVEN:
483
487
  tools.append(json.dumps(kwargs.get("tools")))
484
488
  if len(tools) > 0:
485
489
  attributes.llm_tools = json.dumps(tools)
@@ -498,7 +502,11 @@ def chat_completions_create(original_method, version, tracer):
498
502
  try:
499
503
  # Attempt to call the original method
500
504
  result = wrapped(*args, **kwargs)
501
- if kwargs.get("stream") is False or kwargs.get("stream") is None:
505
+ if (
506
+ kwargs.get("stream") is False
507
+ or kwargs.get("stream") is None
508
+ or kwargs.get("stream") == NOT_GIVEN
509
+ ):
502
510
  span.set_attribute("llm.model", result.model)
503
511
  if hasattr(result, "choices") and result.choices is not None:
504
512
  responses = [
@@ -528,6 +536,7 @@ def chat_completions_create(original_method, version, tracer):
528
536
  if (
529
537
  hasattr(result, "system_fingerprint")
530
538
  and result.system_fingerprint is not None
539
+ and result.system_fingerprint != NOT_GIVEN
531
540
  ):
532
541
  span.set_attribute(
533
542
  "llm.system.fingerprint", result.system_fingerprint
@@ -554,7 +563,10 @@ def chat_completions_create(original_method, version, tracer):
554
563
  )
555
564
 
556
565
  # iterate over kwargs.get("functions") and calculate the prompt tokens
557
- if kwargs.get("functions") is not None:
566
+ if (
567
+ kwargs.get("functions") is not None
568
+ and kwargs.get("functions") != NOT_GIVEN
569
+ ):
558
570
  for function in kwargs.get("functions"):
559
571
  prompt_tokens += calculate_prompt_tokens(
560
572
  json.dumps(function), kwargs.get("model")
@@ -640,16 +652,19 @@ def async_chat_completions_create(original_method, version, tracer):
640
652
  attributes = LLMSpanAttributes(**span_attributes)
641
653
 
642
654
  tools = []
643
- if kwargs.get("temperature") is not None:
655
+ if (
656
+ kwargs.get("temperature") is not None
657
+ and kwargs.get("temperature") != NOT_GIVEN
658
+ ):
644
659
  attributes.llm_temperature = kwargs.get("temperature")
645
- if kwargs.get("top_p") is not None:
660
+ if kwargs.get("top_p") is not None and kwargs.get("top_p") != NOT_GIVEN:
646
661
  attributes.llm_top_p = kwargs.get("top_p")
647
- if kwargs.get("user") is not None:
662
+ if kwargs.get("user") is not None and kwargs.get("user") != NOT_GIVEN:
648
663
  attributes.llm_user = kwargs.get("user")
649
- if kwargs.get("functions") is not None:
664
+ if kwargs.get("functions") is not None and kwargs.get("functions") != NOT_GIVEN:
650
665
  for function in kwargs.get("functions"):
651
666
  tools.append(json.dumps({"type": "function", "function": function}))
652
- if kwargs.get("tools") is not None:
667
+ if kwargs.get("tools") is not None and kwargs.get("tools") != NOT_GIVEN:
653
668
  tools.append(json.dumps(kwargs.get("tools")))
654
669
  if len(tools) > 0:
655
670
  attributes.llm_tools = json.dumps(tools)
@@ -666,7 +681,11 @@ def async_chat_completions_create(original_method, version, tracer):
666
681
  try:
667
682
  # Attempt to call the original method
668
683
  result = await wrapped(*args, **kwargs)
669
- if kwargs.get("stream") is False or kwargs.get("stream") is None:
684
+ if (
685
+ kwargs.get("stream") is False
686
+ or kwargs.get("stream") is None
687
+ or kwargs.get("stream") == NOT_GIVEN
688
+ ):
670
689
  span.set_attribute("llm.model", result.model)
671
690
  if hasattr(result, "choices") and result.choices is not None:
672
691
  responses = [
@@ -696,6 +715,7 @@ def async_chat_completions_create(original_method, version, tracer):
696
715
  if (
697
716
  hasattr(result, "system_fingerprint")
698
717
  and result.system_fingerprint is not None
718
+ and result.system_fingerprint != NOT_GIVEN
699
719
  ):
700
720
  span.set_attribute(
701
721
  "llm.system.fingerprint", result.system_fingerprint
@@ -722,7 +742,10 @@ def async_chat_completions_create(original_method, version, tracer):
722
742
  )
723
743
 
724
744
  # iterate over kwargs.get("functions") and calculate the prompt tokens
725
- if kwargs.get("functions") is not None:
745
+ if (
746
+ kwargs.get("functions") is not None
747
+ and kwargs.get("functions") != NOT_GIVEN
748
+ ):
726
749
  for function in kwargs.get("functions"):
727
750
  prompt_tokens += calculate_prompt_tokens(
728
751
  json.dumps(function), kwargs.get("model")
@@ -45,7 +45,7 @@ class WeaviateInstrumentation(BaseInstrumentor):
45
45
  version = importlib.metadata.version("weaviate-client")
46
46
 
47
47
  for api_name, api_config in APIS.items():
48
- if api_config.get("OPERATION") == "query":
48
+ if api_config.get("OPERATION") in ["query", "generate"]:
49
49
  wrap_function_wrapper(
50
50
  api_config["MODULE"],
51
51
  api_config["METHOD"],
@@ -142,7 +142,8 @@ def create_traced_method(method_name, version, tracer, get_collection_name=None)
142
142
  try:
143
143
  # Attempt to call the original method
144
144
  result = wrapped(*args, **kwargs)
145
- if api["OPERATION"] == "query":
145
+ print(result)
146
+ if api["OPERATION"] in ["query", "generate"]:
146
147
  span.add_event(
147
148
  name="db.response",
148
149
  attributes={"db.response": aggregate_responses(result)},
@@ -1 +1 @@
1
- __version__ = "2.1.23"
1
+ __version__ = "2.1.25"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: langtrace-python-sdk
3
- Version: 2.1.23
3
+ Version: 2.1.25
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>
@@ -13,7 +13,7 @@ examples/crewai_example/basic.py,sha256=PBu4f8yQfZO1L_22UDm_ReU9lnEcycjZcGuy5Upg
13
13
  examples/dspy_example/math_problems_cot.py,sha256=Z98nB6myt8WJse2dWS6Ap7CFUhC27lBNb37R1Gg80VQ,1282
14
14
  examples/dspy_example/program_of_thought_basic.py,sha256=oEbtJdeKENMUbex25-zyStWwurRWW6OdP0KDs-jUkko,984
15
15
  examples/dspy_example/quiz_gen.py,sha256=OyGhepeX8meKOtLdmlYUjMD2ECk-ZQuQXUZif1hFQY4,3371
16
- examples/dspy_example/react.py,sha256=dmhO6AyO5K3w0WNkwe-Usd2cIgVmEPoWzusrLxXIfPo,1340
16
+ examples/dspy_example/react.py,sha256=APAnHqgy9w-qY5jnPD_WbBx6bwo9C-DhPnUuhL-t7sg,1376
17
17
  examples/fastapi_example/__init__.py,sha256=INIfvJP7zC_KkJCtulS1qbh61-MJTPAHnzAgzeKi0yU,87
18
18
  examples/fastapi_example/basic_route.py,sha256=_IRXjkOtJQ-bTIGa1WbvUF_2LF4bjghjyXt4YrHaRvw,1170
19
19
  examples/hiveagent_example/basic.py,sha256=Sd7I5w8w5Xx7ODaydTY30yiq9HwJDMKHQywrZjgehP0,441
@@ -48,10 +48,10 @@ examples/pinecone_example/basic.py,sha256=5MoHZMBxHMdC61oj-CP19gj9SxSvIcDrQL934J
48
48
  examples/qdrant_example/__init__.py,sha256=Ze9xEzW8FiHUO58YBa8JeHNOwcmo3dpYH77AkdyglKU,197
49
49
  examples/qdrant_example/basic.py,sha256=DCMjHSuBZKkhEjCkwy5d5La9WMyW0lCWqtcZWiFCEm4,1425
50
50
  examples/weaviate_example/__init__.py,sha256=8JMDBsRSEV10HfTd-YC7xb4txBjD3la56snk-Bbg2Kw,618
51
- examples/weaviate_example/query_text.py,sha256=qz9o-fTDzX5AW5m8BJF-TfmBdokxh492NfnmnPUMU3s,64814
51
+ examples/weaviate_example/query_text.py,sha256=sG8O-bXQpflBAiYpgE_M2X7GcHUlZNgl_wJW8_h-W6Q,127024
52
52
  langtrace_python_sdk/__init__.py,sha256=VZM6i71NR7pBQK6XvJWRelknuTYUhqwqE7PlicKa5Wg,1166
53
53
  langtrace_python_sdk/langtrace.py,sha256=pG_dWzzQxUP8r5SAMUwRScb6IopINcda1CZvJERjXBo,7486
54
- langtrace_python_sdk/version.py,sha256=v7ybXce2sltwQL38gMDsgF0NlBfnohuHthBrSTULxMw,23
54
+ langtrace_python_sdk/version.py,sha256=eNwueZdE6xOPV8_Xyr7CpRZhy-MW6j5G9dkoGmwRE54,23
55
55
  langtrace_python_sdk/constants/__init__.py,sha256=P8QvYwt5czUNDZsKS64vxm9Dc41ptGbuF1TFtAF6nv4,44
56
56
  langtrace_python_sdk/constants/exporter/langtrace_exporter.py,sha256=5MNjnAOg-4am78J3gVMH6FSwq5N8TOj72ugkhsw4vi0,46
57
57
  langtrace_python_sdk/constants/instrumentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -60,11 +60,11 @@ langtrace_python_sdk/constants/instrumentation/chroma.py,sha256=hiPGYdHS0Yj4Kh3e
60
60
  langtrace_python_sdk/constants/instrumentation/cohere.py,sha256=tf9sDfb5K3qOAHChEE5o8eYWPZ1io58VsOjZDCZPxfw,577
61
61
  langtrace_python_sdk/constants/instrumentation/common.py,sha256=KodH_uGGjWGGP8rqTi7Ua-osjUwtPKslx69DJRbDiT4,850
62
62
  langtrace_python_sdk/constants/instrumentation/groq.py,sha256=VFXmIl4aqGY_fS0PAmjPj_Qm7Tibxbx7Ur_e7rQpqXc,134
63
- langtrace_python_sdk/constants/instrumentation/ollama.py,sha256=zFfSUKX5v1c612doKSxsmIwQeeQxSPkFp_ZzjWQSPNE,142
63
+ langtrace_python_sdk/constants/instrumentation/ollama.py,sha256=H_-S0xjqRsi5qSp7mAlK7Y9NlQ3BqOkG6ASogqqgdJY,212
64
64
  langtrace_python_sdk/constants/instrumentation/openai.py,sha256=uEOH5UXapU2DSf2AdgXTRhhJEHGWXUNFkUGD5QafflM,1164
65
65
  langtrace_python_sdk/constants/instrumentation/pinecone.py,sha256=0TityERbGWaHGSN8-vyYZtYCjVj8fQOKae8lng0O0Bk,478
66
66
  langtrace_python_sdk/constants/instrumentation/qdrant.py,sha256=yL7BopNQTXW7L7Z-gVM2PdusKD7r9qqcATvczFd7NtQ,1999
67
- langtrace_python_sdk/constants/instrumentation/weaviate.py,sha256=Iytf2OpB_irZYEmvOQ7Pf483EdG5Bh59GxaBlXck0yY,1501
67
+ langtrace_python_sdk/constants/instrumentation/weaviate.py,sha256=gtv-JBxvNGClEMxClmRKzjJ1khgOonsli4D_k9IagSE,2601
68
68
  langtrace_python_sdk/extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
69
  langtrace_python_sdk/extensions/langtrace_exporter.py,sha256=gWVRU2DlB4xjZ4ww7M63DaLiAN5zQ2k1HPrythmjEdo,4202
70
70
  langtrace_python_sdk/extensions/langtrace_filesystem.py,sha256=qpnkpkuTZ2yhGgpBK64QJLt0T1iL-1zpEMPz4quJ_ng,6925
@@ -83,7 +83,7 @@ langtrace_python_sdk/instrumentation/crewai/instrumentation.py,sha256=W8PLTLzgEd
83
83
  langtrace_python_sdk/instrumentation/crewai/patch.py,sha256=Vnpip9Pbk4UFbTFHoUrHtAnDgsaihwSvZBgtUeOtLr8,6109
84
84
  langtrace_python_sdk/instrumentation/dspy/__init__.py,sha256=tM1srfi_QgyCzrde4izojMrRq2Wm7Dj5QUvVQXIJzkk,84
85
85
  langtrace_python_sdk/instrumentation/dspy/instrumentation.py,sha256=Y-_qcH5jCT4TbGvci6Iw0_OWUUlCmovMxnysj6NCnXI,2923
86
- langtrace_python_sdk/instrumentation/dspy/patch.py,sha256=0zBlrzvGmQEhJpb44L8fkTIhMH5i5pWOkYoSH9e8D6U,9216
86
+ langtrace_python_sdk/instrumentation/dspy/patch.py,sha256=EI1iTgKzwtCyQrzBSyPIjzhiQUVl5jfFDtodXXe5BjA,9258
87
87
  langtrace_python_sdk/instrumentation/groq/__init__.py,sha256=ZXeq_nrej6Lm_uoMFEg8wbSejhjB2UJ5IoHQBPc2-C0,91
88
88
  langtrace_python_sdk/instrumentation/groq/instrumentation.py,sha256=Ttf07XVKhdYY1_fqJc7QWiSdmgEhEVyQB_3Az2_wqYo,1832
89
89
  langtrace_python_sdk/instrumentation/groq/patch.py,sha256=EKH9tjoDbwWavIAwUadaR5tFiy-S69h1IxxzH_1SSRg,26354
@@ -104,10 +104,10 @@ langtrace_python_sdk/instrumentation/llamaindex/instrumentation.py,sha256=8iAg-O
104
104
  langtrace_python_sdk/instrumentation/llamaindex/patch.py,sha256=OGk7ps438gW49zvJQCDp7ZmkQnFxouAUu2PvHbmcAP8,4496
105
105
  langtrace_python_sdk/instrumentation/ollama/__init__.py,sha256=g2zJsXnDHinXPzTc-WxDeTtHmr9gmAj3K6l_00kP8c8,82
106
106
  langtrace_python_sdk/instrumentation/ollama/instrumentation.py,sha256=jdsvkqUJAAUNLVPtAkn_rG26HXetVQXWtjn4a6eWZro,2029
107
- langtrace_python_sdk/instrumentation/ollama/patch.py,sha256=CGLgt0qZg3WDr6XLn32qqs4D9USdMmeTmJxctbAsDeM,7908
107
+ langtrace_python_sdk/instrumentation/ollama/patch.py,sha256=uzoc2M-Vj-wEnjYBiiR8lg1s9teqMz6bG4iS6s1_QiQ,8639
108
108
  langtrace_python_sdk/instrumentation/openai/__init__.py,sha256=VPHRNCQEdkizIVP2d0Uw_a7t8XOTSTprEIB8oboJFbs,95
109
109
  langtrace_python_sdk/instrumentation/openai/instrumentation.py,sha256=A0BJHRLcZ74TNVg6I0I9M5YWvSpAtXwMmME6N5CEQ_M,2945
110
- langtrace_python_sdk/instrumentation/openai/patch.py,sha256=AUsboATdpAbIL9Eg2rLAjY-GPZgr2VkTlvGEyg_I1iU,37315
110
+ langtrace_python_sdk/instrumentation/openai/patch.py,sha256=MJGxa7w5FyGNf4PA4VpnhcO0D2HOHjY8YcroziSAXhE,38341
111
111
  langtrace_python_sdk/instrumentation/pinecone/__init__.py,sha256=DzXyGh9_MGWveJvXULkFwdkf7PbG2s3bAWtT1Dmz7Ok,99
112
112
  langtrace_python_sdk/instrumentation/pinecone/instrumentation.py,sha256=HDXkRITrVPwdQEoOYJOfMzZE_2-vDDvuqHTlD8W1lQw,1845
113
113
  langtrace_python_sdk/instrumentation/pinecone/patch.py,sha256=KiIRRz8kk47FllFT746Cb_w6F6M60AN_pcsguD979E4,5172
@@ -115,8 +115,8 @@ langtrace_python_sdk/instrumentation/qdrant/__init__.py,sha256=TaIGSAEPysrL23KJ5
115
115
  langtrace_python_sdk/instrumentation/qdrant/instrumentation.py,sha256=vl2eKSP55aqDo1JiRlvOUBrr6kddvG9Z5dCYew2OG08,1816
116
116
  langtrace_python_sdk/instrumentation/qdrant/patch.py,sha256=RhEHQxN7PJN0DjoC656Sw3GeYrJzHhp1bSky8rqOE5o,4948
117
117
  langtrace_python_sdk/instrumentation/weaviate/__init__.py,sha256=Mc-Je6evPo-kKQzerTG7bd1XO5JOh4YGTE3wBxaUBwg,99
118
- langtrace_python_sdk/instrumentation/weaviate/instrumentation.py,sha256=Dn2wMj__nNZkUtDw_jEYslE8-bz2KGkdAU_t8qzWjuA,2281
119
- langtrace_python_sdk/instrumentation/weaviate/patch.py,sha256=xzJmPVgllnahCetBDfH19_cANBUjHIp7NIVLHC9iEnM,5927
118
+ langtrace_python_sdk/instrumentation/weaviate/instrumentation.py,sha256=oWLCnh5_Nuw8bKpXJW6Zo-PpI_kJ7q2nA4BImnZ7YqY,2295
119
+ langtrace_python_sdk/instrumentation/weaviate/patch.py,sha256=rRD6WfQcNGYpw9teoCkGPCZkzolG0h-mZdPGNKkgE10,5971
120
120
  langtrace_python_sdk/types/__init__.py,sha256=KDW6S74FDxpeBa9xoH5zVEYfmRjccCCHzlW7lTJg1TA,3194
121
121
  langtrace_python_sdk/utils/__init__.py,sha256=E0nQyBE-4O_GR2PM9y_l7shx4hJLo5xRThR_LMx97M0,278
122
122
  langtrace_python_sdk/utils/langtrace_sampler.py,sha256=BupNndHbU9IL_wGleKetz8FdcveqHMBVz1bfKTTW80w,1753
@@ -163,8 +163,8 @@ tests/pinecone/cassettes/test_query.yaml,sha256=b5v9G3ssUy00oG63PlFUR3JErF2Js-5A
163
163
  tests/pinecone/cassettes/test_upsert.yaml,sha256=neWmQ1v3d03V8WoLl8FoFeeCYImb8pxlJBWnFd_lITU,38607
164
164
  tests/qdrant/conftest.py,sha256=9n0uHxxIjWk9fbYc4bx-uP8lSAgLBVx-cV9UjnsyCHM,381
165
165
  tests/qdrant/test_qdrant.py,sha256=pzjAjVY2kmsmGfrI2Gs2xrolfuaNHz7l1fqGQCjp5_o,3353
166
- langtrace_python_sdk-2.1.23.dist-info/METADATA,sha256=SFkmrJ__gq5jO8aHqumab20p7Y99I3HIccHG8Oc6eZQ,13315
167
- langtrace_python_sdk-2.1.23.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
168
- langtrace_python_sdk-2.1.23.dist-info/entry_points.txt,sha256=1_b9-qvf2fE7uQNZcbUei9vLpFZBbbh9LrtGw95ssAo,70
169
- langtrace_python_sdk-2.1.23.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
170
- langtrace_python_sdk-2.1.23.dist-info/RECORD,,
166
+ langtrace_python_sdk-2.1.25.dist-info/METADATA,sha256=yMgo1VhbUQ_ISMJC42aqOd-6V7UGk8vDIq3rimZzJ2s,13315
167
+ langtrace_python_sdk-2.1.25.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
168
+ langtrace_python_sdk-2.1.25.dist-info/entry_points.txt,sha256=1_b9-qvf2fE7uQNZcbUei9vLpFZBbbh9LrtGw95ssAo,70
169
+ langtrace_python_sdk-2.1.25.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
170
+ langtrace_python_sdk-2.1.25.dist-info/RECORD,,