lmnr 0.4.16__tar.gz → 0.4.17b0__tar.gz
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-0.4.16 → lmnr-0.4.17b0}/PKG-INFO +11 -56
- {lmnr-0.4.16 → lmnr-0.4.17b0}/README.md +2 -10
- lmnr-0.4.17b0/pyproject.toml +92 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/sdk/laminar.py +13 -49
- lmnr-0.4.16/pyproject.toml +0 -90
- {lmnr-0.4.16 → lmnr-0.4.17b0}/LICENSE +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/__init__.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/cli.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/sdk/__init__.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/sdk/decorators.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/sdk/evaluations.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/sdk/log.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/sdk/types.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/sdk/utils.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/.flake8 +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/.python-version +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/__init__.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/config/__init__.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/decorators/__init__.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/decorators/base.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/instruments.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/__init__.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/cassettes/test_association_properties/test_langchain_and_external_association_properties.yaml +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/cassettes/test_association_properties/test_langchain_association_properties.yaml +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/cassettes/test_manual/test_manual_report.yaml +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/cassettes/test_manual/test_resource_attributes.yaml +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/cassettes/test_privacy_no_prompts/test_simple_workflow.yaml +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/cassettes/test_prompt_management/test_prompt_management.yaml +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/cassettes/test_sdk_initialization/test_resource_attributes.yaml +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/cassettes/test_tasks/test_task_io_serialization_with_langchain.yaml +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/cassettes/test_workflows/test_simple_aworkflow.yaml +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/cassettes/test_workflows/test_simple_workflow.yaml +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/cassettes/test_workflows/test_streaming_workflow.yaml +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/conftest.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/test_association_properties.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/test_manual.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/test_nested_tasks.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/test_privacy_no_prompts.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/test_sdk_initialization.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/test_tasks.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tests/test_workflows.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tracing/__init__.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tracing/attributes.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tracing/content_allow_list.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tracing/context_manager.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/tracing/tracing.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/utils/__init__.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/utils/in_memory_span_exporter.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/utils/json_encoder.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/utils/package_check.py +0 -0
- {lmnr-0.4.16 → lmnr-0.4.17b0}/src/lmnr/traceloop_sdk/version.py +0 -0
@@ -1,59 +1,22 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: lmnr
|
3
|
-
Version: 0.4.
|
4
|
-
Summary: Python SDK for Laminar
|
3
|
+
Version: 0.4.17b0
|
4
|
+
Summary: Python SDK for Laminar
|
5
5
|
License: Apache-2.0
|
6
6
|
Author: lmnr.ai
|
7
|
-
Requires-Python: >=3.9,<4
|
8
7
|
Classifier: License :: OSI Approved :: Apache Software License
|
8
|
+
Classifier: Programming Language :: Python :: 2
|
9
|
+
Classifier: Programming Language :: Python :: 2.7
|
9
10
|
Classifier: Programming Language :: Python :: 3
|
11
|
+
Classifier: Programming Language :: Python :: 3.4
|
12
|
+
Classifier: Programming Language :: Python :: 3.5
|
13
|
+
Classifier: Programming Language :: Python :: 3.6
|
14
|
+
Classifier: Programming Language :: Python :: 3.7
|
15
|
+
Classifier: Programming Language :: Python :: 3.8
|
10
16
|
Classifier: Programming Language :: Python :: 3.9
|
11
17
|
Classifier: Programming Language :: Python :: 3.10
|
12
18
|
Classifier: Programming Language :: Python :: 3.11
|
13
19
|
Classifier: Programming Language :: Python :: 3.12
|
14
|
-
Requires-Dist: argparse (>=1.0,<2.0)
|
15
|
-
Requires-Dist: asyncio (>=3.0,<4.0)
|
16
|
-
Requires-Dist: backoff (>=2.0,<3.0)
|
17
|
-
Requires-Dist: deprecated (>=1.0,<2.0)
|
18
|
-
Requires-Dist: jinja2 (>=3.0,<4.0)
|
19
|
-
Requires-Dist: opentelemetry-api (>=1.27.0,<2.0.0)
|
20
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc (>=1.27.0,<2.0.0)
|
21
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-http (>=1.27.0,<2.0.0)
|
22
|
-
Requires-Dist: opentelemetry-instrumentation-alephalpha (>=0.32.0)
|
23
|
-
Requires-Dist: opentelemetry-instrumentation-anthropic (>=0.32.0)
|
24
|
-
Requires-Dist: opentelemetry-instrumentation-bedrock (>=0.32.0)
|
25
|
-
Requires-Dist: opentelemetry-instrumentation-chromadb (>=0.32.0)
|
26
|
-
Requires-Dist: opentelemetry-instrumentation-cohere (>=0.32.0)
|
27
|
-
Requires-Dist: opentelemetry-instrumentation-google-generativeai (>=0.32.0)
|
28
|
-
Requires-Dist: opentelemetry-instrumentation-groq (>=0.32.0)
|
29
|
-
Requires-Dist: opentelemetry-instrumentation-haystack (>=0.32.0)
|
30
|
-
Requires-Dist: opentelemetry-instrumentation-lancedb (>=0.32.0)
|
31
|
-
Requires-Dist: opentelemetry-instrumentation-langchain (>=0.32.0)
|
32
|
-
Requires-Dist: opentelemetry-instrumentation-llamaindex (>=0.32.0)
|
33
|
-
Requires-Dist: opentelemetry-instrumentation-marqo (>=0.32.0)
|
34
|
-
Requires-Dist: opentelemetry-instrumentation-milvus (>=0.32.0)
|
35
|
-
Requires-Dist: opentelemetry-instrumentation-mistralai (>=0.32.0)
|
36
|
-
Requires-Dist: opentelemetry-instrumentation-ollama (>=0.32.0)
|
37
|
-
Requires-Dist: opentelemetry-instrumentation-openai (>=0.32.0)
|
38
|
-
Requires-Dist: opentelemetry-instrumentation-pinecone (>=0.32.0)
|
39
|
-
Requires-Dist: opentelemetry-instrumentation-qdrant (>=0.32.0)
|
40
|
-
Requires-Dist: opentelemetry-instrumentation-replicate (>=0.32.0)
|
41
|
-
Requires-Dist: opentelemetry-instrumentation-requests (>=0.48b0,<0.49)
|
42
|
-
Requires-Dist: opentelemetry-instrumentation-sqlalchemy (>=0.48b0,<0.49)
|
43
|
-
Requires-Dist: opentelemetry-instrumentation-threading (>=0.48b0,<0.49)
|
44
|
-
Requires-Dist: opentelemetry-instrumentation-together (>=0.20.0)
|
45
|
-
Requires-Dist: opentelemetry-instrumentation-transformers (>=0.32.0)
|
46
|
-
Requires-Dist: opentelemetry-instrumentation-urllib3 (>=0.48b0,<0.49)
|
47
|
-
Requires-Dist: opentelemetry-instrumentation-vertexai (>=0.32.0)
|
48
|
-
Requires-Dist: opentelemetry-instrumentation-watsonx (>=0.32.0)
|
49
|
-
Requires-Dist: opentelemetry-instrumentation-weaviate (>=0.32.0)
|
50
|
-
Requires-Dist: opentelemetry-sdk (>=1.27.0,<2.0.0)
|
51
|
-
Requires-Dist: opentelemetry-semantic-conventions-ai (==0.4.1)
|
52
|
-
Requires-Dist: pydantic (>=2.7,<3.0)
|
53
|
-
Requires-Dist: python-dotenv (>=1.0,<2.0)
|
54
|
-
Requires-Dist: requests (>=2.0,<3.0)
|
55
|
-
Requires-Dist: tenacity (>=8.0)
|
56
|
-
Requires-Dist: tqdm (>=4.0,<5.0)
|
57
20
|
Description-Content-Type: text/markdown
|
58
21
|
|
59
22
|
# Laminar Python
|
@@ -173,13 +136,9 @@ Autoinstrumentations are provided by Traceloop's [OpenLLMetry](https://github.co
|
|
173
136
|
|
174
137
|
## Sending events
|
175
138
|
|
176
|
-
You can send events
|
177
|
-
- `.event(name, value)` – for a pre-defined event with one of possible values.
|
178
|
-
- `.evaluate_event(name, evaluator, data)` – for an event that is evaluated by evaluator pipeline based on the data.
|
139
|
+
You can send laminar events using `L.event(name, value)`.
|
179
140
|
|
180
|
-
|
181
|
-
|
182
|
-
Read our [docs](https://docs.lmnr.ai) to learn more about event types and how they are created and evaluated.
|
141
|
+
Read our [docs](https://docs.lmnr.ai) to learn more about events and examples.
|
183
142
|
|
184
143
|
### Example
|
185
144
|
|
@@ -191,10 +150,6 @@ poem = response.choices[0].message.content
|
|
191
150
|
# this will register True or False value with Laminar
|
192
151
|
L.event("topic alignment", topic in poem)
|
193
152
|
|
194
|
-
# this will run the pipeline `check_wordy` with `poem` set as the value
|
195
|
-
# of `text_input` node, and write the result as an event with name
|
196
|
-
# "excessive_wordiness"
|
197
|
-
L.evaluate_event("excessive_wordiness", "check_wordy", {"text_input": poem})
|
198
153
|
```
|
199
154
|
|
200
155
|
## Evaluations
|
@@ -115,13 +115,9 @@ Autoinstrumentations are provided by Traceloop's [OpenLLMetry](https://github.co
|
|
115
115
|
|
116
116
|
## Sending events
|
117
117
|
|
118
|
-
You can send events
|
119
|
-
- `.event(name, value)` – for a pre-defined event with one of possible values.
|
120
|
-
- `.evaluate_event(name, evaluator, data)` – for an event that is evaluated by evaluator pipeline based on the data.
|
118
|
+
You can send laminar events using `L.event(name, value)`.
|
121
119
|
|
122
|
-
|
123
|
-
|
124
|
-
Read our [docs](https://docs.lmnr.ai) to learn more about event types and how they are created and evaluated.
|
120
|
+
Read our [docs](https://docs.lmnr.ai) to learn more about events and examples.
|
125
121
|
|
126
122
|
### Example
|
127
123
|
|
@@ -133,10 +129,6 @@ poem = response.choices[0].message.content
|
|
133
129
|
# this will register True or False value with Laminar
|
134
130
|
L.event("topic alignment", topic in poem)
|
135
131
|
|
136
|
-
# this will run the pipeline `check_wordy` with `poem` set as the value
|
137
|
-
# of `text_input` node, and write the result as an event with name
|
138
|
-
# "excessive_wordiness"
|
139
|
-
L.evaluate_event("excessive_wordiness", "check_wordy", {"text_input": poem})
|
140
132
|
```
|
141
133
|
|
142
134
|
## Evaluations
|
@@ -0,0 +1,92 @@
|
|
1
|
+
[project]
|
2
|
+
name = "lmnr"
|
3
|
+
version = "0.4.17b0"
|
4
|
+
description = "Python SDK for Laminar"
|
5
|
+
authors = [
|
6
|
+
{ name = "lmnr.ai", email = "founders@lmnr.ai" }
|
7
|
+
]
|
8
|
+
readme = "README.md"
|
9
|
+
requires-python = ">=3.9"
|
10
|
+
license = "Apache-2.0"
|
11
|
+
dependencies = [
|
12
|
+
"asyncio~=3.0",
|
13
|
+
"backoff~=2.0",
|
14
|
+
"pydantic~=2.7",
|
15
|
+
"python-dotenv~=1.0",
|
16
|
+
"requests~=2.0",
|
17
|
+
"opentelemetry-api~=1.27.0",
|
18
|
+
"opentelemetry-sdk~=1.27.0",
|
19
|
+
"opentelemetry-exporter-otlp-proto-http~=1.27.0",
|
20
|
+
"opentelemetry-exporter-otlp-proto-grpc~=1.27.0",
|
21
|
+
"opentelemetry-instrumentation-requests~=0.48b0",
|
22
|
+
"opentelemetry-instrumentation-sqlalchemy~=0.48b0",
|
23
|
+
"opentelemetry-instrumentation-urllib3~=0.48b0",
|
24
|
+
"opentelemetry-instrumentation-threading~=0.48b0",
|
25
|
+
"opentelemetry-semantic-conventions-ai~=0.4.1",
|
26
|
+
"tenacity~=8.0",
|
27
|
+
"jinja2~=3.0",
|
28
|
+
"deprecated~=1.0",
|
29
|
+
"opentelemetry-instrumentation-mistralai~=0.32",
|
30
|
+
"opentelemetry-instrumentation-openai~=0.32",
|
31
|
+
"opentelemetry-instrumentation-ollama~=0.32",
|
32
|
+
"opentelemetry-instrumentation-anthropic~=0.32",
|
33
|
+
"opentelemetry-instrumentation-cohere~=0.32",
|
34
|
+
"opentelemetry-instrumentation-google-generativeai~=0.32",
|
35
|
+
"opentelemetry-instrumentation-pinecone~=0.32",
|
36
|
+
"opentelemetry-instrumentation-qdrant~=0.32",
|
37
|
+
"opentelemetry-instrumentation-langchain~=0.32",
|
38
|
+
"opentelemetry-instrumentation-lancedb~=0.32",
|
39
|
+
"opentelemetry-instrumentation-chromadb~=0.32",
|
40
|
+
"opentelemetry-instrumentation-transformers~=0.32",
|
41
|
+
"opentelemetry-instrumentation-together~=0.32",
|
42
|
+
"opentelemetry-instrumentation-llamaindex~=0.32",
|
43
|
+
"opentelemetry-instrumentation-milvus~=0.32",
|
44
|
+
"opentelemetry-instrumentation-haystack~=0.32",
|
45
|
+
"opentelemetry-instrumentation-bedrock~=0.32",
|
46
|
+
"opentelemetry-instrumentation-replicate~=0.32",
|
47
|
+
"opentelemetry-instrumentation-vertexai~=0.32",
|
48
|
+
"opentelemetry-instrumentation-watsonx~=0.32",
|
49
|
+
"opentelemetry-instrumentation-weaviate~=0.32",
|
50
|
+
"opentelemetry-instrumentation-alephalpha~=0.32",
|
51
|
+
"opentelemetry-instrumentation-marqo~=0.32",
|
52
|
+
"opentelemetry-instrumentation-groq~=0.32",
|
53
|
+
"tqdm~=4.0",
|
54
|
+
"argparse~=1.0",
|
55
|
+
]
|
56
|
+
|
57
|
+
[tool.uv]
|
58
|
+
dev-dependencies= [
|
59
|
+
"autopep8==2.2.0",
|
60
|
+
"flake8~=7.0",
|
61
|
+
"pytest~=8.2",
|
62
|
+
"pytest-sugar~=1.0",
|
63
|
+
]
|
64
|
+
|
65
|
+
# this hopefully to go away when uv adds their own build system
|
66
|
+
[tool.poetry]
|
67
|
+
name = "lmnr"
|
68
|
+
version = "0.4.17b0"
|
69
|
+
description = "Python SDK for Laminar"
|
70
|
+
authors = ["lmnr.ai"]
|
71
|
+
readme = "README.md"
|
72
|
+
license = "Apache-2.0"
|
73
|
+
|
74
|
+
[tool.poetry.group.test.dependencies]
|
75
|
+
openai = "^1.31.1"
|
76
|
+
vcrpy = "^6.0.1"
|
77
|
+
pytest-recording = "^0.13.1"
|
78
|
+
pydantic = "<3"
|
79
|
+
pytest-asyncio = "^0.23.7"
|
80
|
+
anthropic = "^0.25.2"
|
81
|
+
langchain = "^0.2.5"
|
82
|
+
langchain-openai = "^0.1.15"
|
83
|
+
|
84
|
+
[build-system]
|
85
|
+
requires = ["poetry-core"]
|
86
|
+
build-backend = "poetry.core.masonry.api"
|
87
|
+
|
88
|
+
[project.scripts]
|
89
|
+
lmnr = "lmnr.cli:cli"
|
90
|
+
|
91
|
+
[project.optional-dependencies]
|
92
|
+
test = ["pytest"]
|
@@ -265,49 +265,6 @@ class Laminar:
|
|
265
265
|
|
266
266
|
current_span.add_event(name, event, timestamp)
|
267
267
|
|
268
|
-
@classmethod
|
269
|
-
def evaluate_event(
|
270
|
-
cls,
|
271
|
-
name: str,
|
272
|
-
evaluator: str,
|
273
|
-
data: dict[str, AttributeValue],
|
274
|
-
env: Optional[dict[str, str]] = None,
|
275
|
-
timestamp: Optional[Union[datetime.datetime, int]] = None,
|
276
|
-
):
|
277
|
-
"""Send an event for evaluation to the Laminar backend
|
278
|
-
|
279
|
-
Args:
|
280
|
-
name (str): name of the event
|
281
|
-
evaluator (str): name of the pipeline that evaluates the event.
|
282
|
-
The pipeline must have a target version set.
|
283
|
-
data (dict[str, AttributeValue]): map from input node name to
|
284
|
-
its value in the evaluator pipeline
|
285
|
-
env (dict[str, str], optional): environment variables required
|
286
|
-
to run the pipeline. Defaults to {}.
|
287
|
-
timestamp (Optional[Union[datetime.datetime, int]], optional):
|
288
|
-
If int, must be epoch nanoseconds.
|
289
|
-
If not specified, relies on the underlying
|
290
|
-
OpenTelemetry implementation. Defaults to None.
|
291
|
-
"""
|
292
|
-
if timestamp and isinstance(timestamp, datetime.datetime):
|
293
|
-
timestamp = int(timestamp.timestamp() * 1e9)
|
294
|
-
event = {
|
295
|
-
"lmnr.event.type": "evaluate",
|
296
|
-
"lmnr.event.evaluator": evaluator,
|
297
|
-
"lmnr.event.data": json.dumps(data),
|
298
|
-
"lmnr.event.env": json.dumps(env if env is not None else cls.__env),
|
299
|
-
}
|
300
|
-
current_span = get_current_span()
|
301
|
-
if current_span == INVALID_SPAN:
|
302
|
-
cls.__logger.warning(
|
303
|
-
"`Laminar().evaluate_event()` called outside of span context."
|
304
|
-
f"Event '{name}' will not be recorded in the trace. "
|
305
|
-
"Make sure to annotate the function with a decorator"
|
306
|
-
)
|
307
|
-
return
|
308
|
-
|
309
|
-
current_span.add_event(name, event, timestamp)
|
310
|
-
|
311
268
|
@classmethod
|
312
269
|
@contextmanager
|
313
270
|
def start_as_current_span(
|
@@ -412,14 +369,21 @@ class Laminar:
|
|
412
369
|
set_association_properties(props)
|
413
370
|
|
414
371
|
@classmethod
|
415
|
-
def create_evaluation(
|
372
|
+
def create_evaluation(
|
373
|
+
cls,
|
374
|
+
data: list[EvaluationResultDatapoint],
|
375
|
+
group_id: Optional[str] = None,
|
376
|
+
name: Optional[str] = None,
|
377
|
+
) -> CreateEvaluationResponse:
|
416
378
|
response = requests.post(
|
417
379
|
cls.__base_http_url + "/v1/evaluations",
|
418
|
-
data=json.dumps(
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
380
|
+
data=json.dumps(
|
381
|
+
{
|
382
|
+
"groupId": group_id,
|
383
|
+
"name": name,
|
384
|
+
"points": [datapoint.to_dict() for datapoint in data],
|
385
|
+
}
|
386
|
+
),
|
423
387
|
headers=cls._headers(),
|
424
388
|
)
|
425
389
|
if response.status_code != 200:
|
lmnr-0.4.16/pyproject.toml
DELETED
@@ -1,90 +0,0 @@
|
|
1
|
-
[project]
|
2
|
-
name = "lmnr"
|
3
|
-
version = "0.4.16"
|
4
|
-
description = "Python SDK for Laminar AI"
|
5
|
-
authors = [
|
6
|
-
{ name = "lmnr.ai", email = "founders@lmnr.ai" }
|
7
|
-
]
|
8
|
-
readme = "README.md"
|
9
|
-
requires-python = "^3.9"
|
10
|
-
license = "Apache-2.0"
|
11
|
-
|
12
|
-
[tool.poetry]
|
13
|
-
name = "lmnr"
|
14
|
-
version = "0.4.16"
|
15
|
-
description = "Python SDK for Laminar AI"
|
16
|
-
authors = ["lmnr.ai"]
|
17
|
-
readme = "README.md"
|
18
|
-
license = "Apache-2.0"
|
19
|
-
|
20
|
-
[tool.poetry.dependencies]
|
21
|
-
python = ">=3.9,<4"
|
22
|
-
pydantic = "~=2.7"
|
23
|
-
requests = "~=2.0"
|
24
|
-
python-dotenv = "~=1.0"
|
25
|
-
backoff = "~=2.0"
|
26
|
-
asyncio = "~=3.0"
|
27
|
-
opentelemetry-api = "^1.27.0"
|
28
|
-
opentelemetry-sdk = "^1.27.0"
|
29
|
-
opentelemetry-exporter-otlp-proto-http = "^1.27.0"
|
30
|
-
opentelemetry-exporter-otlp-proto-grpc = "^1.27.0"
|
31
|
-
opentelemetry-instrumentation-requests = "^0.48b0"
|
32
|
-
opentelemetry-instrumentation-sqlalchemy = "^0.48b0"
|
33
|
-
opentelemetry-instrumentation-urllib3 = "^0.48b0"
|
34
|
-
opentelemetry-instrumentation-threading = "^0.48b0"
|
35
|
-
opentelemetry-semantic-conventions-ai = "0.4.1"
|
36
|
-
tenacity = ">=8.0"
|
37
|
-
jinja2 = "~=3.0"
|
38
|
-
deprecated = "~=1.0"
|
39
|
-
opentelemetry-instrumentation-mistralai = ">=0.32.0"
|
40
|
-
opentelemetry-instrumentation-openai = ">=0.32.0"
|
41
|
-
opentelemetry-instrumentation-ollama = ">=0.32.0"
|
42
|
-
opentelemetry-instrumentation-anthropic = ">=0.32.0"
|
43
|
-
opentelemetry-instrumentation-cohere = ">=0.32.0"
|
44
|
-
opentelemetry-instrumentation-google-generativeai = ">=0.32.0"
|
45
|
-
opentelemetry-instrumentation-pinecone = ">=0.32.0"
|
46
|
-
opentelemetry-instrumentation-qdrant = ">=0.32.0"
|
47
|
-
opentelemetry-instrumentation-langchain = ">=0.32.0"
|
48
|
-
opentelemetry-instrumentation-lancedb = ">=0.32.0"
|
49
|
-
opentelemetry-instrumentation-chromadb = ">=0.32.0"
|
50
|
-
opentelemetry-instrumentation-transformers = ">=0.32.0"
|
51
|
-
opentelemetry-instrumentation-together = ">=0.20.0"
|
52
|
-
opentelemetry-instrumentation-llamaindex = ">=0.32.0"
|
53
|
-
opentelemetry-instrumentation-milvus = ">=0.32.0"
|
54
|
-
opentelemetry-instrumentation-haystack = ">=0.32.0"
|
55
|
-
opentelemetry-instrumentation-bedrock = ">=0.32.0"
|
56
|
-
opentelemetry-instrumentation-replicate = ">=0.32.0"
|
57
|
-
opentelemetry-instrumentation-vertexai = ">=0.32.0"
|
58
|
-
opentelemetry-instrumentation-watsonx = ">=0.32.0"
|
59
|
-
opentelemetry-instrumentation-weaviate = ">=0.32.0"
|
60
|
-
opentelemetry-instrumentation-alephalpha = ">=0.32.0"
|
61
|
-
opentelemetry-instrumentation-marqo = ">=0.32.0"
|
62
|
-
opentelemetry-instrumentation-groq = ">=0.32.0"
|
63
|
-
tqdm = "~=4.0"
|
64
|
-
argparse = "~=1.0"
|
65
|
-
|
66
|
-
[tool.poetry.group.dev.dependencies]
|
67
|
-
autopep8 = "^2.2.0"
|
68
|
-
flake8 = "7.0.0"
|
69
|
-
pytest = "^8.2.2"
|
70
|
-
pytest-sugar = "1.0.0"
|
71
|
-
|
72
|
-
[tool.poetry.group.test.dependencies]
|
73
|
-
openai = "^1.31.1"
|
74
|
-
vcrpy = "^6.0.1"
|
75
|
-
pytest-recording = "^0.13.1"
|
76
|
-
pydantic = "<3"
|
77
|
-
pytest-asyncio = "^0.23.7"
|
78
|
-
anthropic = "^0.25.2"
|
79
|
-
langchain = "^0.2.5"
|
80
|
-
langchain-openai = "^0.1.15"
|
81
|
-
|
82
|
-
[build-system]
|
83
|
-
requires = ["poetry-core"]
|
84
|
-
build-backend = "poetry.core.masonry.api"
|
85
|
-
|
86
|
-
[tool.poetry.scripts]
|
87
|
-
lmnr = "lmnr.cli:cli"
|
88
|
-
|
89
|
-
[project.optional-dependencies]
|
90
|
-
test = ["pytest"]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|