langtrace-python-sdk 3.3.0__py3-none-any.whl → 3.3.1__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.
- examples/cerebras_example/__init__.py +11 -0
- examples/cerebras_example/main.py +195 -0
- langtrace_python_sdk/constants/instrumentation/common.py +1 -0
- langtrace_python_sdk/instrumentation/__init__.py +2 -0
- langtrace_python_sdk/instrumentation/cerebras/__init__.py +3 -0
- langtrace_python_sdk/instrumentation/cerebras/instrumentation.py +54 -0
- langtrace_python_sdk/instrumentation/cerebras/patch.py +138 -0
- langtrace_python_sdk/langtrace.py +2 -0
- langtrace_python_sdk/utils/__init__.py +12 -0
- langtrace_python_sdk/version.py +1 -1
- {langtrace_python_sdk-3.3.0.dist-info → langtrace_python_sdk-3.3.1.dist-info}/METADATA +1 -1
- {langtrace_python_sdk-3.3.0.dist-info → langtrace_python_sdk-3.3.1.dist-info}/RECORD +15 -10
- {langtrace_python_sdk-3.3.0.dist-info → langtrace_python_sdk-3.3.1.dist-info}/WHEEL +0 -0
- {langtrace_python_sdk-3.3.0.dist-info → langtrace_python_sdk-3.3.1.dist-info}/entry_points.txt +0 -0
- {langtrace_python_sdk-3.3.0.dist-info → langtrace_python_sdk-3.3.1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,195 @@
|
|
1
|
+
from langtrace_python_sdk import langtrace
|
2
|
+
from cerebras.cloud.sdk import Cerebras
|
3
|
+
from dotenv import load_dotenv
|
4
|
+
import re
|
5
|
+
import json
|
6
|
+
from openai import OpenAI
|
7
|
+
import os
|
8
|
+
|
9
|
+
load_dotenv()
|
10
|
+
|
11
|
+
langtrace.init()
|
12
|
+
openai_client = OpenAI(
|
13
|
+
base_url="https://api.cerebras.ai/v1",
|
14
|
+
api_key=os.getenv("CEREBRAS_API_KEY"),
|
15
|
+
)
|
16
|
+
client = Cerebras()
|
17
|
+
|
18
|
+
|
19
|
+
def openai_cerebras_example(stream=False):
|
20
|
+
completion = openai_client.chat.completions.create(
|
21
|
+
messages=[
|
22
|
+
{
|
23
|
+
"role": "user",
|
24
|
+
"content": "Why is fast inference important?",
|
25
|
+
}
|
26
|
+
],
|
27
|
+
model="llama3.1-8b",
|
28
|
+
stream=stream,
|
29
|
+
)
|
30
|
+
|
31
|
+
if stream:
|
32
|
+
for chunk in completion:
|
33
|
+
print(chunk)
|
34
|
+
else:
|
35
|
+
return completion
|
36
|
+
|
37
|
+
|
38
|
+
def completion_example(stream=False):
|
39
|
+
completion = client.chat.completions.create(
|
40
|
+
messages=[
|
41
|
+
{
|
42
|
+
"role": "user",
|
43
|
+
"content": "Why is fast inference important?",
|
44
|
+
}
|
45
|
+
],
|
46
|
+
model="llama3.1-8b",
|
47
|
+
stream=stream,
|
48
|
+
)
|
49
|
+
|
50
|
+
if stream:
|
51
|
+
for chunk in completion:
|
52
|
+
print(chunk)
|
53
|
+
else:
|
54
|
+
return completion
|
55
|
+
|
56
|
+
|
57
|
+
def completion_with_tools_example(stream=False):
|
58
|
+
messages = [
|
59
|
+
{
|
60
|
+
"role": "system",
|
61
|
+
"content": "You are a helpful assistant with access to a calculator. Use the calculator tool to compute mathematical expressions when needed.",
|
62
|
+
},
|
63
|
+
{"role": "user", "content": "What's the result of 15 multiplied by 7?"},
|
64
|
+
]
|
65
|
+
|
66
|
+
response = client.chat.completions.create(
|
67
|
+
model="llama3.1-8b",
|
68
|
+
messages=messages,
|
69
|
+
tools=tools,
|
70
|
+
stream=stream,
|
71
|
+
)
|
72
|
+
|
73
|
+
if stream:
|
74
|
+
# Handle streaming response
|
75
|
+
full_content = ""
|
76
|
+
for chunk in response:
|
77
|
+
if chunk.choices[0].delta.tool_calls:
|
78
|
+
tool_call = chunk.choices[0].delta.tool_calls[0]
|
79
|
+
if hasattr(tool_call, "function"):
|
80
|
+
if tool_call.function.name == "calculate":
|
81
|
+
arguments = json.loads(tool_call.function.arguments)
|
82
|
+
result = calculate(arguments["expression"])
|
83
|
+
print(f"Calculation result: {result}")
|
84
|
+
|
85
|
+
# Get final response with calculation result
|
86
|
+
messages.append(
|
87
|
+
{
|
88
|
+
"role": "assistant",
|
89
|
+
"content": None,
|
90
|
+
"tool_calls": [
|
91
|
+
{
|
92
|
+
"function": {
|
93
|
+
"name": "calculate",
|
94
|
+
"arguments": tool_call.function.arguments,
|
95
|
+
},
|
96
|
+
"id": tool_call.id,
|
97
|
+
"type": "function",
|
98
|
+
}
|
99
|
+
],
|
100
|
+
}
|
101
|
+
)
|
102
|
+
messages.append(
|
103
|
+
{
|
104
|
+
"role": "tool",
|
105
|
+
"content": str(result),
|
106
|
+
"tool_call_id": tool_call.id,
|
107
|
+
}
|
108
|
+
)
|
109
|
+
|
110
|
+
final_response = client.chat.completions.create(
|
111
|
+
model="llama3.1-70b", messages=messages, stream=True
|
112
|
+
)
|
113
|
+
|
114
|
+
for final_chunk in final_response:
|
115
|
+
if final_chunk.choices[0].delta.content:
|
116
|
+
print(final_chunk.choices[0].delta.content, end="")
|
117
|
+
elif chunk.choices[0].delta.content:
|
118
|
+
print(chunk.choices[0].delta.content, end="")
|
119
|
+
full_content += chunk.choices[0].delta.content
|
120
|
+
else:
|
121
|
+
# Handle non-streaming response
|
122
|
+
choice = response.choices[0].message
|
123
|
+
if choice.tool_calls:
|
124
|
+
function_call = choice.tool_calls[0].function
|
125
|
+
if function_call.name == "calculate":
|
126
|
+
arguments = json.loads(function_call.arguments)
|
127
|
+
result = calculate(arguments["expression"])
|
128
|
+
print(f"Calculation result: {result}")
|
129
|
+
|
130
|
+
messages.append(
|
131
|
+
{
|
132
|
+
"role": "assistant",
|
133
|
+
"content": None,
|
134
|
+
"tool_calls": [
|
135
|
+
{
|
136
|
+
"function": {
|
137
|
+
"name": "calculate",
|
138
|
+
"arguments": function_call.arguments,
|
139
|
+
},
|
140
|
+
"id": choice.tool_calls[0].id,
|
141
|
+
"type": "function",
|
142
|
+
}
|
143
|
+
],
|
144
|
+
}
|
145
|
+
)
|
146
|
+
messages.append(
|
147
|
+
{
|
148
|
+
"role": "tool",
|
149
|
+
"content": str(result),
|
150
|
+
"tool_call_id": choice.tool_calls[0].id,
|
151
|
+
}
|
152
|
+
)
|
153
|
+
|
154
|
+
final_response = client.chat.completions.create(
|
155
|
+
model="llama3.1-70b",
|
156
|
+
messages=messages,
|
157
|
+
)
|
158
|
+
|
159
|
+
if final_response:
|
160
|
+
print(final_response.choices[0].message.content)
|
161
|
+
else:
|
162
|
+
print("No final response received")
|
163
|
+
else:
|
164
|
+
print("Unexpected response from the model")
|
165
|
+
|
166
|
+
|
167
|
+
def calculate(expression):
|
168
|
+
expression = re.sub(r"[^0-9+\-*/().]", "", expression)
|
169
|
+
|
170
|
+
try:
|
171
|
+
result = eval(expression)
|
172
|
+
return str(result)
|
173
|
+
except (SyntaxError, ZeroDivisionError, NameError, TypeError, OverflowError):
|
174
|
+
return "Error: Invalid expression"
|
175
|
+
|
176
|
+
|
177
|
+
tools = [
|
178
|
+
{
|
179
|
+
"type": "function",
|
180
|
+
"function": {
|
181
|
+
"name": "calculate",
|
182
|
+
"description": "A calculator tool that can perform basic arithmetic operations. Use this when you need to compute mathematical expressions or solve numerical problems.",
|
183
|
+
"parameters": {
|
184
|
+
"type": "object",
|
185
|
+
"properties": {
|
186
|
+
"expression": {
|
187
|
+
"type": "string",
|
188
|
+
"description": "The mathematical expression to evaluate",
|
189
|
+
}
|
190
|
+
},
|
191
|
+
"required": ["expression"],
|
192
|
+
},
|
193
|
+
},
|
194
|
+
}
|
195
|
+
]
|
@@ -21,6 +21,7 @@ from .mistral import MistralInstrumentation
|
|
21
21
|
from .aws_bedrock import AWSBedrockInstrumentation
|
22
22
|
from .embedchain import EmbedchainInstrumentation
|
23
23
|
from .litellm import LiteLLMInstrumentation
|
24
|
+
from .cerebras import CerebrasInstrumentation
|
24
25
|
|
25
26
|
__all__ = [
|
26
27
|
"AnthropicInstrumentation",
|
@@ -46,4 +47,5 @@ __all__ = [
|
|
46
47
|
"GeminiInstrumentation",
|
47
48
|
"MistralInstrumentation",
|
48
49
|
"AWSBedrockInstrumentation",
|
50
|
+
"CerebrasInstrumentation",
|
49
51
|
]
|
@@ -0,0 +1,54 @@
|
|
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
|
+
from typing import Collection
|
18
|
+
from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
|
19
|
+
from opentelemetry.trace import get_tracer
|
20
|
+
from opentelemetry.semconv.schemas import Schemas
|
21
|
+
from wrapt import wrap_function_wrapper
|
22
|
+
from importlib_metadata import version as v
|
23
|
+
from .patch import chat_completions_create, async_chat_completions_create
|
24
|
+
|
25
|
+
|
26
|
+
class CerebrasInstrumentation(BaseInstrumentor):
|
27
|
+
"""
|
28
|
+
The CerebrasInstrumentation class represents the Cerebras instrumentation
|
29
|
+
"""
|
30
|
+
|
31
|
+
def instrumentation_dependencies(self) -> Collection[str]:
|
32
|
+
return ["cerebras-cloud-sdk >= 1.0.0"]
|
33
|
+
|
34
|
+
def _instrument(self, **kwargs):
|
35
|
+
tracer_provider = kwargs.get("tracer_provider")
|
36
|
+
tracer = get_tracer(
|
37
|
+
__name__, "", tracer_provider, schema_url=Schemas.V1_27_0.value
|
38
|
+
)
|
39
|
+
version = v("cerebras-cloud-sdk")
|
40
|
+
|
41
|
+
wrap_function_wrapper(
|
42
|
+
module="cerebras.cloud.sdk",
|
43
|
+
name="resources.chat.completions.CompletionsResource.create",
|
44
|
+
wrapper=chat_completions_create(version, tracer),
|
45
|
+
)
|
46
|
+
|
47
|
+
wrap_function_wrapper(
|
48
|
+
module="cerebras.cloud.sdk",
|
49
|
+
name="resources.chat.completions.AsyncCompletionsResource.create",
|
50
|
+
wrapper=async_chat_completions_create(version, tracer),
|
51
|
+
)
|
52
|
+
|
53
|
+
def _uninstrument(self, **kwargs):
|
54
|
+
pass
|
@@ -0,0 +1,138 @@
|
|
1
|
+
from langtrace_python_sdk.instrumentation.groq.patch import extract_content
|
2
|
+
from opentelemetry.trace import SpanKind
|
3
|
+
from langtrace_python_sdk.utils.llm import (
|
4
|
+
get_llm_request_attributes,
|
5
|
+
get_langtrace_attributes,
|
6
|
+
get_extra_attributes,
|
7
|
+
get_llm_url,
|
8
|
+
is_streaming,
|
9
|
+
set_event_completion,
|
10
|
+
set_span_attributes,
|
11
|
+
StreamWrapper,
|
12
|
+
)
|
13
|
+
from langtrace_python_sdk.utils.silently_fail import silently_fail
|
14
|
+
from langtrace_python_sdk.constants.instrumentation.common import SERVICE_PROVIDERS
|
15
|
+
from langtrace.trace_attributes import SpanAttributes
|
16
|
+
from langtrace_python_sdk.utils import handle_span_error, set_span_attribute
|
17
|
+
|
18
|
+
|
19
|
+
def chat_completions_create(version: str, tracer):
|
20
|
+
def traced_method(wrapped, instance, args, kwargs):
|
21
|
+
llm_prompts = []
|
22
|
+
for message in kwargs.get("messages", []):
|
23
|
+
llm_prompts.append(message)
|
24
|
+
|
25
|
+
span_attributes = {
|
26
|
+
**get_langtrace_attributes(version, SERVICE_PROVIDERS["CEREBRAS"]),
|
27
|
+
**get_llm_request_attributes(kwargs, prompts=llm_prompts),
|
28
|
+
**get_llm_url(instance),
|
29
|
+
**get_extra_attributes(),
|
30
|
+
}
|
31
|
+
|
32
|
+
span_name = f"{span_attributes[SpanAttributes.LLM_OPERATION_NAME]} {span_attributes[SpanAttributes.LLM_REQUEST_MODEL]}"
|
33
|
+
with tracer.start_as_current_span(
|
34
|
+
name=span_name,
|
35
|
+
kind=SpanKind.CLIENT,
|
36
|
+
attributes=span_attributes,
|
37
|
+
end_on_exit=False,
|
38
|
+
) as span:
|
39
|
+
|
40
|
+
try:
|
41
|
+
_set_input_attributes(span, kwargs, span_attributes)
|
42
|
+
result = wrapped(*args, **kwargs)
|
43
|
+
if is_streaming(kwargs):
|
44
|
+
return StreamWrapper(result, span)
|
45
|
+
|
46
|
+
if span.is_recording():
|
47
|
+
_set_response_attributes(span, result)
|
48
|
+
span.end()
|
49
|
+
return result
|
50
|
+
|
51
|
+
except Exception as error:
|
52
|
+
handle_span_error(span, error)
|
53
|
+
raise
|
54
|
+
|
55
|
+
return traced_method
|
56
|
+
|
57
|
+
|
58
|
+
def async_chat_completions_create(version: str, tracer):
|
59
|
+
async def traced_method(wrapped, instance, args, kwargs):
|
60
|
+
llm_prompts = []
|
61
|
+
for message in kwargs.get("messages", []):
|
62
|
+
llm_prompts.append(message)
|
63
|
+
|
64
|
+
span_attributes = {
|
65
|
+
**get_langtrace_attributes(version, SERVICE_PROVIDERS["CEREBRAS"]),
|
66
|
+
**get_llm_request_attributes(kwargs, prompts=llm_prompts),
|
67
|
+
**get_llm_url(instance),
|
68
|
+
**get_extra_attributes(),
|
69
|
+
}
|
70
|
+
|
71
|
+
span_name = f"{span_attributes[SpanAttributes.LLM_OPERATION_NAME]} {span_attributes[SpanAttributes.LLM_REQUEST_MODEL]}"
|
72
|
+
with tracer.start_as_current_span(
|
73
|
+
name=span_name,
|
74
|
+
kind=SpanKind.CLIENT,
|
75
|
+
attributes=span_attributes,
|
76
|
+
end_on_exit=False,
|
77
|
+
) as span:
|
78
|
+
|
79
|
+
try:
|
80
|
+
_set_input_attributes(span, kwargs, span_attributes)
|
81
|
+
result = await wrapped(*args, **kwargs)
|
82
|
+
if is_streaming(kwargs):
|
83
|
+
return StreamWrapper(result, span)
|
84
|
+
|
85
|
+
if span.is_recording():
|
86
|
+
_set_response_attributes(span, result)
|
87
|
+
span.end()
|
88
|
+
return result
|
89
|
+
|
90
|
+
except Exception as error:
|
91
|
+
handle_span_error(span, error)
|
92
|
+
raise
|
93
|
+
|
94
|
+
return traced_method
|
95
|
+
|
96
|
+
|
97
|
+
@silently_fail
|
98
|
+
def _set_response_attributes(span, result):
|
99
|
+
set_span_attribute(span, SpanAttributes.LLM_RESPONSE_MODEL, result.model)
|
100
|
+
|
101
|
+
if getattr(result, "id", None):
|
102
|
+
set_span_attribute(span, SpanAttributes.LLM_RESPONSE_ID, result.id)
|
103
|
+
|
104
|
+
if getattr(result, "choices", None):
|
105
|
+
responses = [
|
106
|
+
{
|
107
|
+
"role": (
|
108
|
+
choice.message.role
|
109
|
+
if choice.message and choice.message.role
|
110
|
+
else "assistant"
|
111
|
+
),
|
112
|
+
"content": extract_content(choice),
|
113
|
+
**(
|
114
|
+
{"content_filter_results": choice.content_filter_results}
|
115
|
+
if hasattr(choice, "content_filter_results")
|
116
|
+
else {}
|
117
|
+
),
|
118
|
+
}
|
119
|
+
for choice in result.choices
|
120
|
+
]
|
121
|
+
set_event_completion(span, responses)
|
122
|
+
# Get the usage
|
123
|
+
if getattr(result, "usage", None):
|
124
|
+
set_span_attribute(
|
125
|
+
span,
|
126
|
+
SpanAttributes.LLM_USAGE_PROMPT_TOKENS,
|
127
|
+
result.usage.prompt_tokens,
|
128
|
+
)
|
129
|
+
set_span_attribute(
|
130
|
+
span,
|
131
|
+
SpanAttributes.LLM_USAGE_COMPLETION_TOKENS,
|
132
|
+
result.usage.completion_tokens,
|
133
|
+
)
|
134
|
+
|
135
|
+
|
136
|
+
@silently_fail
|
137
|
+
def _set_input_attributes(span, kwargs, attributes):
|
138
|
+
set_span_attributes(span, attributes)
|
@@ -64,6 +64,7 @@ from langtrace_python_sdk.instrumentation import (
|
|
64
64
|
AutogenInstrumentation,
|
65
65
|
VertexAIInstrumentation,
|
66
66
|
WeaviateInstrumentation,
|
67
|
+
CerebrasInstrumentation,
|
67
68
|
)
|
68
69
|
from opentelemetry.util.re import parse_env_headers
|
69
70
|
|
@@ -281,6 +282,7 @@ def init(
|
|
281
282
|
"mistralai": MistralInstrumentation(),
|
282
283
|
"boto3": AWSBedrockInstrumentation(),
|
283
284
|
"autogen": AutogenInstrumentation(),
|
285
|
+
"cerebras-cloud-sdk": CerebrasInstrumentation(),
|
284
286
|
}
|
285
287
|
|
286
288
|
init_instrumentations(config.disable_instrumentations, all_instrumentations)
|
@@ -1,6 +1,11 @@
|
|
1
1
|
from langtrace_python_sdk.types import NOT_GIVEN, InstrumentationType
|
2
2
|
from .sdk_version_checker import SDKVersionChecker
|
3
3
|
from opentelemetry.trace import Span
|
4
|
+
from opentelemetry.semconv.attributes import (
|
5
|
+
error_attributes as ErrorAttributes,
|
6
|
+
)
|
7
|
+
from opentelemetry.trace.status import Status, StatusCode
|
8
|
+
|
4
9
|
from langtrace.trace_attributes import SpanAttributes
|
5
10
|
import inspect
|
6
11
|
import os
|
@@ -90,3 +95,10 @@ def is_package_installed(package_name):
|
|
90
95
|
|
91
96
|
installed_packages = {p.key for p in pkg_resources.working_set}
|
92
97
|
return package_name in installed_packages
|
98
|
+
|
99
|
+
|
100
|
+
def handle_span_error(span: Span, error):
|
101
|
+
span.set_status(Status(StatusCode.ERROR, str(error)))
|
102
|
+
if span.is_recording():
|
103
|
+
span.set_attribute(ErrorAttributes.ERROR_TYPE, type(error).__qualname__)
|
104
|
+
span.end()
|
langtrace_python_sdk/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "3.3.
|
1
|
+
__version__ = "3.3.1"
|
@@ -7,6 +7,8 @@ examples/awsbedrock_examples/__init__.py,sha256=MMaW1756Hqv8rRX6do_O_-SIfauLzoYx
|
|
7
7
|
examples/awsbedrock_examples/converse.py,sha256=vra4yfXYynWyFenoO8wdUnksPx_o481BQlpuWkddLZY,1024
|
8
8
|
examples/azureopenai_example/__init__.py,sha256=PaZM90r6VN4eSOXxb6wGsyhf9-RJCNqBypzk1Xa2GJI,271
|
9
9
|
examples/azureopenai_example/completion.py,sha256=K_GeU0TfJ9lLDfW5VI0Lmm8_I0JXf1x9Qi83ImJ350c,668
|
10
|
+
examples/cerebras_example/__init__.py,sha256=ydfNi0DjFMGVcfo79XVG3VEbzIrHo5wYBgSJzl_asNA,295
|
11
|
+
examples/cerebras_example/main.py,sha256=QrzQLTEr0dkrrPrlOPqwXkeeGU4dwc8tPR4LhHPOQ3k,6573
|
10
12
|
examples/chroma_example/__init__.py,sha256=Mrf8KptW1hhzu6WDdRRTxbaB-0kM7x5u-Goc_zR7G5c,203
|
11
13
|
examples/chroma_example/basic.py,sha256=oO7-__8HptnFXLVKbnPgoz02yM-CAPi721xsbUb_gYg,868
|
12
14
|
examples/cohere_example/__init__.py,sha256=oYpsnS-dKOlWLkPEUWhXxi1vfxa77bt_DOdkJHg__7g,502
|
@@ -100,8 +102,8 @@ examples/vertexai_example/main.py,sha256=gndId5X5ksD-ycxnAWMdEqIDbLc3kz5Vt8vm4YP
|
|
100
102
|
examples/weaviate_example/__init__.py,sha256=8JMDBsRSEV10HfTd-YC7xb4txBjD3la56snk-Bbg2Kw,618
|
101
103
|
examples/weaviate_example/query_text.py,sha256=wPHQTc_58kPoKTZMygVjTj-2ZcdrIuaausJfMxNQnQc,127162
|
102
104
|
langtrace_python_sdk/__init__.py,sha256=VZM6i71NR7pBQK6XvJWRelknuTYUhqwqE7PlicKa5Wg,1166
|
103
|
-
langtrace_python_sdk/langtrace.py,sha256=
|
104
|
-
langtrace_python_sdk/version.py,sha256=
|
105
|
+
langtrace_python_sdk/langtrace.py,sha256=IBl7tapb5Mig5362WdIoZUmYWE-ZuqFe2Bk4IJxk-Xs,12488
|
106
|
+
langtrace_python_sdk/version.py,sha256=XErusAMGUPwBUpdA6BLyq8CjU-6n6gLlBRymgSC8Y-0,22
|
105
107
|
langtrace_python_sdk/constants/__init__.py,sha256=3CNYkWMdd1DrkGqzLUgNZXjdAlM6UFMlf_F-odAToyc,146
|
106
108
|
langtrace_python_sdk/constants/exporter/langtrace_exporter.py,sha256=d-3Qn5C_NTy1NkmdavZvy-6vePwTC5curN6QMy2haHc,50
|
107
109
|
langtrace_python_sdk/constants/instrumentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -109,7 +111,7 @@ langtrace_python_sdk/constants/instrumentation/anthropic.py,sha256=YX3llt3zwDY6X
|
|
109
111
|
langtrace_python_sdk/constants/instrumentation/aws_bedrock.py,sha256=f9eukqoxrPgPeaBJX2gpBUz1uu0dZIPahOpvoudfbH8,310
|
110
112
|
langtrace_python_sdk/constants/instrumentation/chroma.py,sha256=hiPGYdHS0Yj4Kh3eaYBbuCAl_swqIygu80yFqkOgdak,955
|
111
113
|
langtrace_python_sdk/constants/instrumentation/cohere.py,sha256=tf9sDfb5K3qOAHChEE5o8eYWPZ1io58VsOjZDCZPxfw,577
|
112
|
-
langtrace_python_sdk/constants/instrumentation/common.py,sha256=
|
114
|
+
langtrace_python_sdk/constants/instrumentation/common.py,sha256=gs7xupRbUW_4UjXFnmqiLGRktA8lllXHRcOLeQFKek4,1125
|
113
115
|
langtrace_python_sdk/constants/instrumentation/embedchain.py,sha256=HodCJvaFjILoOG50OwFObxfVxt_8VUaIAIqvgoN3tzo,278
|
114
116
|
langtrace_python_sdk/constants/instrumentation/gemini.py,sha256=UAmfgg9FM7uNeOCdPfWlir6OIH-8BoxFGPRpdBd9ZZs,358
|
115
117
|
langtrace_python_sdk/constants/instrumentation/groq.py,sha256=VFXmIl4aqGY_fS0PAmjPj_Qm7Tibxbx7Ur_e7rQpqXc,134
|
@@ -124,7 +126,7 @@ langtrace_python_sdk/constants/instrumentation/weaviate.py,sha256=gtv-JBxvNGClEM
|
|
124
126
|
langtrace_python_sdk/extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
125
127
|
langtrace_python_sdk/extensions/langtrace_exporter.py,sha256=UFupNL03zklVd5penpsfXjbWSb5qB39mEv2BY2wczSs,6307
|
126
128
|
langtrace_python_sdk/extensions/langtrace_filesystem.py,sha256=34fZutG28EJ66l67OvTGsydAH3ZpXgikdE7hVLqBpG4,7863
|
127
|
-
langtrace_python_sdk/instrumentation/__init__.py,sha256=
|
129
|
+
langtrace_python_sdk/instrumentation/__init__.py,sha256=0wSimp9RM2Z8OpGW-h-ftDCWjXDcer0UAWg-BYXyZ0s,1857
|
128
130
|
langtrace_python_sdk/instrumentation/anthropic/__init__.py,sha256=donrurJAGYlxrSRA3BIf76jGeUcAx9Tq8CVpah68S0Y,101
|
129
131
|
langtrace_python_sdk/instrumentation/anthropic/instrumentation.py,sha256=ndXdruI0BG7n75rsuEpKjfzePxrZxg40gZ39ONmD_v4,1845
|
130
132
|
langtrace_python_sdk/instrumentation/anthropic/patch.py,sha256=ztPN4VZujoxYOKhTbFnup7Ibms9NAzYCPAJY43NUgKw,4935
|
@@ -135,6 +137,9 @@ langtrace_python_sdk/instrumentation/autogen/patch.py,sha256=mp6WxHYVqTXvqZOi6Cn
|
|
135
137
|
langtrace_python_sdk/instrumentation/aws_bedrock/__init__.py,sha256=IHqPgR1kdDvcoV1nUb-B21PaJ_qbQB0jc011Udi1ioU,96
|
136
138
|
langtrace_python_sdk/instrumentation/aws_bedrock/instrumentation.py,sha256=2l-WiyWYUEoGre92rmylq2jPZ5w4jcxTXmCTuQNC1RU,1911
|
137
139
|
langtrace_python_sdk/instrumentation/aws_bedrock/patch.py,sha256=VAroMezSGKT2jQ5tggbdiMRIPr9mtLItGJJgZ-xoGls,6296
|
140
|
+
langtrace_python_sdk/instrumentation/cerebras/__init__.py,sha256=9rHNg7PWcZ7a9jExQZlqwWPkvLGcPT-DGWot0_6Bx9k,92
|
141
|
+
langtrace_python_sdk/instrumentation/cerebras/instrumentation.py,sha256=WPsaYxHanYnoxGjDk7fILGJSnSRUs_zoQ30JCyPBMII,1927
|
142
|
+
langtrace_python_sdk/instrumentation/cerebras/patch.py,sha256=HR4slOrE3pMp0ABafnlYeTK61G-EnGhOgq3pd9A_G88,4697
|
138
143
|
langtrace_python_sdk/instrumentation/chroma/__init__.py,sha256=pNZ5UO8Q-d5VkXSobBf79reB6AmEl_usnnTp5Itv818,95
|
139
144
|
langtrace_python_sdk/instrumentation/chroma/instrumentation.py,sha256=nT6PS6bsrIOO9kLV5GuUeRjMe6THHHAZGvqWBP1dYog,1807
|
140
145
|
langtrace_python_sdk/instrumentation/chroma/patch.py,sha256=jYcqBeu-0cYA29PO880oXYRwYh-R1oseXmzfK6UDBps,9074
|
@@ -198,7 +203,7 @@ langtrace_python_sdk/instrumentation/weaviate/__init__.py,sha256=Mc-Je6evPo-kKQz
|
|
198
203
|
langtrace_python_sdk/instrumentation/weaviate/instrumentation.py,sha256=Kwq5QQTUQNRHrWrMnNe9X0TcqtXGiNpBidsuToRTqG0,2417
|
199
204
|
langtrace_python_sdk/instrumentation/weaviate/patch.py,sha256=aWLDbNGz35V6XQUv4lkMD0O689suqh6KdTa33VDtUkE,6905
|
200
205
|
langtrace_python_sdk/types/__init__.py,sha256=2VykM6fNHRlkOaIEUCdK3VyaaVgk2rTIr9jMmCVj2Ag,4676
|
201
|
-
langtrace_python_sdk/utils/__init__.py,sha256=
|
206
|
+
langtrace_python_sdk/utils/__init__.py,sha256=VVDOG-QLd59ZvSHp0avjof0sbxlZ1QQOf0KoOF7ofhQ,3310
|
202
207
|
langtrace_python_sdk/utils/langtrace_sampler.py,sha256=BupNndHbU9IL_wGleKetz8FdcveqHMBVz1bfKTTW80w,1753
|
203
208
|
langtrace_python_sdk/utils/llm.py,sha256=mA7nEpndjKwPY3LfYV8hv-83xrDlD8MSTW8mItp5tXI,14953
|
204
209
|
langtrace_python_sdk/utils/misc.py,sha256=LaQr5LOmZMiuwVdjYh7aIu6o2C_Xb1wgpQGNOVmRzfE,1918
|
@@ -249,8 +254,8 @@ tests/pinecone/cassettes/test_query.yaml,sha256=b5v9G3ssUy00oG63PlFUR3JErF2Js-5A
|
|
249
254
|
tests/pinecone/cassettes/test_upsert.yaml,sha256=neWmQ1v3d03V8WoLl8FoFeeCYImb8pxlJBWnFd_lITU,38607
|
250
255
|
tests/qdrant/conftest.py,sha256=9n0uHxxIjWk9fbYc4bx-uP8lSAgLBVx-cV9UjnsyCHM,381
|
251
256
|
tests/qdrant/test_qdrant.py,sha256=pzjAjVY2kmsmGfrI2Gs2xrolfuaNHz7l1fqGQCjp5_o,3353
|
252
|
-
langtrace_python_sdk-3.3.
|
253
|
-
langtrace_python_sdk-3.3.
|
254
|
-
langtrace_python_sdk-3.3.
|
255
|
-
langtrace_python_sdk-3.3.
|
256
|
-
langtrace_python_sdk-3.3.
|
257
|
+
langtrace_python_sdk-3.3.1.dist-info/METADATA,sha256=S13-jNowYfopmvPCqaqKnazad-r6iOp_DNop-VrgAps,15996
|
258
|
+
langtrace_python_sdk-3.3.1.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
259
|
+
langtrace_python_sdk-3.3.1.dist-info/entry_points.txt,sha256=1_b9-qvf2fE7uQNZcbUei9vLpFZBbbh9LrtGw95ssAo,70
|
260
|
+
langtrace_python_sdk-3.3.1.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
261
|
+
langtrace_python_sdk-3.3.1.dist-info/RECORD,,
|
File without changes
|
{langtrace_python_sdk-3.3.0.dist-info → langtrace_python_sdk-3.3.1.dist-info}/entry_points.txt
RENAMED
File without changes
|
{langtrace_python_sdk-3.3.0.dist-info → langtrace_python_sdk-3.3.1.dist-info}/licenses/LICENSE
RENAMED
File without changes
|