langtrace-python-sdk 2.1.24__py3-none-any.whl → 2.1.26__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:
@@ -471,7 +471,10 @@ def chat_completions_create(original_method, version, tracer):
471
471
  attributes = LLMSpanAttributes(**span_attributes)
472
472
 
473
473
  tools = []
474
- if kwargs.get("temperature") is not None and kwargs.get("temperature") != NOT_GIVEN:
474
+ if (
475
+ kwargs.get("temperature") is not None
476
+ and kwargs.get("temperature") != NOT_GIVEN
477
+ ):
475
478
  attributes.llm_temperature = kwargs.get("temperature")
476
479
  if kwargs.get("top_p") is not None and kwargs.get("top_p") != NOT_GIVEN:
477
480
  attributes.llm_top_p = kwargs.get("top_p")
@@ -499,7 +502,11 @@ def chat_completions_create(original_method, version, tracer):
499
502
  try:
500
503
  # Attempt to call the original method
501
504
  result = wrapped(*args, **kwargs)
502
- if kwargs.get("stream") is False or kwargs.get("stream") is None or kwargs.get("stream") == NOT_GIVEN:
505
+ if (
506
+ kwargs.get("stream") is False
507
+ or kwargs.get("stream") is None
508
+ or kwargs.get("stream") == NOT_GIVEN
509
+ ):
503
510
  span.set_attribute("llm.model", result.model)
504
511
  if hasattr(result, "choices") and result.choices is not None:
