langtrace-python-sdk 3.1.4__py3-none-any.whl → 3.2.0__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.
@@ -0,0 +1,10 @@
1
+ from examples.awsbedrock_examples.converse import use_converse
2
+ from langtrace_python_sdk import langtrace, with_langtrace_root_span
3
+
4
+ langtrace.init()
5
+
6
+
7
+ class AWSBedrockRunner:
8
+ @with_langtrace_root_span("AWS_Bedrock")
9
+ def run(self):
10
+ use_converse()
@@ -0,0 +1,34 @@
1
+ import os
2
+ import boto3
3
+ from langtrace_python_sdk import langtrace
4
+
5
+ langtrace.init(api_key=os.environ["LANGTRACE_API_KEY"])
6
+
7
+ def use_converse():
8
+ model_id = "anthropic.claude-3-haiku-20240307-v1:0"
9
+ client = boto3.client(
10
+ "bedrock-runtime",
11
+ region_name="us-east-1",
12
+ aws_access_key_id=os.environ["AWS_ACCESS_KEY_ID"],
13
+ aws_secret_access_key=os.environ["AWS_SECRET_ACCESS_KEY"],
14
+ )
15
+ conversation = [
16
+ {
17
+ "role": "user",
18
+ "content": [{"text": "Write a story about a magic backpack."}],
19
+ }
20
+ ]
21
+
22
+ try:
23
+ response = client.converse(
24
+ modelId=model_id,
25
+ messages=conversation,
26
+ inferenceConfig={"maxTokens":4096,"temperature":0},
27
+ additionalModelRequestFields={"top_k":250}
28
+ )
29
+ response_text = response["output"]["message"]["content"][0]["text"]
30
+ print(response_text)
31
+
32
+ except (Exception) as e:
33
+ print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}")
34
+ exit(1)
@@ -0,0 +1,12 @@
1
+ from langtrace.trace_attributes import AWSBedrockMethods
2
+
3
+ APIS = {
4
+ "CONVERSE": {
5
+ "METHOD": AWSBedrockMethods.CONVERSE.value,
6
+ "ENDPOINT": "/converse",
7
+ },
8
+ "CONVERSE_STREAM": {
9
+ "METHOD": AWSBedrockMethods.CONVERSE_STREAM.value,
10
+ "ENDPOINT": "/converse-stream",
11
+ },
12
+ }
@@ -34,6 +34,7 @@ SERVICE_PROVIDERS = {
34
34
  "EMBEDCHAIN": "Embedchain",
35
35
  "AUTOGEN": "Autogen",
36
36
  "XAI": "XAI",
37
+ "AWS_BEDROCK": "AWS Bedrock",
37
38
  }
38
39
 
39
40
  LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY = "langtrace_additional_attributes"
@@ -18,6 +18,7 @@ from .autogen import AutogenInstrumentation
18
18
  from .vertexai import VertexAIInstrumentation
19
19
  from .gemini import GeminiInstrumentation
20
20
  from .mistral import MistralInstrumentation
21
+ from .aws_bedrock import AWSBedrockInstrumentation
21
22
  from .embedchain import EmbedchainInstrumentation
22
23
  from .litellm import LiteLLMInstrumentation
23
24
 
@@ -44,4 +45,5 @@ __all__ = [
44
45
  "VertexAIInstrumentation",
45
46
  "GeminiInstrumentation",
46
47
  "MistralInstrumentation",
48
+ "AWSBedrockInstrumentation",
47
49
  ]
