langtrace-python-sdk 2.2.23__py3-none-any.whl → 2.2.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.
@@ -15,13 +15,14 @@ from pathlib import Path
15
15
  import requests
16
16
  import weaviate
17
17
  import weaviate.classes as wvc
18
+ import weaviate.classes.config as wc
19
+ from dotenv import load_dotenv
18
20
  from weaviate.classes.aggregate import GroupByAggregate
19
21
  from weaviate.classes.query import Filter, HybridFusion, MetadataQuery
20
22
  from weaviate.collections.classes.grpc import Move
21
23
 
22
24
  import langtrace_python_sdk.langtrace as langtrace
23
25
  from langtrace_python_sdk import with_langtrace_root_span
24
- from dotenv import load_dotenv
25
26
 
26
27
  load_dotenv()
27
28
  # Set these environment variables
@@ -44,11 +45,16 @@ def create():
44
45
  if not client.collections.get("Question"):
45
46
  questions = client.collections.create(
46
47
  name="Question",
47
- # Set the vectorizer to "text2vec-openai" to use the OpenAI API for vector-related operations
48
- vectorizer_config=wvc.config.Configure.Vectorizer.text2vec_openai(),
49
- # Ensure the `generative-openai` module is used for generative queries
50
- generative_config=wvc.config.Configure.Generative.openai(),
51
- )
48
+ properties=[
49
+ wc.Property(name="answer", data_type=wc.DataType.TEXT),
50
+ wc.Property(name="question", data_type=wc.DataType.TEXT),
51
+ wc.Property(name="category", data_type=wc.DataType.TEXT),
52
+ ],
53
+ # Define the vectorizer module
54
+ vectorizer_config=wc.Configure.Vectorizer.text2vec_openai(),
55
+ # Define the generative module
56
+ generative_config=wc.Configure.Generative.openai(),
57
+ )
52
58
 
53
59
 
54
60
  @with_langtrace_root_span("insert")
@@ -23,7 +23,6 @@ from langtrace_python_sdk.utils.llm import (
23
23
  get_llm_url,
24
24
  get_span_name,
25
25
  set_event_completion,
26
- set_event_completion_chunk,
27
26
  set_usage_attributes,
28
27
  )
29
28
  from langtrace.trace_attributes import Event, LLMSpanAttributes
@@ -13,7 +13,6 @@ from langtrace_python_sdk.utils.llm import (
13
13
  get_span_name,
14
14
  is_streaming,
15
15
  set_event_completion,
16
- set_event_completion_chunk,
17
16
  set_span_attributes,
18
17
  set_usage_attributes,
19
18
  )
@@ -156,7 +155,6 @@ def build_streaming_response(span, response):
156
155
  item_to_yield = item
157
156
  complete_response += str(item.text)
158
157
  yield item_to_yield
159
- set_event_completion_chunk(span, item.text)
160
158
  if hasattr(item, "usage_metadata"):
161
159
  usage = item.usage_metadata
162
160
  input_tokens = usage.prompt_token_count
@@ -176,7 +174,6 @@ async def abuild_streaming_response(span, response):
176
174
  item_to_yield = item
177
175
  complete_response += str(item.text)
178
176
  yield item_to_yield
179
- set_event_completion_chunk(span, item.text)
180
177
  if hasattr(item, "usage_metadata"):
181
178
  usage = item.usage_metadata
182
179
  input_tokens = usage.prompt_token_count
@@ -31,7 +31,6 @@ from langtrace_python_sdk.utils.llm import (
31
31
  get_langtrace_attributes,
32
32
  get_span_name,
33
33
  set_event_completion,
34
- set_event_completion_chunk,
35
34
  set_usage_attributes,
36
35
  )