505
512
  responses = [
@@ -528,7 +535,8 @@ def chat_completions_create(original_method, version, tracer):
528
535
  span.set_attribute("llm.responses", json.dumps(responses))
529
536
  if (
530
537
  hasattr(result, "system_fingerprint")
531
- and result.system_fingerprint is not None and result.system_fingerprint != NOT_GIVEN
538
+ and result.system_fingerprint is not None
539
+ and result.system_fingerprint != NOT_GIVEN
532
540
  ):
533
541
  span.set_attribute(
534
542
  "llm.system.fingerprint", result.system_fingerprint
@@ -555,7 +563,10 @@ def chat_completions_create(original_method, version, tracer):
555
563
  )
556
564
 
557
565
  # iterate over kwargs.get("functions") and calculate the prompt tokens
558
- if kwargs.get("functions") is not None and kwargs.get("functions") != NOT_GIVEN:
566
+ if (
567
+ kwargs.get("functions") is not None
568
+ and kwargs.get("functions") != NOT_GIVEN
569
+ ):
559
570
  for function in kwargs.get("functions"):
560
571
  prompt_tokens += calculate_prompt_tokens(
561
572
  json.dumps(function), kwargs.get("model")
@@ -641,7 +652,10 @@ def async_chat_completions_create(original_method, version, tracer):
641
652
  attributes = LLMSpanAttributes(**span_attributes)
642
653
 
643
654
  tools = []
644
- if kwargs.get("temperature") is not None and kwargs.get("temperature") != NOT_GIVEN:
655
+ if (
656
+ kwargs.get("temperature") is not None
657
+ and kwargs.get("temperature") != NOT_GIVEN
658
+ ):
645
659
  attributes.llm_temperature = kwargs.get("temperature")
646
660
  if kwargs.get("top_p") is not None and kwargs.get("top_p") != NOT_GIVEN:
647
661
  attributes.llm_top_p = kwargs.get("top_p")
@@ -667,7 +681,11 @@ def async_chat_completions_create(original_method, version, tracer):
667
681
  try:
668
682
  # Attempt to call the original method
669
683
  result = await wrapped(*args, **kwargs)
670
- if kwargs.get("stream") is False or kwargs.get("stream") is None or kwargs.get("stream") == NOT_GIVEN:
684
+ if (
685
+ kwargs.get("stream") is False
686
+ or kwargs.get("stream") is None
687
+ or kwargs.get("stream") == NOT_GIVEN
688
+ ):
671
689
  span.set_attribute("llm.model", result.model)
672
690
  if hasattr(result, "choices") and result.choices is not None:
673
691
  responses = [
@@ -696,7 +714,8 @@ def async_chat_completions_create(original_method, version, tracer):
696
714
  span.set_attribute("llm.responses", json.dumps(responses))
697
715
  if (
698
716
  hasattr(result, "system_fingerprint")
699
- and result.system_fingerprint is not None and result.system_fingerprint != NOT_GIVEN
717
+ and result.system_fingerprint is not None
718
+ and result.system_fingerprint != NOT_GIVEN
700
719
  ):
701
720
  span.set_attribute(
702
721
  "llm.system.fingerprint", result.system_fingerprint
@@ -723,7 +742,10 @@ def async_chat_completions_create(original_method, version, tracer):
723
742
  )
724
743
 
725
744
  # iterate over kwargs.get("functions") and calculate the prompt tokens
726
- if kwargs.get("functions") is not None and kwargs.get("functions") != NOT_GIVEN:
745
+ if (
746
+ kwargs.get("functions") is not None
747
+ and kwargs.get("functions") != NOT_GIVEN
748
+ ):
727
749
  for function in kwargs.get("functions"):
728
750
  prompt_tokens += calculate_prompt_tokens(
729
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.24"
1
+ __version__ = "2.1.26"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: langtrace-python-sdk
3
- Version: 2.1.24
3
+ Version: 2.1.26
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>
@@ -282,11 +282,14 @@ Langtrace automatically captures traces from the following vendors:
282
282
  | Cohere | LLM | :white_check_mark: | :white_check_mark: |
283
283
  | Groq | LLM | :x: | :white_check_mark: |
284
284
  | Langchain | Framework | :x: | :white_check_mark: |
285
+ | Langgraph | Framework | :x: | :white_check_mark: |
285
286
  | LlamaIndex | Framework | :white_check_mark: | :white_check_mark: |
286
287
  | DSPy | Framework | :x: | :white_check_mark: |
287
288
  | CrewAI | Framework | :x: | :white_check_mark: |
289
+ | Ollama | Framework | :x: | :white_check_mark: |
288
290
  | Pinecone | Vector Database | :white_check_mark: | :white_check_mark: |
289
291
  | ChromaDB | Vector Database | :white_check_mark: | :white_check_mark: |
292
+ | Weaviate | Vector Database | :white_check_mark: | :white_check_mark: |
290
293
  | QDrant | Vector Database | :x: | :white_check_mark: |
291
294
 
292
295
  ---
@@ -302,7 +305,19 @@ Langtrace automatically captures traces from the following vendors:
302
305
 
303
306
  We welcome contributions to this project. To get started, fork this repository and start developing. To get involved, join our [Discord](https://discord.langtrace.ai) workspace.
304
307
 
305
- If you want to run any of the examples go to `run_example.py` file, you will find `ENABLED_EXAMPLES`. choose the example you want to run and just toggle the flag to `True` and run the file using `python src/run_example.py`
308
+ - If you want to run any of the examples go to `run_example.py` file, you will find `ENABLED_EXAMPLES`. choose the example you want to run and just toggle the flag to `True` and run the file using `python src/run_example.py`
309
+
310
+ - If you want to run tests, make sure to install dev & test dependencies:
311
+
312
+ ```python
313
+ pip install '.[test]' && pip install '.[dev]'
314
+ ```
315
+
316
+ then run `pytest` using:
317
+
318
+ ```python
319
+ pytest -v
320
+ ```
306
321
 
307
322
  ---
308
323
 
@@ -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=qc6AJ16ihdkGGzdf0nDZHdeSsAAbLwShB1HyYj8ASPE,23
54
+ langtrace_python_sdk/version.py,sha256=kDsQujSOEts9DhAOHBOlEjAEDf0lqYMUYrA9xzjlvh0,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=-DIYUr0yvE2qGE2o4EgP4aFZavm3lSFd65PUFO3_35Q,37981
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.24.dist-info/METADATA,sha256=50Fbxi2n64CuBiA2w9o0XF-Ktsw4PauKvoPEi4Cmjts,13315
167
- langtrace_python_sdk-2.1.24.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
168
- langtrace_python_sdk-2.1.24.dist-info/entry_points.txt,sha256=1_b9-qvf2fE7uQNZcbUei9vLpFZBbbh9LrtGw95ssAo,70
169
- langtrace_python_sdk-2.1.24.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
170
- langtrace_python_sdk-2.1.24.dist-info/RECORD,,
166
+ langtrace_python_sdk-2.1.26.dist-info/METADATA,sha256=YNNbDWGqNpHo-uWbngCA_l7MUhQd6brocjtLbWvGuio,13749
167
+ langtrace_python_sdk-2.1.26.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
168
+ langtrace_python_sdk-2.1.26.dist-info/entry_points.txt,sha256=1_b9-qvf2fE7uQNZcbUei9vLpFZBbbh9LrtGw95ssAo,70
169
+ langtrace_python_sdk-2.1.26.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
170
+ langtrace_python_sdk-2.1.26.dist-info/RECORD,,