@@ -0,0 +1,3 @@
1
+ from .instrumentation import AWSBedrockInstrumentation
2
+
3
+ __all__ = ["AWSBedrockInstrumentation"]
@@ -0,0 +1,58 @@
1
+ """
2
+ Copyright (c) 2024 Scale3 Labs
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ """
16
+
17
+ import importlib.metadata
18
+ import logging
19
+ from typing import Collection
20
+
21
+ from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
22
+ from opentelemetry.trace import get_tracer
23
+ from wrapt import wrap_function_wrapper as _W
24
+
25
+ from langtrace_python_sdk.instrumentation.aws_bedrock.patch import (
26
+ converse, converse_stream
27
+ )
28
+
29
+ logging.basicConfig(level=logging.FATAL)
30
+
31
+ def _patch_client(client, version: str, tracer) -> None:
32
+
33
+ # Store original methods
34
+ original_converse = client.converse
35
+
36
+ # Replace with wrapped versions
37
+ client.converse = converse("aws_bedrock.converse", version, tracer)(original_converse)
38
+
39
+ class AWSBedrockInstrumentation(BaseInstrumentor):
40
+
41
+ def instrumentation_dependencies(self) -> Collection[str]:
42
+ return ["boto3 >= 1.35.31"]
43
+
44
+ def _instrument(self, **kwargs):
45
+ tracer_provider = kwargs.get("tracer_provider")
46
+ tracer = get_tracer(__name__, "", tracer_provider)
47
+ version = importlib.metadata.version("boto3")
48
+
49
+ def wrap_create_client(wrapped, instance, args, kwargs):
50
+ result = wrapped(*args, **kwargs)
51
+ if args and args[0] == 'bedrock-runtime':
52
+ _patch_client(result, version, tracer)
53
+ return result
54
+
55
+ _W("boto3", "client", wrap_create_client)
56
+
57
+ def _uninstrument(self, **kwargs):
58
+ pass
@@ -0,0 +1,157 @@
1
+ """
2
+ Copyright (c) 2024 Scale3 Labs
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ """
16
+
17
+ import json
18
+ from functools import wraps
19
+
20
+ from langtrace.trace_attributes import (
21
+ LLMSpanAttributes,
22
+ SpanAttributes,
23
+ )
24
+ from langtrace_python_sdk.utils import set_span_attribute
25
+ from langtrace_python_sdk.utils.silently_fail import silently_fail
26
+ from opentelemetry import trace
27
+ from opentelemetry.trace import SpanKind
28
+ from opentelemetry.trace.status import Status, StatusCode
29
+ from opentelemetry.trace.propagation import set_span_in_context
30
+ from langtrace_python_sdk.constants.instrumentation.common import (
31
+ SERVICE_PROVIDERS,
32
+ )
33
+ from langtrace_python_sdk.constants.instrumentation.aws_bedrock import APIS
34
+ from langtrace_python_sdk.utils.llm import (
35
+ get_extra_attributes,
36
+ get_langtrace_attributes,
37
+ get_llm_request_attributes,
38
+ get_llm_url,
39
+ get_span_name,
40
+ set_event_completion,
41
+ set_span_attributes,
42
+ )
43
+
44
+
45
+ def traced_aws_bedrock_call(api_name: str, operation_name: str):
46
+ def decorator(method_name: str, version: str, tracer):
47
+ def wrapper(original_method):
48
+ @wraps(original_method)
49
+ def wrapped_method(*args, **kwargs):
50
+ service_provider = SERVICE_PROVIDERS["AWS_BEDROCK"]
51
+
52
+ input_content = [
53
+ {
54
+ 'role': message.get('role', 'user'),
55
+ 'content': message.get('content', [])[0].get('text', "")
56
+ }
57
+ for message in kwargs.get('messages', [])
58
+ ]
59
+
60
+ span_attributes = {
61
+ **get_langtrace_attributes(version, service_provider, vendor_type="framework"),
62
+ **get_llm_request_attributes(kwargs, operation_name=operation_name, prompts=input_content),
63
+ **get_llm_url(args[0] if args else None),
64
+ SpanAttributes.LLM_PATH: APIS[api_name]["ENDPOINT"],
65
+ **get_extra_attributes(),
66
+ }
67
+
68
+ if api_name == "CONVERSE":
69
+ span_attributes.update({
70
+ SpanAttributes.LLM_REQUEST_MODEL: kwargs.get('modelId'),
71
+ SpanAttributes.LLM_REQUEST_MAX_TOKENS: kwargs.get('inferenceConfig', {}).get('maxTokens'),
72
+ SpanAttributes.LLM_REQUEST_TEMPERATURE: kwargs.get('inferenceConfig', {}).get('temperature'),
73
+ SpanAttributes.LLM_REQUEST_TOP_P: kwargs.get('inferenceConfig', {}).get('top_p'),
74
+ })
75
+
76
+ attributes = LLMSpanAttributes(**span_attributes)
77
+
78
+ with tracer.start_as_current_span(
79
+ name=get_span_name(APIS[api_name]["METHOD"]),
80
+ kind=SpanKind.CLIENT,
81
+ context=set_span_in_context(trace.get_current_span()),
82
+ ) as span:
83
+ set_span_attributes(span, attributes)
84
+ try:
85
+ result = original_method(*args, **kwargs)
86
+ _set_response_attributes(span, kwargs, result)
87
+ span.set_status(StatusCode.OK)
88
+ return result
89
+ except Exception as err:
90
+ span.record_exception(err)
91
+ span.set_status(Status(StatusCode.ERROR, str(err)))
92
+ raise err
93
+
94
+ return wrapped_method
95
+ return wrapper
96
+ return decorator
97
+
98
+
99
+ converse = traced_aws_bedrock_call("CONVERSE", "converse")
100
+
101
+
102
+ def converse_stream(original_method, version, tracer):
103
+ def traced_method(wrapped, instance, args, kwargs):
104
+ service_provider = SERVICE_PROVIDERS["AWS_BEDROCK"]
105
+
106
+ span_attributes = {
107
+ **get_langtrace_attributes
108
+ (version, service_provider, vendor_type="llm"),
109
+ **get_llm_request_attributes(kwargs),
110
+ **get_llm_url(instance),
111
+ SpanAttributes.LLM_PATH: APIS["CONVERSE_STREAM"]["ENDPOINT"],
112
+ **get_extra_attributes(),
113
+ }
114
+
115
+ attributes = LLMSpanAttributes(**span_attributes)
116
+
117
+ with tracer.start_as_current_span(
118
+ name=get_span_name(APIS["CONVERSE_STREAM"]["METHOD"]),
119
+ kind=SpanKind.CLIENT,
120
+ context=set_span_in_context(trace.get_current_span()),
121
+ ) as span:
122
+ set_span_attributes(span, attributes)
123
+ try:
124
+ result = wrapped(*args, **kwargs)
125
+ _set_response_attributes(span, kwargs, result)
126
+ span.set_status(StatusCode.OK)
127
+ return result
128
+ except Exception as err:
129
+ span.record_exception(err)
130
+ span.set_status(Status(StatusCode.ERROR, str(err)))
131
+ raise err
132
+
133
+ return traced_method
134
+
135
+
136
+ @silently_fail
137
+ def _set_response_attributes(span, kwargs, result):
138
+ set_span_attribute(span, SpanAttributes.LLM_RESPONSE_MODEL, kwargs.get('modelId'))
139
+ set_span_attribute(span, SpanAttributes.LLM_TOP_K, kwargs.get('additionalModelRequestFields', {}).get('top_k'))
140
+ content = result.get('output', {}).get('message', {}).get('content', [])
141
+ if len(content) > 0:
142
+ role = result.get('output', {}).get('message', {}).get('role', "assistant")
143
+ responses = [
144
+ {"role": role, "content": c.get('text', "")}
145
+ for c in content
146
+ ]
147
+ set_event_completion(span, responses)
148
+
149
+ if 'usage' in result:
150
+ set_span_attributes(
151
+ span,
152
+ {
153
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS: result['usage'].get('outputTokens'),
154
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS: result['usage'].get('inputTokens'),
155
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS: result['usage'].get('totalTokens'),
156
+ }
157
+ )
@@ -56,6 +56,7 @@ from langtrace_python_sdk.instrumentation import (
56
56
  LiteLLMInstrumentation,
57
57
  LlamaindexInstrumentation,
58
58
  MistralInstrumentation,
59
+ AWSBedrockInstrumentation,
59
60
  OllamaInstrumentor,
60
61
  OpenAIInstrumentation,
61
62
  PineconeInstrumentation,
@@ -278,6 +279,7 @@ def init(
278
279
  "google-cloud-aiplatform": VertexAIInstrumentation(),
279
280
  "google-generativeai": GeminiInstrumentation(),
280
281
  "mistralai": MistralInstrumentation(),
282
+ "boto3": AWSBedrockInstrumentation(),
281
283
  "autogen": AutogenInstrumentation(),
282
284
  }
283
285
 
@@ -30,6 +30,7 @@ class InstrumentationType(Enum):
30
30
  SQLALCHEMY = "sqlalchemy"
31
31
  VERTEXAI = "vertexai"
32
32
  WEAVIATE = "weaviate"
33
+ AWS_BEDROCK = "boto3"
33
34
 
34
35
  @staticmethod
35
36
  def from_string(value: str):
@@ -62,6 +63,11 @@ class VendorMethods(TypedDict):
62
63
  "mistral.embeddings.create",
63
64
  ]