37
36
  from langtrace_python_sdk.constants.instrumentation.common import (
@@ -245,14 +244,6 @@ def chat_completions_create(original_method, version, tracer):
245
244
  else:
246
245
  content = []
247
246
 
248
- set_event_completion_chunk(
249
- span,
250
- (
251
- "".join(content)
252
- if len(content) > 0 and content[0] is not None
253
- else ""
254
- ),
255
- )
256
247
  result_content.append(content[0] if len(content) > 0 else "")
257
248
  yield chunk
258
249
  finally:
@@ -8,7 +8,6 @@ from langtrace_python_sdk.utils.llm import (
8
8
  get_llm_url,
9
9
  get_span_name,
10
10
  set_event_completion,
11
- set_event_completion_chunk,
12
11
  )
13
12
  from langtrace_python_sdk.utils.silently_fail import silently_fail
14
13
  from langtrace_python_sdk.constants.instrumentation.common import SERVICE_PROVIDERS
@@ -37,7 +37,7 @@ class WeaviateInstrumentation(BaseInstrumentor):
37
37
  """
38
38
 
39
39
  def instrumentation_dependencies(self) -> Collection[str]:
40
- return ["weaviate-client >= 4.6.1", "trace-attributes >= 4.0.2"]
40
+ return ["weaviate-client >= 4.6.1", "trace-attributes >= 7.0.3"]
41
41
 
42
42
  def _instrument(self, **kwargs):
43
43
  tracer_provider = kwargs.get("tracer_provider")
@@ -16,21 +16,21 @@ limitations under the License.
16
16
 
17
17
  import json
18
18
 
19
+ from importlib_metadata import version as v
19
20
  from langtrace.trace_attributes import DatabaseSpanAttributes
20
- from langtrace_python_sdk.utils.llm import get_span_name
21
21
  from opentelemetry import baggage, trace
22
22
  from opentelemetry.trace import SpanKind
23
- from opentelemetry.trace.status import Status, StatusCode
24
23
  from opentelemetry.trace.propagation import set_span_in_context
24
+ from opentelemetry.trace.status import Status, StatusCode
25
+
26
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
25
27
  from langtrace_python_sdk.constants.instrumentation.common import (
26
28
  LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY,
27
29
  SERVICE_PROVIDERS,
28
30
  )
29
31
  from langtrace_python_sdk.constants.instrumentation.weaviate import APIS
32
+ from langtrace_python_sdk.utils.llm import get_span_name
30
33
  from langtrace_python_sdk.utils.misc import extract_input_params, to_iso_format
31
- from importlib_metadata import version as v
32
-
33
- from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
34
34
 
35
35
  # Predefined metadata response attributes
36
36
  METADATA_ATTRIBUTES = [
@@ -45,6 +45,22 @@ METADATA_ATTRIBUTES = [
45
45
  ]
46
46
 
47
47
 
48
+ def extract_inputs(args, kwargs):
49
+ extracted_params = {}
50
+ kwargs_without_properties = {k: v for k, v in kwargs.items() if k != "properties"}
51
+ extracted_params.update(extract_input_params(args, kwargs_without_properties))
52
+
53
+ if kwargs.get("properties", None):
54
+ extracted_params["properties"] = []
55
+ for each_prop in kwargs.get("properties"):
56
+ if hasattr(each_prop, "_to_dict"):
57
+ # append properties to extracted_params
58
+ extracted_params["properties"].append(each_prop._to_dict())
59
+
60
+ extracted_params["properties"] = json.dumps(extracted_params["properties"])
61
+ return extracted_params
62
+
63
+
48
64
  def extract_metadata(metadata):
49
65
  # Extraction response Query metadata
50
66
  extracted_metadata = {
@@ -126,7 +142,7 @@ def create_traced_method(method_name, version, tracer, get_collection_name=None)
126
142
  "db.system": "weaviate",
127
143
  "db.operation": api["OPERATION"],
128
144
  "db.collection.name": collection_name,
129
- "db.query": json.dumps(extract_input_params(args, kwargs)),
145
+ "db.query": json.dumps(extract_inputs(args, kwargs)),
130
146
  **(extra_attributes if extra_attributes is not None else {}),
131
147
  }
132
148
 
@@ -143,7 +159,6 @@ def create_traced_method(method_name, version, tracer, get_collection_name=None)
143
159
  try:
144
160
  # Attempt to call the original method
145
161
  result = wrapped(*args, **kwargs)
146
- print(result)
147
162
  if api["OPERATION"] in ["query", "generate"]:
148
163
  span.add_event(
149
164
  name="db.response",
@@ -1 +1 @@
1
- __version__ = "2.2.23"
1
+ __version__ = "2.2.25"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: langtrace-python-sdk
3
- Version: 2.2.23
3
+ Version: 2.2.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>
@@ -20,7 +20,7 @@ Requires-Dist: opentelemetry-instrumentation>=0.47b0
20
20
  Requires-Dist: opentelemetry-sdk>=1.25.0
21
21
  Requires-Dist: sqlalchemy
22
22
  Requires-Dist: tiktoken>=0.1.1
23
- Requires-Dist: trace-attributes==7.0.1
23
+ Requires-Dist: trace-attributes==7.0.3
24
24
  Provides-Extra: dev
25
25
  Requires-Dist: anthropic; extra == 'dev'
26
26
  Requires-Dist: chromadb; extra == 'dev'
@@ -71,10 +71,10 @@ examples/routellm_example/basic.py,sha256=6XYfs9Wu2ty-Kv8yiC5U49qJuTNv728xWKQsIm
71
71
  examples/vertexai_example/__init__.py,sha256=sEKULUwHdn-CJnbYs_jt4QPAUnM_fqwMBI3HJ1RBZco,83
72
72
  examples/vertexai_example/main.py,sha256=gndId5X5ksD-ycxnAWMdEqIDbLc3kz5Vt8vm4YPIk7I,5849
73
73
  examples/weaviate_example/__init__.py,sha256=8JMDBsRSEV10HfTd-YC7xb4txBjD3la56snk-Bbg2Kw,618
74
- examples/weaviate_example/query_text.py,sha256=sG8O-bXQpflBAiYpgE_M2X7GcHUlZNgl_wJW8_h-W6Q,127024
74
+ examples/weaviate_example/query_text.py,sha256=wPHQTc_58kPoKTZMygVjTj-2ZcdrIuaausJfMxNQnQc,127162
75
75
  langtrace_python_sdk/__init__.py,sha256=VZM6i71NR7pBQK6XvJWRelknuTYUhqwqE7PlicKa5Wg,1166
76
76
  langtrace_python_sdk/langtrace.py,sha256=5BL5lNZejLRq9AVuOCjFaPpIkFNUh2vLvlGSGVxUlE4,7974
77
- langtrace_python_sdk/version.py,sha256=Q8BkngWSfGy5JQxcAsViGql-GdawCdx5vm_X4sj0nJc,23
77
+ langtrace_python_sdk/version.py,sha256=8xbzK-r35DSBokXIRfAv8IZHOXPKauxqDz3rOSngMig,23
78
78
  langtrace_python_sdk/constants/__init__.py,sha256=P8QvYwt5czUNDZsKS64vxm9Dc41ptGbuF1TFtAF6nv4,44
79
79
  langtrace_python_sdk/constants/exporter/langtrace_exporter.py,sha256=5MNjnAOg-4am78J3gVMH6FSwq5N8TOj72ugkhsw4vi0,46
80
80
  langtrace_python_sdk/constants/instrumentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -102,7 +102,7 @@ langtrace_python_sdk/instrumentation/chroma/instrumentation.py,sha256=nT6PS6bsrI
102
102
  langtrace_python_sdk/instrumentation/chroma/patch.py,sha256=1jCbyum11ifbQFLO43eg0yW33Yc7NI_fwhRf1gspHcM,9087
103
103
  langtrace_python_sdk/instrumentation/cohere/__init__.py,sha256=sGUSLdTUyYf36Tm6L5jQflhzCqvmWrhnBOMYHjvp6Hs,95
104
104
  langtrace_python_sdk/instrumentation/cohere/instrumentation.py,sha256=YQFHZIBd7SSPD4b6Va-ZR0thf_AuBCqj5yzHLHJVWnM,2121
105
- langtrace_python_sdk/instrumentation/cohere/patch.py,sha256=Mv9mk3HBdMYsartyYzqsGPkY791LkEoigyShaQBM0xk,21004
105
+ langtrace_python_sdk/instrumentation/cohere/patch.py,sha256=Yb0OwxO4gG-WBfGhTFrwUUJEgpnRlyWI_FZveA4T1QU,20972
106
106
  langtrace_python_sdk/instrumentation/crewai/__init__.py,sha256=_UBKfvQv7l0g2_wnmA5F6CdSAFH0atNOVPd49zsN3aM,88
107
107
  langtrace_python_sdk/instrumentation/crewai/instrumentation.py,sha256=q07x6nnig9JPxDT6ZylyIShfXWjNafKBetnNcA1UdEU,1836
108
108
  langtrace_python_sdk/instrumentation/crewai/patch.py,sha256=4W7jEIJX4SJNViPlFTBJdSkvvPVJoI76Bb5DX673Ql8,6203
@@ -111,10 +111,10 @@ langtrace_python_sdk/instrumentation/dspy/instrumentation.py,sha256=o8URiDvCbZ8L
111
111
  langtrace_python_sdk/instrumentation/dspy/patch.py,sha256=E2P3MJBQ71or4M6BsvZOwYFtJK1UdTsYkdxVj9fSWPs,9869
112
112
  langtrace_python_sdk/instrumentation/gemini/__init__.py,sha256=ilWmKA4Li-g3DX6R10WQ4v-51VljxToEnJpOQoQB5uQ,88
113
113
  langtrace_python_sdk/instrumentation/gemini/instrumentation.py,sha256=eGWr2dy1f_9TVZiXSH_MlNQINyS4I28EsOTKREdMVio,1304
114
- langtrace_python_sdk/instrumentation/gemini/patch.py,sha256=WIeZdge0uiWvzJ9HR2KHYyTYO6NpLjQwtjueq8lB8lA,6364
114
+ langtrace_python_sdk/instrumentation/gemini/patch.py,sha256=Zedp4bZH3-45LOaieSGyoTffgWJjqLs1YCDwM53v2CI,6228
115
115
  langtrace_python_sdk/instrumentation/groq/__init__.py,sha256=ZXeq_nrej6Lm_uoMFEg8wbSejhjB2UJ5IoHQBPc2-C0,91
116
116
  langtrace_python_sdk/instrumentation/groq/instrumentation.py,sha256=Ttf07XVKhdYY1_fqJc7QWiSdmgEhEVyQB_3Az2_wqYo,1832
117
- langtrace_python_sdk/instrumentation/groq/patch.py,sha256=pffttsSPgsvKxaWKd3y2RSzJQ8wRoLFO7SfsQ9vc93k,23813
117
+ langtrace_python_sdk/instrumentation/groq/patch.py,sha256=SmpsNVQyRcsvdh2fCKHsQ-EWsauMV972s99hznuNOjk,23504
118
118
  langtrace_python_sdk/instrumentation/langchain/__init__.py,sha256=-7ZkqQFu64F-cxSFd1ZPrciODKqmUIyUbQQ-eHuQPyM,101
119
119
  langtrace_python_sdk/instrumentation/langchain/instrumentation.py,sha256=_Z4AeNb2hBPSCvMRxE-mUfmkUO_wP_tGGtu-jppWPiI,3462
120
120
  langtrace_python_sdk/instrumentation/langchain/patch.py,sha256=BmVBKPpI4P9AX6Y8e67WYSz0a0rxZK7cJkI75ure2f4,4166
@@ -132,7 +132,7 @@ langtrace_python_sdk/instrumentation/llamaindex/instrumentation.py,sha256=8iAg-O
132
132
  langtrace_python_sdk/instrumentation/llamaindex/patch.py,sha256=548hzPyT_k-2wmt9AArv4JzTT4j4AGKJq5Ar2bWv7o8,4615
133
133
  langtrace_python_sdk/instrumentation/ollama/__init__.py,sha256=g2zJsXnDHinXPzTc-WxDeTtHmr9gmAj3K6l_00kP8c8,82
134
134
  langtrace_python_sdk/instrumentation/ollama/instrumentation.py,sha256=jdsvkqUJAAUNLVPtAkn_rG26HXetVQXWtjn4a6eWZro,2029
135
- langtrace_python_sdk/instrumentation/ollama/patch.py,sha256=5Y_pPVh1Pt8BcxyCiJWex3oNqYTcuOo5udh1-jNsCO0,5407
135
+ langtrace_python_sdk/instrumentation/ollama/patch.py,sha256=7ETx0tQic5h_kH1f-IeptFwgNTBb4hSkTkWsB18Avm0,5375
136
136
  langtrace_python_sdk/instrumentation/openai/__init__.py,sha256=VPHRNCQEdkizIVP2d0Uw_a7t8XOTSTprEIB8oboJFbs,95
137
137
  langtrace_python_sdk/instrumentation/openai/instrumentation.py,sha256=A0BJHRLcZ74TNVg6I0I9M5YWvSpAtXwMmME6N5CEQ_M,2945
138
138
  langtrace_python_sdk/instrumentation/openai/patch.py,sha256=4GCYJzZdUBopEDinpTwRBFf-Enb0hdNO16LiiMKqqvY,24226
@@ -146,8 +146,8 @@ langtrace_python_sdk/instrumentation/vertexai/__init__.py,sha256=ZzKxB7bl0FaRlgJ
146
146
  langtrace_python_sdk/instrumentation/vertexai/instrumentation.py,sha256=Keeb1D7nJDYu33w6H8Q8jLS7OOJtSIHqngvJMipWqJo,1143
147
147
  langtrace_python_sdk/instrumentation/vertexai/patch.py,sha256=mfd3LiKYGMW3jLf9OEi7Iq9NUOThLskCqa_blvFmGV0,4489
148
148
  langtrace_python_sdk/instrumentation/weaviate/__init__.py,sha256=Mc-Je6evPo-kKQzerTG7bd1XO5JOh4YGTE3wBxaUBwg,99
149
- langtrace_python_sdk/instrumentation/weaviate/instrumentation.py,sha256=oWLCnh5_Nuw8bKpXJW6Zo-PpI_kJ7q2nA4BImnZ7YqY,2295
150
- langtrace_python_sdk/instrumentation/weaviate/patch.py,sha256=qX4VQqScH2kygn5lQabKvDmQkAJga_yVwU46YPCtceQ,6048
149
+ langtrace_python_sdk/instrumentation/weaviate/instrumentation.py,sha256=bzPwtoQD0X6beLYXe6ZL7XRkyRkqdiqKiGc4gOlCQdU,2295
150
+ langtrace_python_sdk/instrumentation/weaviate/patch.py,sha256=nr7USyY6overK3GQCo4Si0x3eoEl9ptoMRXuQUP4Ox8,6671
151
151
  langtrace_python_sdk/types/__init__.py,sha256=KDW6S74FDxpeBa9xoH5zVEYfmRjccCCHzlW7lTJg1TA,3194
152
152
  langtrace_python_sdk/utils/__init__.py,sha256=SwYYPIh2AzEpI3zbwowQU2zJlwRwoVdWOCcrAKnkI9g,873
153
153
  langtrace_python_sdk/utils/langtrace_sampler.py,sha256=BupNndHbU9IL_wGleKetz8FdcveqHMBVz1bfKTTW80w,1753
@@ -200,8 +200,8 @@ tests/pinecone/cassettes/test_query.yaml,sha256=b5v9G3ssUy00oG63PlFUR3JErF2Js-5A
200
200
  tests/pinecone/cassettes/test_upsert.yaml,sha256=neWmQ1v3d03V8WoLl8FoFeeCYImb8pxlJBWnFd_lITU,38607
201
201
  tests/qdrant/conftest.py,sha256=9n0uHxxIjWk9fbYc4bx-uP8lSAgLBVx-cV9UjnsyCHM,381
202
202
  tests/qdrant/test_qdrant.py,sha256=pzjAjVY2kmsmGfrI2Gs2xrolfuaNHz7l1fqGQCjp5_o,3353
203
- langtrace_python_sdk-2.2.23.dist-info/METADATA,sha256=x2GEjOIpSYOL_HIP8dzQYBMEU8AYVsJ3QE7Gn-KfIvU,14705
204
- langtrace_python_sdk-2.2.23.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
205
- langtrace_python_sdk-2.2.23.dist-info/entry_points.txt,sha256=1_b9-qvf2fE7uQNZcbUei9vLpFZBbbh9LrtGw95ssAo,70
206
- langtrace_python_sdk-2.2.23.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
207
- langtrace_python_sdk-2.2.23.dist-info/RECORD,,
203
+ langtrace_python_sdk-2.2.25.dist-info/METADATA,sha256=N1w_sCc_3OMdsdme1UeDvS-h0jaG5VgN5YpXT6F9f00,14705
204
+ langtrace_python_sdk-2.2.25.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
205
+ langtrace_python_sdk-2.2.25.dist-info/entry_points.txt,sha256=1_b9-qvf2fE7uQNZcbUei9vLpFZBbbh9LrtGw95ssAo,70
206
+ langtrace_python_sdk-2.2.25.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
207
+ langtrace_python_sdk-2.2.25.dist-info/RECORD,,