lmnr 0.7.0__py3-none-any.whl → 0.7.2__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.
- lmnr/opentelemetry_lib/decorators/__init__.py +43 -4
- lmnr/opentelemetry_lib/litellm/__init__.py +5 -2
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/__init__.py +85 -6
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/span_utils.py +57 -14
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/streaming.py +106 -6
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/__init__.py +8 -3
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/__init__.py +6 -0
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/chat_wrappers.py +139 -10
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/completion_wrappers.py +8 -3
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/embeddings_wrappers.py +6 -2
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/assistant_wrappers.py +6 -3
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/event_handler_wrapper.py +4 -1
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/responses_wrappers.py +14 -5
- lmnr/opentelemetry_lib/tracing/context.py +18 -1
- lmnr/sdk/browser/pw_utils.py +43 -122
- lmnr/sdk/browser/recorder/record.umd.min.cjs +84 -0
- lmnr/sdk/laminar.py +51 -26
- lmnr/sdk/types.py +17 -5
- lmnr/version.py +1 -1
- {lmnr-0.7.0.dist-info → lmnr-0.7.2.dist-info}/METADATA +48 -51
- {lmnr-0.7.0.dist-info → lmnr-0.7.2.dist-info}/RECORD +23 -23
- lmnr/sdk/browser/rrweb/rrweb.umd.min.cjs +0 -98
- {lmnr-0.7.0.dist-info → lmnr-0.7.2.dist-info}/WHEEL +0 -0
- {lmnr-0.7.0.dist-info → lmnr-0.7.2.dist-info}/entry_points.txt +0 -0
lmnr/sdk/laminar.py
CHANGED
@@ -3,6 +3,12 @@ from contextvars import Context
|
|
3
3
|
import warnings
|
4
4
|
from lmnr.opentelemetry_lib import TracerManager
|
5
5
|
from lmnr.opentelemetry_lib.tracing import TracerWrapper, get_current_context
|
6
|
+
from lmnr.opentelemetry_lib.tracing.context import (
|
7
|
+
CONTEXT_SESSION_ID_KEY,
|
8
|
+
CONTEXT_USER_ID_KEY,
|
9
|
+
attach_context,
|
10
|
+
get_event_attributes_from_context,
|
11
|
+
)
|
6
12
|
from lmnr.opentelemetry_lib.tracing.instruments import Instruments
|
7
13
|
from lmnr.opentelemetry_lib.tracing.tracer import get_tracer_with_context
|
8
14
|
from lmnr.opentelemetry_lib.tracing.attributes import (
|
@@ -14,7 +20,7 @@ from lmnr.opentelemetry_lib.tracing.attributes import (
|
|
14
20
|
from lmnr.opentelemetry_lib import MAX_MANUAL_SPAN_PAYLOAD_SIZE
|
15
21
|
from lmnr.opentelemetry_lib.decorators import json_dumps
|
16
22
|
from opentelemetry import trace
|
17
|
-
from opentelemetry
|
23
|
+
from opentelemetry import context as context_api
|
18
24
|
from opentelemetry.trace import INVALID_TRACE_ID, Span, Status, StatusCode, use_span
|
19
25
|
from opentelemetry.sdk.trace.id_generator import RandomIdGenerator
|
20
26
|
from opentelemetry.util.types import AttributeValue
|
@@ -196,18 +202,18 @@ class Laminar:
|
|
196
202
|
def event(
|
197
203
|
cls,
|
198
204
|
name: str,
|
199
|
-
|
205
|
+
attributes: dict[str, AttributeValue] | None = None,
|
200
206
|
timestamp: datetime.datetime | int | None = None,
|
207
|
+
*,
|
208
|
+
user_id: str | None = None,
|
209
|
+
session_id: str | None = None,
|
201
210
|
):
|
202
|
-
"""Associate an event with the current span.
|
203
|
-
|
204
|
-
`value` will be saved as a `lmnr.event.value` attribute.
|
211
|
+
"""Associate an event with the current span. This is a wrapper around
|
212
|
+
`span.add_event()` that adds the event to the current span.
|
205
213
|
|
206
214
|
Args:
|
207
215
|
name (str): event name
|
208
|
-
|
209
|
-
primitive type. Boolean `True` is assumed in the backend if\
|
210
|
-
`value` is None.
|
216
|
+
attributes (dict[str, AttributeValue] | None, optional): event attributes.
|
211
217
|
Defaults to None.
|
212
218
|
timestamp (datetime.datetime | int | None, optional): If int, must\
|
213
219
|
be epoch nanoseconds. If not specified, relies on the underlying\
|
@@ -219,22 +225,26 @@ class Laminar:
|
|
219
225
|
if timestamp and isinstance(timestamp, datetime.datetime):
|
220
226
|
timestamp = int(timestamp.timestamp() * 1e9)
|
221
227
|
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
228
|
+
extra_attributes = get_event_attributes_from_context()
|
229
|
+
|
230
|
+
# override the user_id and session_id from the context with the ones
|
231
|
+
# passed as arguments
|
232
|
+
if user_id is not None:
|
233
|
+
extra_attributes["lmnr.event.user_id"] = user_id
|
234
|
+
if session_id is not None:
|
235
|
+
extra_attributes["lmnr.event.session_id"] = session_id
|
227
236
|
|
228
237
|
current_span = trace.get_current_span(context=get_current_context())
|
229
238
|
if current_span == trace.INVALID_SPAN:
|
230
|
-
cls.
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
)
|
239
|
+
with cls.start_as_current_span(name) as span:
|
240
|
+
span.add_event(
|
241
|
+
name, {**(attributes or {}), **extra_attributes}, timestamp
|
242
|
+
)
|
235
243
|
return
|
236
244
|
|
237
|
-
current_span.add_event(
|
245
|
+
current_span.add_event(
|
246
|
+
name, {**(attributes or {}), **extra_attributes}, timestamp
|
247
|
+
)
|
238
248
|
|
239
249
|
@classmethod
|
240
250
|
@contextmanager
|
@@ -306,7 +316,7 @@ class Laminar:
|
|
306
316
|
ctx = trace.set_span_in_context(
|
307
317
|
trace.NonRecordingSpan(span_context), ctx
|
308
318
|
)
|
309
|
-
ctx_token = attach(ctx)
|
319
|
+
ctx_token = context_api.attach(ctx)
|
310
320
|
label_props = {}
|
311
321
|
try:
|
312
322
|
if labels:
|
@@ -355,9 +365,8 @@ class Laminar:
|
|
355
365
|
yield span
|
356
366
|
|
357
367
|
wrapper.pop_span_context()
|
358
|
-
# TODO: Figure out if this is necessary
|
359
368
|
try:
|
360
|
-
detach(ctx_token)
|
369
|
+
context_api.detach(ctx_token)
|
361
370
|
except Exception:
|
362
371
|
pass
|
363
372
|
|
@@ -528,10 +537,16 @@ class Laminar:
|
|
528
537
|
wrapper = TracerWrapper()
|
529
538
|
|
530
539
|
try:
|
531
|
-
wrapper.push_span_context(span)
|
540
|
+
context = wrapper.push_span_context(span)
|
541
|
+
# Some auto-instrumentations are not under our control, so they
|
542
|
+
# don't have access to our isolated context. We attach the context
|
543
|
+
# to the OTEL global context, so that spans know their parent
|
544
|
+
# span and trace_id.
|
545
|
+
context_token = context_api.attach(context)
|
532
546
|
try:
|
533
547
|
yield span
|
534
548
|
finally:
|
549
|
+
context_api.detach(context_token)
|
535
550
|
wrapper.pop_span_context()
|
536
551
|
|
537
552
|
# Record only exceptions that inherit Exception class but not BaseException, because
|
@@ -541,7 +556,9 @@ class Laminar:
|
|
541
556
|
if isinstance(span, Span) and span.is_recording():
|
542
557
|
# Record the exception as an event
|
543
558
|
if record_exception:
|
544
|
-
span.record_exception(
|
559
|
+
span.record_exception(
|
560
|
+
exc, attributes=get_event_attributes_from_context()
|
561
|
+
)
|
545
562
|
|
546
563
|
# Set status in case exception was raised
|
547
564
|
if set_status_on_exception:
|
@@ -737,7 +754,11 @@ class Laminar:
|
|
737
754
|
if not cls.is_initialized():
|
738
755
|
return
|
739
756
|
|
740
|
-
|
757
|
+
context = get_current_context()
|
758
|
+
context = context_api.set_value(CONTEXT_SESSION_ID_KEY, session_id, context)
|
759
|
+
attach_context(context)
|
760
|
+
|
761
|
+
span = trace.get_current_span(context=context)
|
741
762
|
if span == trace.INVALID_SPAN:
|
742
763
|
cls.__logger.warning("No active span to set session id on")
|
743
764
|
return
|
@@ -755,7 +776,11 @@ class Laminar:
|
|
755
776
|
if not cls.is_initialized():
|
756
777
|
return
|
757
778
|
|
758
|
-
|
779
|
+
context = get_current_context()
|
780
|
+
context = context_api.set_value(CONTEXT_USER_ID_KEY, user_id, context)
|
781
|
+
attach_context(context)
|
782
|
+
|
783
|
+
span = trace.get_current_span(context=context)
|
759
784
|
if span == trace.INVALID_SPAN:
|
760
785
|
cls.__logger.warning("No active span to set user id on")
|
761
786
|
return
|
lmnr/sdk/types.py
CHANGED
@@ -13,6 +13,8 @@ from typing import Any, Awaitable, Callable, Literal, Optional
|
|
13
13
|
|
14
14
|
from .utils import serialize
|
15
15
|
|
16
|
+
EVALUATION_DATAPOINT_MAX_DATA_LENGTH = 8_000_000 # 8MB
|
17
|
+
|
16
18
|
|
17
19
|
Numeric = int | float
|
18
20
|
NumericTypes = (int, float) # for use with isinstance
|
@@ -75,8 +77,12 @@ class PartialEvaluationDatapoint(pydantic.BaseModel):
|
|
75
77
|
try:
|
76
78
|
return {
|
77
79
|
"id": str(self.id),
|
78
|
-
"data": str(serialize(self.data))[
|
79
|
-
|
80
|
+
"data": str(serialize(self.data))[
|
81
|
+
:EVALUATION_DATAPOINT_MAX_DATA_LENGTH
|
82
|
+
],
|
83
|
+
"target": str(serialize(self.target))[
|
84
|
+
:EVALUATION_DATAPOINT_MAX_DATA_LENGTH
|
85
|
+
],
|
80
86
|
"index": self.index,
|
81
87
|
"traceId": str(self.trace_id),
|
82
88
|
"executorSpanId": str(self.executor_span_id),
|
@@ -106,9 +112,15 @@ class EvaluationResultDatapoint(pydantic.BaseModel):
|
|
106
112
|
# preserve only preview of the data, target and executor output
|
107
113
|
# (full data is in trace)
|
108
114
|
"id": str(self.id),
|
109
|
-
"data": str(serialize(self.data))[
|
110
|
-
|
111
|
-
|
115
|
+
"data": str(serialize(self.data))[
|
116
|
+
:EVALUATION_DATAPOINT_MAX_DATA_LENGTH
|
117
|
+
],
|
118
|
+
"target": str(serialize(self.target))[
|
119
|
+
:EVALUATION_DATAPOINT_MAX_DATA_LENGTH
|
120
|
+
],
|
121
|
+
"executorOutput": str(serialize(self.executor_output))[
|
122
|
+
:EVALUATION_DATAPOINT_MAX_DATA_LENGTH
|
123
|
+
],
|
112
124
|
"scores": self.scores,
|
113
125
|
"traceId": str(self.trace_id),
|
114
126
|
"executorSpanId": str(self.executor_span_id),
|
lmnr/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: lmnr
|
3
|
-
Version: 0.7.
|
3
|
+
Version: 0.7.2
|
4
4
|
Summary: Python SDK for Laminar
|
5
5
|
Author: lmnr.ai
|
6
6
|
Author-email: lmnr.ai <founders@lmnr.ai>
|
@@ -19,61 +19,59 @@ Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.33.0
|
|
19
19
|
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.33.0
|
20
20
|
Requires-Dist: opentelemetry-instrumentation>=0.54b0
|
21
21
|
Requires-Dist: opentelemetry-semantic-conventions>=0.54b0
|
22
|
-
Requires-Dist: opentelemetry-semantic-conventions-ai>=0.4.
|
22
|
+
Requires-Dist: opentelemetry-semantic-conventions-ai>=0.4.11
|
23
23
|
Requires-Dist: tqdm>=4.0
|
24
24
|
Requires-Dist: tenacity>=8.0
|
25
25
|
Requires-Dist: grpcio>=1
|
26
26
|
Requires-Dist: httpx>=0.25.0
|
27
27
|
Requires-Dist: orjson>=3.10.18
|
28
28
|
Requires-Dist: packaging>=22.0
|
29
|
-
Requires-Dist: opentelemetry-instrumentation-alephalpha>=0.
|
30
|
-
Requires-Dist: opentelemetry-instrumentation-alephalpha>=0.
|
31
|
-
Requires-Dist: opentelemetry-instrumentation-bedrock>=0.
|
32
|
-
Requires-Dist: opentelemetry-instrumentation-chromadb>=0.
|
33
|
-
Requires-Dist: opentelemetry-instrumentation-cohere>=0.
|
34
|
-
Requires-Dist: opentelemetry-instrumentation-crewai>=0.
|
35
|
-
Requires-Dist: opentelemetry-instrumentation-
|
36
|
-
Requires-Dist: opentelemetry-instrumentation-
|
37
|
-
Requires-Dist: opentelemetry-instrumentation-
|
38
|
-
Requires-Dist: opentelemetry-instrumentation-
|
39
|
-
Requires-Dist: opentelemetry-instrumentation-
|
40
|
-
Requires-Dist: opentelemetry-instrumentation-
|
41
|
-
Requires-Dist: opentelemetry-instrumentation-
|
42
|
-
Requires-Dist: opentelemetry-instrumentation-
|
43
|
-
Requires-Dist: opentelemetry-instrumentation-
|
44
|
-
Requires-Dist: opentelemetry-instrumentation-
|
45
|
-
Requires-Dist: opentelemetry-instrumentation-
|
46
|
-
Requires-Dist: opentelemetry-instrumentation-
|
47
|
-
Requires-Dist: opentelemetry-instrumentation-
|
48
|
-
Requires-Dist: opentelemetry-instrumentation-
|
49
|
-
Requires-Dist: opentelemetry-instrumentation-
|
50
|
-
Requires-Dist: opentelemetry-instrumentation-
|
51
|
-
Requires-Dist: opentelemetry-instrumentation-
|
52
|
-
Requires-Dist: opentelemetry-instrumentation-
|
53
|
-
Requires-Dist: opentelemetry-instrumentation-
|
54
|
-
Requires-Dist: opentelemetry-instrumentation-
|
55
|
-
Requires-Dist: opentelemetry-instrumentation-
|
56
|
-
Requires-Dist: opentelemetry-instrumentation-
|
57
|
-
Requires-Dist: opentelemetry-instrumentation-
|
58
|
-
Requires-Dist: opentelemetry-instrumentation-
|
59
|
-
Requires-Dist: opentelemetry-instrumentation-
|
60
|
-
Requires-Dist: opentelemetry-instrumentation-
|
61
|
-
Requires-Dist: opentelemetry-instrumentation-
|
62
|
-
Requires-Dist: opentelemetry-instrumentation-
|
63
|
-
Requires-Dist: opentelemetry-instrumentation-
|
64
|
-
Requires-Dist: opentelemetry-instrumentation-
|
65
|
-
Requires-Dist: opentelemetry-instrumentation-
|
66
|
-
Requires-Dist: opentelemetry-instrumentation-
|
67
|
-
Requires-Dist: opentelemetry-instrumentation-
|
68
|
-
Requires-Dist: opentelemetry-instrumentation-
|
69
|
-
Requires-Dist: opentelemetry-instrumentation-
|
70
|
-
Requires-Dist: opentelemetry-instrumentation-
|
71
|
-
Requires-Dist: opentelemetry-instrumentation-
|
72
|
-
Requires-Dist: opentelemetry-instrumentation-
|
73
|
-
Requires-Dist: opentelemetry-instrumentation-
|
74
|
-
Requires-Dist: opentelemetry-instrumentation-
|
75
|
-
Requires-Dist: opentelemetry-instrumentation-watsonx>=0.40.12 ; extra == 'watsonx'
|
76
|
-
Requires-Dist: opentelemetry-instrumentation-weaviate>=0.40.12 ; extra == 'weaviate'
|
29
|
+
Requires-Dist: opentelemetry-instrumentation-alephalpha>=0.44.0 ; extra == 'alephalpha'
|
30
|
+
Requires-Dist: opentelemetry-instrumentation-alephalpha>=0.44.0 ; extra == 'all'
|
31
|
+
Requires-Dist: opentelemetry-instrumentation-bedrock>=0.44.0 ; extra == 'all'
|
32
|
+
Requires-Dist: opentelemetry-instrumentation-chromadb>=0.44.0 ; extra == 'all'
|
33
|
+
Requires-Dist: opentelemetry-instrumentation-cohere>=0.44.0 ; extra == 'all'
|
34
|
+
Requires-Dist: opentelemetry-instrumentation-crewai>=0.44.0 ; extra == 'all'
|
35
|
+
Requires-Dist: opentelemetry-instrumentation-haystack>=0.44.0 ; extra == 'all'
|
36
|
+
Requires-Dist: opentelemetry-instrumentation-lancedb>=0.44.0 ; extra == 'all'
|
37
|
+
Requires-Dist: opentelemetry-instrumentation-langchain>=0.44.0 ; extra == 'all'
|
38
|
+
Requires-Dist: opentelemetry-instrumentation-llamaindex>=0.44.0 ; extra == 'all'
|
39
|
+
Requires-Dist: opentelemetry-instrumentation-marqo>=0.44.0 ; extra == 'all'
|
40
|
+
Requires-Dist: opentelemetry-instrumentation-mcp>=0.44.0 ; extra == 'all'
|
41
|
+
Requires-Dist: opentelemetry-instrumentation-milvus>=0.44.0 ; extra == 'all'
|
42
|
+
Requires-Dist: opentelemetry-instrumentation-mistralai>=0.44.0 ; extra == 'all'
|
43
|
+
Requires-Dist: opentelemetry-instrumentation-ollama>=0.44.0 ; extra == 'all'
|
44
|
+
Requires-Dist: opentelemetry-instrumentation-pinecone>=0.44.0 ; extra == 'all'
|
45
|
+
Requires-Dist: opentelemetry-instrumentation-qdrant>=0.44.0 ; extra == 'all'
|
46
|
+
Requires-Dist: opentelemetry-instrumentation-replicate>=0.44.0 ; extra == 'all'
|
47
|
+
Requires-Dist: opentelemetry-instrumentation-sagemaker>=0.44.0 ; extra == 'all'
|
48
|
+
Requires-Dist: opentelemetry-instrumentation-together>=0.44.0 ; extra == 'all'
|
49
|
+
Requires-Dist: opentelemetry-instrumentation-transformers>=0.44.0 ; extra == 'all'
|
50
|
+
Requires-Dist: opentelemetry-instrumentation-vertexai>=0.44.0 ; extra == 'all'
|
51
|
+
Requires-Dist: opentelemetry-instrumentation-watsonx>=0.44.0 ; extra == 'all'
|
52
|
+
Requires-Dist: opentelemetry-instrumentation-weaviate>=0.44.0 ; extra == 'all'
|
53
|
+
Requires-Dist: opentelemetry-instrumentation-bedrock>=0.44.0 ; extra == 'bedrock'
|
54
|
+
Requires-Dist: opentelemetry-instrumentation-chromadb>=0.44.0 ; extra == 'chromadb'
|
55
|
+
Requires-Dist: opentelemetry-instrumentation-cohere>=0.44.0 ; extra == 'cohere'
|
56
|
+
Requires-Dist: opentelemetry-instrumentation-crewai>=0.44.0 ; extra == 'crewai'
|
57
|
+
Requires-Dist: opentelemetry-instrumentation-haystack>=0.44.0 ; extra == 'haystack'
|
58
|
+
Requires-Dist: opentelemetry-instrumentation-lancedb>=0.44.0 ; extra == 'lancedb'
|
59
|
+
Requires-Dist: opentelemetry-instrumentation-langchain>=0.44.0 ; extra == 'langchain'
|
60
|
+
Requires-Dist: opentelemetry-instrumentation-llamaindex>=0.44.0 ; extra == 'llamaindex'
|
61
|
+
Requires-Dist: opentelemetry-instrumentation-marqo>=0.44.0 ; extra == 'marqo'
|
62
|
+
Requires-Dist: opentelemetry-instrumentation-mcp>=0.44.0 ; extra == 'mcp'
|
63
|
+
Requires-Dist: opentelemetry-instrumentation-milvus>=0.44.0 ; extra == 'milvus'
|
64
|
+
Requires-Dist: opentelemetry-instrumentation-mistralai>=0.44.0 ; extra == 'mistralai'
|
65
|
+
Requires-Dist: opentelemetry-instrumentation-ollama>=0.44.0 ; extra == 'ollama'
|
66
|
+
Requires-Dist: opentelemetry-instrumentation-pinecone>=0.44.0 ; extra == 'pinecone'
|
67
|
+
Requires-Dist: opentelemetry-instrumentation-qdrant>=0.44.0 ; extra == 'qdrant'
|
68
|
+
Requires-Dist: opentelemetry-instrumentation-replicate>=0.44.0 ; extra == 'replicate'
|
69
|
+
Requires-Dist: opentelemetry-instrumentation-sagemaker>=0.44.0 ; extra == 'sagemaker'
|
70
|
+
Requires-Dist: opentelemetry-instrumentation-together>=0.44.0 ; extra == 'together'
|
71
|
+
Requires-Dist: opentelemetry-instrumentation-transformers>=0.44.0 ; extra == 'transformers'
|
72
|
+
Requires-Dist: opentelemetry-instrumentation-vertexai>=0.44.0 ; extra == 'vertexai'
|
73
|
+
Requires-Dist: opentelemetry-instrumentation-watsonx>=0.44.0 ; extra == 'watsonx'
|
74
|
+
Requires-Dist: opentelemetry-instrumentation-weaviate>=0.44.0 ; extra == 'weaviate'
|
77
75
|
Requires-Python: >=3.10, <4
|
78
76
|
Provides-Extra: alephalpha
|
79
77
|
Provides-Extra: all
|
@@ -81,7 +79,6 @@ Provides-Extra: bedrock
|
|
81
79
|
Provides-Extra: chromadb
|
82
80
|
Provides-Extra: cohere
|
83
81
|
Provides-Extra: crewai
|
84
|
-
Provides-Extra: google-generativeai
|
85
82
|
Provides-Extra: haystack
|
86
83
|
Provides-Extra: lancedb
|
87
84
|
Provides-Extra: langchain
|
@@ -2,18 +2,18 @@ lmnr/__init__.py,sha256=47422a1fd58f5be3e7870ccb3ed7de4f1ac520d942e0c83cbcf903b0
|
|
2
2
|
lmnr/cli.py,sha256=b8780b51f37fe9e20db5495c41d3ad3837f6b48f408b09a58688d017850c0796,6047
|
3
3
|
lmnr/opentelemetry_lib/.flake8,sha256=6c2c6e0e51b1dd8439e501ca3e21899277076a787da868d0254ba37056b79405,150
|
4
4
|
lmnr/opentelemetry_lib/__init__.py,sha256=6962aca915d485586ed814b9e799ced898594ac2bc6d35329405705b26eab861,2160
|
5
|
-
lmnr/opentelemetry_lib/decorators/__init__.py,sha256=
|
6
|
-
lmnr/opentelemetry_lib/litellm/__init__.py,sha256=
|
5
|
+
lmnr/opentelemetry_lib/decorators/__init__.py,sha256=216536fb3ac8de18e6dfe4dfb2e571074c727466f97e6dcd609339c8458a345a,11511
|
6
|
+
lmnr/opentelemetry_lib/litellm/__init__.py,sha256=8a3679381ca5660cf53e4b7571850906c6635264129149adebda8f3f7c248f68,15127
|
7
7
|
lmnr/opentelemetry_lib/litellm/utils.py,sha256=da8cf0553f82dc7203109f117a4c7b4185e8baf34caad12d7823875515201a27,539
|
8
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/__init__.py,sha256=
|
8
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/__init__.py,sha256=2604189b7598edb5404ddbcd0775bdf2dc506dd5e6319eef4e4724e39c420301,23276
|
9
9
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/config.py,sha256=972919b821b9b7e5dc7cd191ba7e78b30b6efa5d63514e8cb301996d6386392c,369
|
10
10
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/event_emitter.py,sha256=812b3ea1c5a04412113d4dd770717561861595f9eec5b94dd8174c6ddfb7572a,6831
|
11
11
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/event_models.py,sha256=3c27c21b1aeb02bc19a91fb8c05717ae1c10ab4b01300c664aba42e0f50cb5a3,876
|
12
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/span_utils.py,sha256=
|
13
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/streaming.py,sha256=
|
12
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/span_utils.py,sha256=6a931571b4a036cd8711419cadad737ec46cc67b4368f2f662f1a565737f9f9b,11403
|
13
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/streaming.py,sha256=7ca9f49e4d9a3bac292d13a8ee9827fdfb8a46d13ebdcbbfbac9c5584d11eaf3,13441
|
14
14
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/utils.py,sha256=0044f02da8b99322fdbf3f8f6663f04ff5d1295ddae92a635fd16eb685d5fbb6,5386
|
15
15
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/version.py,sha256=5aacde4ca55ef50ed07a239ad8a86889e0621b1cc72be19bd93be7c9e20910a9,23
|
16
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/__init__.py,sha256=
|
16
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/__init__.py,sha256=a47d4d1234e0278d1538748130a79c03d6cb3486976cb5d19578fe1b90f28e7b,20524
|
17
17
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/config.py,sha256=db9cdebc9ee0dccb493ffe608eede3047efec20ed26c3924b72b2e50edbd92c2,245
|
18
18
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/schema_utils.py,sha256=857a6bc52f8bfd4da72786173615d31faaf3f9378f8f6150ffe8f6f9c4bb78f9,685
|
19
19
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/utils.py,sha256=f1248196246826d899304e510c4c2df74088d8169d28f1d0aed578a7a6c3cbfd,7669
|
@@ -27,20 +27,20 @@ lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/version.py,sha256=5aac
|
|
27
27
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/langgraph/__init__.py,sha256=b77a70771741b95006cb27d7f9fc26e4b79b1f10ca24b93a3160a458c3397a9d,3313
|
28
28
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/langgraph/utils.py,sha256=9dff6c2595e79edb38818668aed1220efc188d8a982594c04f4ceeb6e3ff47a6,1512
|
29
29
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/__init__.py,sha256=8b91dc16af927eee75b969c0980c606680b347a87f8533bc0f4a092e5ec6e5c9,2071
|
30
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/__init__.py,sha256=
|
31
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/chat_wrappers.py,sha256=
|
32
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/completion_wrappers.py,sha256=
|
30
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/__init__.py,sha256=9d182c8cef5ee1e205dc4c2f7c8e49d8403ee9fee66072c5cfdd29a0d54f61a2,15149
|
31
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/chat_wrappers.py,sha256=6042b3bcf94f38c90bdebaa2c6c9ac1a4723d1801b8e7c20cf8cc3926cef83ad,38657
|
32
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/completion_wrappers.py,sha256=3a45c07d9d0f37baf409a48e2a1b577f28041c623c41f59ada1c87b94285ae3b,9537
|
33
33
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/config.py,sha256=8016e4af0291a77484ce88d7d1ca06146b1229ae0e0a0f46e042faf75b456a8f,507
|
34
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/embeddings_wrappers.py,sha256=
|
34
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/embeddings_wrappers.py,sha256=324eeeaf8dd862f49c15bb7290d414e77ad51cdf532c2cfd74358783cdf654a5,9330
|
35
35
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/event_emitter.py,sha256=9c96455b5ca2064dd3a9fb570d78b14ebbdf3d02f8e33255ee9e301c31336c9e,3043
|
36
36
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/event_models.py,sha256=3c27c21b1aeb02bc19a91fb8c05717ae1c10ab4b01300c664aba42e0f50cb5a3,876
|
37
37
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/image_gen_wrappers.py,sha256=9650a0e4ad2d3bfb2a072590da189bcf4f807aca070945af26a9f9b99d779b77,2021
|
38
38
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/utils.py,sha256=541e94d60c94b8a8035ee74cda00ca3576a3f50a215df03d948de58665dbc25b,4649
|
39
39
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v0/__init__.py,sha256=7f43421e052bd8f64d5d5b03170a3b7187c2ce038362fa15b5d1d0c43bc1a40d,6143
|
40
40
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/__init__.py,sha256=662afd935c52b42512280614bf502554389c8854ab1256efbfde03fe364dac64,12932
|
41
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/assistant_wrappers.py,sha256=
|
42
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/event_handler_wrapper.py,sha256=
|
43
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/responses_wrappers.py,sha256=
|
41
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/assistant_wrappers.py,sha256=558036c734559b3526647c1b18cfb986699e8fb322855af72ea054c2e458f721,10404
|
42
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/event_handler_wrapper.py,sha256=4809cde003e5892822828b373aa3e43a8adbaee4ff443f198401003f43c15e8a,4366
|
43
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/responses_wrappers.py,sha256=67c94b3e5bf16b64cecf7a091b05a2eb43162e09968845066721d1cf715856c7,24372
|
44
44
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/version.py,sha256=4f39aaa913f3e49b0c174bc23028687d00bfaffc745bd3fe241e0ae6b442bed1,24
|
45
45
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/opentelemetry/__init__.py,sha256=1f86cdf738e2f68586b0a4569bb1e40edddd85c529f511ef49945ddb7b61fab5,2648
|
46
46
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/skyvern/__init__.py,sha256=764e4fe979fb08d7821419a3cc5c3ae89a6664b626ef928259f8f175c939eaea,6334
|
@@ -48,7 +48,7 @@ lmnr/opentelemetry_lib/opentelemetry/instrumentation/threading/__init__.py,sha25
|
|
48
48
|
lmnr/opentelemetry_lib/tracing/__init__.py,sha256=a39e9a48f8a842ce7f7ec53364d793c1a303dcfd485aee7a72ade07d1b3635a2,9662
|
49
49
|
lmnr/opentelemetry_lib/tracing/_instrument_initializers.py,sha256=a15a46a0515462319195a96f7cdb695e72a1559c3212964f5883ab824031bf70,15125
|
50
50
|
lmnr/opentelemetry_lib/tracing/attributes.py,sha256=32fa30565b977c2a92202dc2bf1ded583a81d02a6bf5ba52958f75a8be08cbbe,1497
|
51
|
-
lmnr/opentelemetry_lib/tracing/context.py,sha256=
|
51
|
+
lmnr/opentelemetry_lib/tracing/context.py,sha256=83f842be0fc29a96647cbf005c39ea761b0fb5913c4102f965411f47906a6135,4103
|
52
52
|
lmnr/opentelemetry_lib/tracing/exporter.py,sha256=6af8e61fd873e8f5db315d9b9f1edbf46b860ba7e50140f0bdcc6864c6d35a03,2082
|
53
53
|
lmnr/opentelemetry_lib/tracing/instruments.py,sha256=e3c12315bda301416d1f3bc8d354ad16d4da211e2ecfa019265f4b565307c118,5655
|
54
54
|
lmnr/opentelemetry_lib/tracing/processor.py,sha256=fd11e4d48eb5932f47898b8f70b8b5880f7ee7e58478f1ef20caff20e1f34252,3381
|
@@ -62,8 +62,8 @@ lmnr/sdk/browser/__init__.py,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b
|
|
62
62
|
lmnr/sdk/browser/browser_use_otel.py,sha256=37d26de1af37f76774af176cb226e0b04988fc3bf419a2fd899ad36e79562fad,5104
|
63
63
|
lmnr/sdk/browser/patchright_otel.py,sha256=9d22ab1f28f1eddbcfd0032a14fe306bfe00bfc7f11128cb99836c4dd15fb7c8,4800
|
64
64
|
lmnr/sdk/browser/playwright_otel.py,sha256=50c0a5a75155a3a7ff5db84790ffb409c9cbd0351eef212d83d923893730223b,9459
|
65
|
-
lmnr/sdk/browser/pw_utils.py,sha256=
|
66
|
-
lmnr/sdk/browser/
|
65
|
+
lmnr/sdk/browser/pw_utils.py,sha256=c84079f28c268c531ef86ed923028639671bb7c34a364f12f796556faa747393,20096
|
66
|
+
lmnr/sdk/browser/recorder/record.umd.min.cjs,sha256=f09c09052c2fc474efb0405e63d8d26ed2184b994513ce8aee04efdac8be155d,181235
|
67
67
|
lmnr/sdk/browser/utils.py,sha256=4a668776d2938108d25fbcecd61c8e1710a4da3e56230d5fefca5964dd09e3c1,2371
|
68
68
|
lmnr/sdk/client/asynchronous/async_client.py,sha256=e8feae007506cd2e4b08e72706f5f1bb4ea54492b4aa6b68ef184a129de8f466,4948
|
69
69
|
lmnr/sdk/client/asynchronous/resources/__init__.py,sha256=993423ea462aa8ea37d8d91662341c1ca0711cb2447cd476aacc373858f76135,481
|
@@ -85,12 +85,12 @@ lmnr/sdk/datasets.py,sha256=3fd851c5f97bf88eaa84b1451a053eaff23b4497cbb45eac2f9e
|
|
85
85
|
lmnr/sdk/decorators.py,sha256=0c6b95b92ec8023f28cd15ddc47849888fa91f2534d575f626e3557f5f0a0c02,6451
|
86
86
|
lmnr/sdk/eval_control.py,sha256=291394ac385c653ae9b5167e871bebeb4fe8fc6b7ff2ed38e636f87015dcba86,184
|
87
87
|
lmnr/sdk/evaluations.py,sha256=b41f7737b084dc5b64b2952659b729622e0918fd492bfcddde7177d1a1c690ae,22572
|
88
|
-
lmnr/sdk/laminar.py,sha256=
|
88
|
+
lmnr/sdk/laminar.py,sha256=c38590ec5d65d5dedad37258f13f4f88f989e9ae10cbdb30bd1acdad5443e1d6,34427
|
89
89
|
lmnr/sdk/log.py,sha256=9edfd83263f0d4845b1b2d1beeae2b4ed3f8628de941f371a893d72b79c348d4,2213
|
90
|
-
lmnr/sdk/types.py,sha256=
|
90
|
+
lmnr/sdk/types.py,sha256=c4868d7d1df2fbd108fe5990900675bff2e595f6ff207afcf166ad4853f5eb0a,12670
|
91
91
|
lmnr/sdk/utils.py,sha256=4beb884ae6fbbc7d8cf639b036b726ea6a2a658f0a6386faf5735a13d706a2d8,5039
|
92
|
-
lmnr/version.py,sha256=
|
93
|
-
lmnr-0.7.
|
94
|
-
lmnr-0.7.
|
95
|
-
lmnr-0.7.
|
96
|
-
lmnr-0.7.
|
92
|
+
lmnr/version.py,sha256=66adfc190221595f22dad751cd9efbdcff5c15c74bfe6929880661e779e139a7,1321
|
93
|
+
lmnr-0.7.2.dist-info/WHEEL,sha256=ab6157bc637547491fb4567cd7ddf26b04d63382916ca16c29a5c8e94c9c9ef7,79
|
94
|
+
lmnr-0.7.2.dist-info/entry_points.txt,sha256=abdf3411b7dd2d7329a241f2da6669bab4e314a747a586ecdb9f888f3035003c,39
|
95
|
+
lmnr-0.7.2.dist-info/METADATA,sha256=dc224f7405f3038e9abb2d6dc0ffc8b06c0824e76e887b95b23f71c8636124f5,14196
|
96
|
+
lmnr-0.7.2.dist-info/RECORD,,
|