64
65
 
66
+ AwsBedrockMethods = Literal[
67
+ "aws_bedrock.converse",
68
+ "aws_bedrock.converse_stream",
69
+ ]
70
+
65
71
  ChromadbMethods = Literal[
66
72
  "chromadb.collection.add",
67
73
  "chromadb.collection.query",
@@ -112,6 +118,7 @@ class InstrumentationMethods(TypedDict):
112
118
  open_ai: List[VendorMethods.OpenaiMethods]
113
119
  groq: List[VendorMethods.GroqMethods]
114
120
  mistral: List[VendorMethods.MistralMethods]
121
+ aws_bedrock: List[VendorMethods.AwsBedrockMethods]
115
122
  pinecone: List[VendorMethods.PineconeMethods]
116
123
  llamaindex: List[VendorMethods.LlamaIndexMethods]
117
124
  chromadb: List[VendorMethods.ChromadbMethods]
@@ -1 +1 @@
1
- __version__ = "3.1.4"
1
+ __version__ = "3.2.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: langtrace-python-sdk
3
- Version: 3.1.4
3
+ Version: 3.2.0
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>
@@ -21,11 +21,12 @@ Requires-Dist: opentelemetry-sdk>=1.25.0
21
21
  Requires-Dist: sentry-sdk>=2.14.0
22
22
  Requires-Dist: sqlalchemy
23
23
  Requires-Dist: tiktoken>=0.1.1
24
- Requires-Dist: trace-attributes==7.0.4
24
+ Requires-Dist: trace-attributes==7.1.0
25
25
  Requires-Dist: transformers>=4.11.3
26
26
  Requires-Dist: ujson>=5.10.0
27
27
  Provides-Extra: dev
28
28
  Requires-Dist: anthropic; extra == 'dev'
29
+ Requires-Dist: boto3; extra == 'dev'
29
30
  Requires-Dist: chromadb; extra == 'dev'
30
31
  Requires-Dist: cohere; extra == 'dev'
31
32
  Requires-Dist: embedchain; extra == 'dev'
@@ -3,6 +3,8 @@ examples/anthropic_example/__init__.py,sha256=03us1YuvAJR6fqXX8NH2kROBfTmyz7KzFV
3
3
  examples/anthropic_example/completion.py,sha256=3_YEZrt0BLVNJT_RbLXg6JGP2bweuc_HPC2MWR73tOM,713
4
4
  examples/autogen_example/__init__.py,sha256=UJgpzL2yOmzir-DAiGFR1PB1Zz3YcQvYcq5bCN8nl0A,158
5
5
  examples/autogen_example/main.py,sha256=6OJ73VCdHgVrqnekF1S1nK8mXCUABLbUUkQtr7wOCdw,2312
6
+ examples/awsbedrock_examples/__init__.py,sha256=MMaW1756Hqv8rRX6do_O_-SIfauLzoYxRgBemR9KL6g,263
7
+ examples/awsbedrock_examples/converse.py,sha256=vra4yfXYynWyFenoO8wdUnksPx_o481BQlpuWkddLZY,1024
6
8
  examples/azureopenai_example/__init__.py,sha256=PaZM90r6VN4eSOXxb6wGsyhf9-RJCNqBypzk1Xa2GJI,271
7
9
  examples/azureopenai_example/completion.py,sha256=K_GeU0TfJ9lLDfW5VI0Lmm8_I0JXf1x9Qi83ImJ350c,668
8
10
  examples/chroma_example/__init__.py,sha256=Mrf8KptW1hhzu6WDdRRTxbaB-0kM7x5u-Goc_zR7G5c,203
@@ -98,15 +100,16 @@ examples/vertexai_example/main.py,sha256=gndId5X5ksD-ycxnAWMdEqIDbLc3kz5Vt8vm4YP
98
100
  examples/weaviate_example/__init__.py,sha256=8JMDBsRSEV10HfTd-YC7xb4txBjD3la56snk-Bbg2Kw,618
99
101
  examples/weaviate_example/query_text.py,sha256=wPHQTc_58kPoKTZMygVjTj-2ZcdrIuaausJfMxNQnQc,127162
100
102
  langtrace_python_sdk/__init__.py,sha256=VZM6i71NR7pBQK6XvJWRelknuTYUhqwqE7PlicKa5Wg,1166
101
- langtrace_python_sdk/langtrace.py,sha256=dSOJtEGCq-D4EGWoBfLOF6xGy1IBYk5EG7zatq_h0-Y,12344
102
- langtrace_python_sdk/version.py,sha256=2uixSkocUHf2KiY1oTfzz_5AQGmlrHnypVxGgr4mV9c,22
103
+ langtrace_python_sdk/langtrace.py,sha256=tqdGqEeVoAq0QhzY0l_BWXGwU25hUQkGIoh00gvFi3c,12421
104
+ langtrace_python_sdk/version.py,sha256=OUX37Yd6ZO82d0GJL2dmK0gZTtc_xvlTvGQIl2I-D8k,22
103
105
  langtrace_python_sdk/constants/__init__.py,sha256=3CNYkWMdd1DrkGqzLUgNZXjdAlM6UFMlf_F-odAToyc,146
104
106
  langtrace_python_sdk/constants/exporter/langtrace_exporter.py,sha256=d-3Qn5C_NTy1NkmdavZvy-6vePwTC5curN6QMy2haHc,50
105
107
  langtrace_python_sdk/constants/instrumentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
108
  langtrace_python_sdk/constants/instrumentation/anthropic.py,sha256=YX3llt3zwDY6XrYk3CB8WEVqgrzRXEw_ffyk56JoF3k,126
109
+ langtrace_python_sdk/constants/instrumentation/aws_bedrock.py,sha256=f9eukqoxrPgPeaBJX2gpBUz1uu0dZIPahOpvoudfbH8,310
107
110
  langtrace_python_sdk/constants/instrumentation/chroma.py,sha256=hiPGYdHS0Yj4Kh3eaYBbuCAl_swqIygu80yFqkOgdak,955
108
111
  langtrace_python_sdk/constants/instrumentation/cohere.py,sha256=tf9sDfb5K3qOAHChEE5o8eYWPZ1io58VsOjZDCZPxfw,577
109
- langtrace_python_sdk/constants/instrumentation/common.py,sha256=u1OcvdH8jDly5qG9nK_2ZM8Iaqu2bbUJU0KTYhF638s,1063
112
+ langtrace_python_sdk/constants/instrumentation/common.py,sha256=yOtmk9R_u1G2RP5edodmJ5O4I1ebl7HuHKDzd0XSwPw,1097
110
113
  langtrace_python_sdk/constants/instrumentation/embedchain.py,sha256=HodCJvaFjILoOG50OwFObxfVxt_8VUaIAIqvgoN3tzo,278
111
114
  langtrace_python_sdk/constants/instrumentation/gemini.py,sha256=UAmfgg9FM7uNeOCdPfWlir6OIH-8BoxFGPRpdBd9ZZs,358
112
115
  langtrace_python_sdk/constants/instrumentation/groq.py,sha256=VFXmIl4aqGY_fS0PAmjPj_Qm7Tibxbx7Ur_e7rQpqXc,134
@@ -121,7 +124,7 @@ langtrace_python_sdk/constants/instrumentation/weaviate.py,sha256=gtv-JBxvNGClEM
121
124
  langtrace_python_sdk/extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
125
  langtrace_python_sdk/extensions/langtrace_exporter.py,sha256=UFupNL03zklVd5penpsfXjbWSb5qB39mEv2BY2wczSs,6307
123
126
  langtrace_python_sdk/extensions/langtrace_filesystem.py,sha256=34fZutG28EJ66l67OvTGsydAH3ZpXgikdE7hVLqBpG4,7863
124
- langtrace_python_sdk/instrumentation/__init__.py,sha256=U2uQxrczJzPxZUFaRniN2iEK5ujRk7QadG7iM0sLDEc,1696
127
+ langtrace_python_sdk/instrumentation/__init__.py,sha256=MUMbmAQ7YcnmhtitJT8QLVMqDdDjI4WtloctWf_jvJs,1780
125
128
  langtrace_python_sdk/instrumentation/anthropic/__init__.py,sha256=donrurJAGYlxrSRA3BIf76jGeUcAx9Tq8CVpah68S0Y,101
126
129
  langtrace_python_sdk/instrumentation/anthropic/instrumentation.py,sha256=ndXdruI0BG7n75rsuEpKjfzePxrZxg40gZ39ONmD_v4,1845
127
130
  langtrace_python_sdk/instrumentation/anthropic/patch.py,sha256=ztPN4VZujoxYOKhTbFnup7Ibms9NAzYCPAJY43NUgKw,4935
@@ -129,6 +132,9 @@ langtrace_python_sdk/instrumentation/anthropic/types.py,sha256=WdeXe2tkjAisMLK38
129
132
  langtrace_python_sdk/instrumentation/autogen/__init__.py,sha256=unDhpqWQIdHFw24lRsRu1Mm1NCZxZgyBrPRZrAJL3Lo,90
130
133
  langtrace_python_sdk/instrumentation/autogen/instrumentation.py,sha256=MVDUCBi6XzLQYmZd6myAounI0HeM8QWX5leuul5Hj0Q,1262
131
134
  langtrace_python_sdk/instrumentation/autogen/patch.py,sha256=mp6WxHYVqTXvqZOi6CnZNN0MmzoG5v9LPMU2fjkivsY,4650
135
+ langtrace_python_sdk/instrumentation/aws_bedrock/__init__.py,sha256=IHqPgR1kdDvcoV1nUb-B21PaJ_qbQB0jc011Udi1ioU,96
136
+ langtrace_python_sdk/instrumentation/aws_bedrock/instrumentation.py,sha256=2l-WiyWYUEoGre92rmylq2jPZ5w4jcxTXmCTuQNC1RU,1911
137
+ langtrace_python_sdk/instrumentation/aws_bedrock/patch.py,sha256=VAroMezSGKT2jQ5tggbdiMRIPr9mtLItGJJgZ-xoGls,6296
132
138
  langtrace_python_sdk/instrumentation/chroma/__init__.py,sha256=pNZ5UO8Q-d5VkXSobBf79reB6AmEl_usnnTp5Itv818,95
133
139
  langtrace_python_sdk/instrumentation/chroma/instrumentation.py,sha256=nT6PS6bsrIOO9kLV5GuUeRjMe6THHHAZGvqWBP1dYog,1807
134
140
  langtrace_python_sdk/instrumentation/chroma/patch.py,sha256=jYcqBeu-0cYA29PO880oXYRwYh-R1oseXmzfK6UDBps,9074
@@ -191,7 +197,7 @@ langtrace_python_sdk/instrumentation/vertexai/patch.py,sha256=mLMmmmovYBaDXgnSSJ
191
197
  langtrace_python_sdk/instrumentation/weaviate/__init__.py,sha256=Mc-Je6evPo-kKQzerTG7bd1XO5JOh4YGTE3wBxaUBwg,99
192
198
  langtrace_python_sdk/instrumentation/weaviate/instrumentation.py,sha256=Kwq5QQTUQNRHrWrMnNe9X0TcqtXGiNpBidsuToRTqG0,2417
193
199
  langtrace_python_sdk/instrumentation/weaviate/patch.py,sha256=aWLDbNGz35V6XQUv4lkMD0O689suqh6KdTa33VDtUkE,6905
194
- langtrace_python_sdk/types/__init__.py,sha256=F3zef0ovPIr9hxmF8XK9tW3DKmq6eFrj3bZo3HCbNqA,4484
200
+ langtrace_python_sdk/types/__init__.py,sha256=2VykM6fNHRlkOaIEUCdK3VyaaVgk2rTIr9jMmCVj2Ag,4676
195
201
  langtrace_python_sdk/utils/__init__.py,sha256=O-Ra9IDd1MnxihdQUC8HW_wYFhk7KbTCK2BIl02yacQ,2935
196
202
  langtrace_python_sdk/utils/langtrace_sampler.py,sha256=BupNndHbU9IL_wGleKetz8FdcveqHMBVz1bfKTTW80w,1753
197
203
  langtrace_python_sdk/utils/llm.py,sha256=mA7nEpndjKwPY3LfYV8hv-83xrDlD8MSTW8mItp5tXI,14953
@@ -243,8 +249,8 @@ tests/pinecone/cassettes/test_query.yaml,sha256=b5v9G3ssUy00oG63PlFUR3JErF2Js-5A
243
249
  tests/pinecone/cassettes/test_upsert.yaml,sha256=neWmQ1v3d03V8WoLl8FoFeeCYImb8pxlJBWnFd_lITU,38607
244
250
  tests/qdrant/conftest.py,sha256=9n0uHxxIjWk9fbYc4bx-uP8lSAgLBVx-cV9UjnsyCHM,381
245
251
  tests/qdrant/test_qdrant.py,sha256=pzjAjVY2kmsmGfrI2Gs2xrolfuaNHz7l1fqGQCjp5_o,3353
246
- langtrace_python_sdk-3.1.4.dist-info/METADATA,sha256=0h7-Uf5JP-OMUvLeS883Nn_H1MYjq1j4r841sCqvdvs,15868
247
- langtrace_python_sdk-3.1.4.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
248
- langtrace_python_sdk-3.1.4.dist-info/entry_points.txt,sha256=1_b9-qvf2fE7uQNZcbUei9vLpFZBbbh9LrtGw95ssAo,70
249
- langtrace_python_sdk-3.1.4.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
250
- langtrace_python_sdk-3.1.4.dist-info/RECORD,,
252
+ langtrace_python_sdk-3.2.0.dist-info/METADATA,sha256=_I75AdE1KxO_pccerUpV0G1A2gpAN2hv85Sc_m0VfNg,15905
253
+ langtrace_python_sdk-3.2.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
254
+ langtrace_python_sdk-3.2.0.dist-info/entry_points.txt,sha256=1_b9-qvf2fE7uQNZcbUei9vLpFZBbbh9LrtGw95ssAo,70
255
+ langtrace_python_sdk-3.2.0.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
256
+ langtrace_python_sdk-3.2.0.dist-info/RECORD,,