label-studio-sdk 1.0.8__py3-none-any.whl → 1.0.11__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.
Potentially problematic release.
This version of label-studio-sdk might be problematic. Click here for more details.
- label_studio_sdk/__init__.py +37 -8
- label_studio_sdk/_extensions/label_studio_tools/core/utils/io.py +16 -4
- label_studio_sdk/_extensions/label_studio_tools/core/utils/json_schema.py +5 -0
- label_studio_sdk/_extensions/pager_ext.py +8 -0
- label_studio_sdk/actions/client.py +91 -40
- label_studio_sdk/actions/types/actions_create_request_filters.py +14 -24
- label_studio_sdk/actions/types/actions_create_request_filters_items_item.py +16 -26
- label_studio_sdk/actions/types/actions_create_request_filters_items_item_value.py +3 -1
- label_studio_sdk/actions/types/actions_create_request_selected_items.py +1 -2
- label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +15 -25
- label_studio_sdk/actions/types/actions_create_request_selected_items_included.py +15 -25
- label_studio_sdk/annotations/__init__.py +2 -2
- label_studio_sdk/annotations/client.py +278 -104
- label_studio_sdk/annotations/types/__init__.py +2 -1
- label_studio_sdk/annotations/types/annotations_create_bulk_request_selected_items.py +34 -0
- label_studio_sdk/annotations/types/annotations_create_bulk_response_item.py +11 -21
- label_studio_sdk/base_client.py +54 -27
- label_studio_sdk/client.py +1 -0
- label_studio_sdk/comments/client.py +190 -44
- label_studio_sdk/converter/converter.py +56 -13
- label_studio_sdk/converter/imports/yolo.py +1 -1
- label_studio_sdk/converter/utils.py +3 -2
- label_studio_sdk/core/__init__.py +21 -4
- label_studio_sdk/core/client_wrapper.py +37 -19
- label_studio_sdk/core/file.py +37 -8
- label_studio_sdk/core/http_client.py +52 -28
- label_studio_sdk/core/jsonable_encoder.py +33 -31
- label_studio_sdk/core/pagination.py +5 -4
- label_studio_sdk/core/pydantic_utilities.py +272 -4
- label_studio_sdk/core/query_encoder.py +38 -13
- label_studio_sdk/core/request_options.py +3 -0
- label_studio_sdk/core/serialization.py +272 -0
- label_studio_sdk/errors/__init__.py +3 -1
- label_studio_sdk/errors/bad_request_error.py +2 -3
- label_studio_sdk/errors/not_found_error.py +9 -0
- label_studio_sdk/errors/unauthorized_error.py +9 -0
- label_studio_sdk/export_storage/azure/client.py +228 -58
- label_studio_sdk/export_storage/azure/types/azure_create_response.py +19 -29
- label_studio_sdk/export_storage/azure/types/azure_update_response.py +19 -29
- label_studio_sdk/export_storage/client.py +48 -18
- label_studio_sdk/export_storage/gcs/client.py +228 -58
- label_studio_sdk/export_storage/gcs/types/gcs_create_response.py +19 -29
- label_studio_sdk/export_storage/gcs/types/gcs_update_response.py +19 -29
- label_studio_sdk/export_storage/local/client.py +222 -56
- label_studio_sdk/export_storage/local/types/local_create_response.py +17 -27
- label_studio_sdk/export_storage/local/types/local_update_response.py +17 -27
- label_studio_sdk/export_storage/redis/client.py +228 -58
- label_studio_sdk/export_storage/redis/types/redis_create_response.py +20 -30
- label_studio_sdk/export_storage/redis/types/redis_update_response.py +20 -30
- label_studio_sdk/export_storage/s3/client.py +228 -58
- label_studio_sdk/export_storage/s3/types/s3create_response.py +27 -35
- label_studio_sdk/export_storage/s3/types/s3update_response.py +27 -35
- label_studio_sdk/export_storage/s3s/client.py +187 -43
- label_studio_sdk/export_storage/types/export_storage_list_types_response_item.py +11 -21
- label_studio_sdk/files/client.py +172 -56
- label_studio_sdk/import_storage/azure/client.py +223 -53
- label_studio_sdk/import_storage/azure/types/azure_create_response.py +22 -32
- label_studio_sdk/import_storage/azure/types/azure_update_response.py +22 -32
- label_studio_sdk/import_storage/client.py +48 -18
- label_studio_sdk/import_storage/gcs/client.py +223 -53
- label_studio_sdk/import_storage/gcs/types/gcs_create_response.py +22 -32
- label_studio_sdk/import_storage/gcs/types/gcs_update_response.py +22 -32
- label_studio_sdk/import_storage/local/client.py +223 -53
- label_studio_sdk/import_storage/local/types/local_create_response.py +17 -27
- label_studio_sdk/import_storage/local/types/local_update_response.py +17 -27
- label_studio_sdk/import_storage/redis/client.py +223 -53
- label_studio_sdk/import_storage/redis/types/redis_create_response.py +20 -30
- label_studio_sdk/import_storage/redis/types/redis_update_response.py +20 -30
- label_studio_sdk/import_storage/s3/client.py +223 -53
- label_studio_sdk/import_storage/s3/types/s3create_response.py +31 -39
- label_studio_sdk/import_storage/s3/types/s3update_response.py +31 -39
- label_studio_sdk/import_storage/s3s/client.py +222 -52
- label_studio_sdk/import_storage/types/import_storage_list_types_response_item.py +11 -21
- label_studio_sdk/jwt_settings/__init__.py +2 -0
- label_studio_sdk/jwt_settings/client.py +259 -0
- label_studio_sdk/label_interface/control_tags.py +16 -3
- label_studio_sdk/label_interface/interface.py +80 -1
- label_studio_sdk/label_interface/object_tags.py +2 -2
- label_studio_sdk/ml/client.py +280 -78
- label_studio_sdk/ml/types/ml_create_response.py +21 -31
- label_studio_sdk/ml/types/ml_update_response.py +21 -31
- label_studio_sdk/model_providers/client.py +173 -56
- label_studio_sdk/predictions/client.py +247 -101
- label_studio_sdk/projects/__init__.py +5 -1
- label_studio_sdk/projects/client.py +313 -115
- label_studio_sdk/projects/client_ext.py +16 -0
- label_studio_sdk/projects/exports/__init__.py +3 -0
- label_studio_sdk/projects/exports/client.py +447 -296
- label_studio_sdk/projects/exports/client_ext.py +200 -0
- label_studio_sdk/projects/exports/types/__init__.py +6 -0
- label_studio_sdk/projects/exports/types/exports_convert_response.py +24 -0
- label_studio_sdk/projects/exports/types/exports_list_formats_response_item.py +44 -0
- label_studio_sdk/projects/pauses/__init__.py +2 -0
- label_studio_sdk/projects/pauses/client.py +704 -0
- label_studio_sdk/projects/types/projects_create_response.py +29 -34
- label_studio_sdk/projects/types/projects_import_tasks_response.py +19 -29
- label_studio_sdk/projects/types/projects_list_response.py +11 -21
- label_studio_sdk/projects/types/projects_update_response.py +34 -34
- label_studio_sdk/prompts/client.py +309 -92
- label_studio_sdk/prompts/indicators/client.py +67 -23
- label_studio_sdk/prompts/runs/client.py +95 -40
- label_studio_sdk/prompts/types/prompts_batch_failed_predictions_request_failed_predictions_item.py +14 -24
- label_studio_sdk/prompts/types/prompts_batch_failed_predictions_response.py +11 -21
- label_studio_sdk/prompts/types/prompts_batch_predictions_request_results_item.py +26 -29
- label_studio_sdk/prompts/types/prompts_batch_predictions_response.py +11 -21
- label_studio_sdk/prompts/versions/client.py +277 -88
- label_studio_sdk/tasks/client.py +263 -90
- label_studio_sdk/tasks/types/tasks_list_response.py +15 -25
- label_studio_sdk/tokens/__init__.py +2 -0
- label_studio_sdk/tokens/client.py +470 -0
- label_studio_sdk/tokens/client_ext.py +94 -0
- label_studio_sdk/types/__init__.py +20 -6
- label_studio_sdk/types/access_token_response.py +22 -0
- label_studio_sdk/types/annotation.py +29 -38
- label_studio_sdk/types/annotation_filter_options.py +14 -24
- label_studio_sdk/types/annotations_dm_field.py +30 -39
- label_studio_sdk/types/api_token_response.py +32 -0
- label_studio_sdk/types/azure_blob_export_storage.py +28 -37
- label_studio_sdk/types/azure_blob_import_storage.py +28 -37
- label_studio_sdk/types/base_task.py +30 -39
- label_studio_sdk/types/base_task_updated_by.py +3 -1
- label_studio_sdk/types/base_user.py +14 -21
- label_studio_sdk/types/comment.py +12 -21
- label_studio_sdk/types/comment_created_by.py +1 -1
- label_studio_sdk/types/converted_format.py +12 -22
- label_studio_sdk/types/data_manager_task_serializer.py +31 -40
- label_studio_sdk/types/data_manager_task_serializer_annotators_item.py +1 -1
- label_studio_sdk/types/data_manager_task_serializer_drafts_item.py +13 -22
- label_studio_sdk/types/data_manager_task_serializer_predictions_item.py +15 -24
- label_studio_sdk/types/export.py +17 -26
- label_studio_sdk/types/export_format.py +25 -0
- label_studio_sdk/types/export_snapshot.py +45 -0
- label_studio_sdk/types/export_snapshot_status.py +5 -0
- label_studio_sdk/types/file_upload.py +11 -21
- label_studio_sdk/types/filter.py +16 -26
- label_studio_sdk/types/filter_group.py +12 -22
- label_studio_sdk/types/gcs_export_storage.py +28 -37
- label_studio_sdk/types/gcs_import_storage.py +28 -37
- label_studio_sdk/types/inference_run.py +14 -23
- label_studio_sdk/types/inference_run_cost_estimate.py +17 -27
- label_studio_sdk/types/inference_run_created_by.py +1 -1
- label_studio_sdk/types/inference_run_organization.py +1 -1
- label_studio_sdk/types/jwt_settings_response.py +32 -0
- label_studio_sdk/types/key_indicator_value.py +12 -22
- label_studio_sdk/types/key_indicators.py +0 -1
- label_studio_sdk/types/key_indicators_item.py +15 -25
- label_studio_sdk/types/key_indicators_item_additional_kpis_item.py +13 -23
- label_studio_sdk/types/key_indicators_item_extra_kpis_item.py +13 -23
- label_studio_sdk/types/local_files_export_storage.py +25 -34
- label_studio_sdk/types/local_files_import_storage.py +24 -33
- label_studio_sdk/types/ml_backend.py +23 -32
- label_studio_sdk/types/model_provider_connection.py +22 -31
- label_studio_sdk/types/model_provider_connection_created_by.py +1 -1
- label_studio_sdk/types/model_provider_connection_organization.py +1 -1
- label_studio_sdk/types/model_provider_connection_provider.py +3 -1
- label_studio_sdk/types/pause.py +34 -0
- label_studio_sdk/types/pause_paused_by.py +5 -0
- label_studio_sdk/types/prediction.py +21 -30
- label_studio_sdk/types/project.py +58 -55
- label_studio_sdk/types/project_import.py +21 -30
- label_studio_sdk/types/project_label_config.py +12 -22
- label_studio_sdk/types/prompt.py +24 -32
- label_studio_sdk/types/prompt_associated_projects_item.py +6 -0
- label_studio_sdk/types/prompt_associated_projects_item_id.py +20 -0
- label_studio_sdk/types/prompt_created_by.py +1 -1
- label_studio_sdk/types/prompt_organization.py +1 -1
- label_studio_sdk/types/prompt_version.py +13 -22
- label_studio_sdk/types/prompt_version_created_by.py +1 -1
- label_studio_sdk/types/prompt_version_organization.py +1 -1
- label_studio_sdk/types/prompt_version_provider.py +3 -1
- label_studio_sdk/types/redis_export_storage.py +29 -38
- label_studio_sdk/types/redis_import_storage.py +28 -37
- label_studio_sdk/types/refined_prompt_response.py +19 -29
- label_studio_sdk/types/s3export_storage.py +36 -43
- label_studio_sdk/types/s3import_storage.py +37 -44
- label_studio_sdk/types/s3s_export_storage.py +26 -33
- label_studio_sdk/types/s3s_import_storage.py +35 -42
- label_studio_sdk/types/serialization_option.py +12 -22
- label_studio_sdk/types/serialization_options.py +18 -28
- label_studio_sdk/types/task.py +44 -47
- label_studio_sdk/types/task_annotators_item.py +1 -1
- label_studio_sdk/types/task_comment_authors_item.py +1 -1
- label_studio_sdk/types/task_filter_options.py +15 -25
- label_studio_sdk/types/user_simple.py +11 -21
- label_studio_sdk/types/view.py +16 -26
- label_studio_sdk/types/webhook.py +19 -28
- label_studio_sdk/types/webhook_serializer_for_update.py +19 -28
- label_studio_sdk/types/workspace.py +22 -31
- label_studio_sdk/users/client.py +257 -63
- label_studio_sdk/users/types/users_get_token_response.py +12 -22
- label_studio_sdk/users/types/users_reset_token_response.py +12 -22
- label_studio_sdk/version.py +0 -1
- label_studio_sdk/versions/__init__.py +5 -0
- label_studio_sdk/versions/client.py +112 -0
- label_studio_sdk/versions/types/__init__.py +6 -0
- label_studio_sdk/versions/types/versions_get_response.py +73 -0
- label_studio_sdk/versions/types/versions_get_response_edition.py +5 -0
- label_studio_sdk/views/client.py +219 -52
- label_studio_sdk/views/types/views_create_request_data.py +13 -23
- label_studio_sdk/views/types/views_create_request_data_filters.py +14 -24
- label_studio_sdk/views/types/views_create_request_data_filters_items_item.py +16 -26
- label_studio_sdk/views/types/views_create_request_data_filters_items_item_value.py +3 -1
- label_studio_sdk/views/types/views_update_request_data.py +13 -23
- label_studio_sdk/views/types/views_update_request_data_filters.py +14 -24
- label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +16 -26
- label_studio_sdk/views/types/views_update_request_data_filters_items_item_value.py +3 -1
- label_studio_sdk/webhooks/client.py +191 -61
- label_studio_sdk/workspaces/client.py +164 -41
- label_studio_sdk/workspaces/members/client.py +109 -31
- label_studio_sdk/workspaces/members/types/members_create_response.py +12 -22
- label_studio_sdk/workspaces/members/types/members_list_response_item.py +12 -22
- {label_studio_sdk-1.0.8.dist-info → label_studio_sdk-1.0.11.dist-info}/METADATA +8 -5
- {label_studio_sdk-1.0.8.dist-info → label_studio_sdk-1.0.11.dist-info}/RECORD +215 -188
- {label_studio_sdk-1.0.8.dist-info → label_studio_sdk-1.0.11.dist-info}/WHEEL +1 -1
- label_studio_sdk/types/export_convert.py +0 -32
- label_studio_sdk/types/export_create.py +0 -54
- label_studio_sdk/types/export_create_status.py +0 -5
- {label_studio_sdk-1.0.8.dist-info → label_studio_sdk-1.0.11.dist-info}/LICENSE +0 -0
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
import datetime as dt
|
|
4
3
|
import typing
|
|
5
|
-
from
|
|
6
|
-
|
|
7
|
-
from ...core.api_error import ApiError
|
|
8
|
-
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
9
|
-
from ...core.jsonable_encoder import jsonable_encoder
|
|
10
|
-
from ...core.pydantic_utilities import pydantic_v1
|
|
4
|
+
from ...core.client_wrapper import SyncClientWrapper
|
|
11
5
|
from ...core.request_options import RequestOptions
|
|
12
|
-
from ...types.inference_run_cost_estimate import InferenceRunCostEstimate
|
|
13
6
|
from ...types.prompt_version import PromptVersion
|
|
7
|
+
from ...core.jsonable_encoder import jsonable_encoder
|
|
8
|
+
from ...core.pydantic_utilities import parse_obj_as
|
|
9
|
+
from json.decoder import JSONDecodeError
|
|
10
|
+
from ...core.api_error import ApiError
|
|
11
|
+
from ...types.prompt_version_provider import PromptVersionProvider
|
|
14
12
|
from ...types.prompt_version_created_by import PromptVersionCreatedBy
|
|
13
|
+
import datetime as dt
|
|
15
14
|
from ...types.prompt_version_organization import PromptVersionOrganization
|
|
16
|
-
from ...
|
|
15
|
+
from ...core.serialization import convert_and_respect_annotation_metadata
|
|
16
|
+
from ...types.inference_run_cost_estimate import InferenceRunCostEstimate
|
|
17
17
|
from ...types.refined_prompt_response import RefinedPromptResponse
|
|
18
|
+
from ...core.client_wrapper import AsyncClientWrapper
|
|
18
19
|
|
|
19
20
|
# this is used as the default value for optional parameters
|
|
20
21
|
OMIT = typing.cast(typing.Any, ...)
|
|
@@ -43,7 +44,7 @@ class VersionsClient:
|
|
|
43
44
|
|
|
44
45
|
Examples
|
|
45
46
|
--------
|
|
46
|
-
from label_studio_sdk
|
|
47
|
+
from label_studio_sdk import LabelStudio
|
|
47
48
|
|
|
48
49
|
client = LabelStudio(
|
|
49
50
|
api_key="YOUR_API_KEY",
|
|
@@ -53,11 +54,19 @@ class VersionsClient:
|
|
|
53
54
|
)
|
|
54
55
|
"""
|
|
55
56
|
_response = self._client_wrapper.httpx_client.request(
|
|
56
|
-
f"api/prompts/{jsonable_encoder(id)}/versions",
|
|
57
|
+
f"api/prompts/{jsonable_encoder(id)}/versions",
|
|
58
|
+
method="GET",
|
|
59
|
+
request_options=request_options,
|
|
57
60
|
)
|
|
58
61
|
try:
|
|
59
62
|
if 200 <= _response.status_code < 300:
|
|
60
|
-
return
|
|
63
|
+
return typing.cast(
|
|
64
|
+
typing.List[PromptVersion],
|
|
65
|
+
parse_obj_as(
|
|
66
|
+
type_=typing.List[PromptVersion], # type: ignore
|
|
67
|
+
object_=_response.json(),
|
|
68
|
+
),
|
|
69
|
+
)
|
|
61
70
|
_response_json = _response.json()
|
|
62
71
|
except JSONDecodeError:
|
|
63
72
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -117,7 +126,7 @@ class VersionsClient:
|
|
|
117
126
|
|
|
118
127
|
Examples
|
|
119
128
|
--------
|
|
120
|
-
from label_studio_sdk
|
|
129
|
+
from label_studio_sdk import LabelStudio
|
|
121
130
|
|
|
122
131
|
client = LabelStudio(
|
|
123
132
|
api_key="YOUR_API_KEY",
|
|
@@ -136,17 +145,27 @@ class VersionsClient:
|
|
|
136
145
|
"prompt": prompt,
|
|
137
146
|
"provider": provider,
|
|
138
147
|
"provider_model_id": provider_model_id,
|
|
139
|
-
"created_by":
|
|
148
|
+
"created_by": convert_and_respect_annotation_metadata(
|
|
149
|
+
object_=created_by, annotation=PromptVersionCreatedBy, direction="write"
|
|
150
|
+
),
|
|
140
151
|
"created_at": created_at,
|
|
141
152
|
"updated_at": updated_at,
|
|
142
|
-
"organization":
|
|
153
|
+
"organization": convert_and_respect_annotation_metadata(
|
|
154
|
+
object_=organization, annotation=PromptVersionOrganization, direction="write"
|
|
155
|
+
),
|
|
143
156
|
},
|
|
144
157
|
request_options=request_options,
|
|
145
158
|
omit=OMIT,
|
|
146
159
|
)
|
|
147
160
|
try:
|
|
148
161
|
if 200 <= _response.status_code < 300:
|
|
149
|
-
return
|
|
162
|
+
return typing.cast(
|
|
163
|
+
PromptVersion,
|
|
164
|
+
parse_obj_as(
|
|
165
|
+
type_=PromptVersion, # type: ignore
|
|
166
|
+
object_=_response.json(),
|
|
167
|
+
),
|
|
168
|
+
)
|
|
150
169
|
_response_json = _response.json()
|
|
151
170
|
except JSONDecodeError:
|
|
152
171
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -176,7 +195,7 @@ class VersionsClient:
|
|
|
176
195
|
|
|
177
196
|
Examples
|
|
178
197
|
--------
|
|
179
|
-
from label_studio_sdk
|
|
198
|
+
from label_studio_sdk import LabelStudio
|
|
180
199
|
|
|
181
200
|
client = LabelStudio(
|
|
182
201
|
api_key="YOUR_API_KEY",
|
|
@@ -193,7 +212,13 @@ class VersionsClient:
|
|
|
193
212
|
)
|
|
194
213
|
try:
|
|
195
214
|
if 200 <= _response.status_code < 300:
|
|
196
|
-
return
|
|
215
|
+
return typing.cast(
|
|
216
|
+
PromptVersion,
|
|
217
|
+
parse_obj_as(
|
|
218
|
+
type_=PromptVersion, # type: ignore
|
|
219
|
+
object_=_response.json(),
|
|
220
|
+
),
|
|
221
|
+
)
|
|
197
222
|
_response_json = _response.json()
|
|
198
223
|
except JSONDecodeError:
|
|
199
224
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -220,7 +245,7 @@ class VersionsClient:
|
|
|
220
245
|
|
|
221
246
|
Examples
|
|
222
247
|
--------
|
|
223
|
-
from label_studio_sdk
|
|
248
|
+
from label_studio_sdk import LabelStudio
|
|
224
249
|
|
|
225
250
|
client = LabelStudio(
|
|
226
251
|
api_key="YOUR_API_KEY",
|
|
@@ -301,7 +326,7 @@ class VersionsClient:
|
|
|
301
326
|
|
|
302
327
|
Examples
|
|
303
328
|
--------
|
|
304
|
-
from label_studio_sdk
|
|
329
|
+
from label_studio_sdk import LabelStudio
|
|
305
330
|
|
|
306
331
|
client = LabelStudio(
|
|
307
332
|
api_key="YOUR_API_KEY",
|
|
@@ -321,17 +346,27 @@ class VersionsClient:
|
|
|
321
346
|
"prompt": prompt,
|
|
322
347
|
"provider": provider,
|
|
323
348
|
"provider_model_id": provider_model_id,
|
|
324
|
-
"created_by":
|
|
349
|
+
"created_by": convert_and_respect_annotation_metadata(
|
|
350
|
+
object_=created_by, annotation=PromptVersionCreatedBy, direction="write"
|
|
351
|
+
),
|
|
325
352
|
"created_at": created_at,
|
|
326
353
|
"updated_at": updated_at,
|
|
327
|
-
"organization":
|
|
354
|
+
"organization": convert_and_respect_annotation_metadata(
|
|
355
|
+
object_=organization, annotation=PromptVersionOrganization, direction="write"
|
|
356
|
+
),
|
|
328
357
|
},
|
|
329
358
|
request_options=request_options,
|
|
330
359
|
omit=OMIT,
|
|
331
360
|
)
|
|
332
361
|
try:
|
|
333
362
|
if 200 <= _response.status_code < 300:
|
|
334
|
-
return
|
|
363
|
+
return typing.cast(
|
|
364
|
+
PromptVersion,
|
|
365
|
+
parse_obj_as(
|
|
366
|
+
type_=PromptVersion, # type: ignore
|
|
367
|
+
object_=_response.json(),
|
|
368
|
+
),
|
|
369
|
+
)
|
|
335
370
|
_response_json = _response.json()
|
|
336
371
|
except JSONDecodeError:
|
|
337
372
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -373,7 +408,7 @@ class VersionsClient:
|
|
|
373
408
|
|
|
374
409
|
Examples
|
|
375
410
|
--------
|
|
376
|
-
from label_studio_sdk
|
|
411
|
+
from label_studio_sdk import LabelStudio
|
|
377
412
|
|
|
378
413
|
client = LabelStudio(
|
|
379
414
|
api_key="YOUR_API_KEY",
|
|
@@ -388,12 +423,21 @@ class VersionsClient:
|
|
|
388
423
|
_response = self._client_wrapper.httpx_client.request(
|
|
389
424
|
f"api/prompts/{jsonable_encoder(prompt_id)}/versions/{jsonable_encoder(version_id)}/cost-estimate",
|
|
390
425
|
method="POST",
|
|
391
|
-
params={
|
|
426
|
+
params={
|
|
427
|
+
"project_id": project_id,
|
|
428
|
+
"project_subset": project_subset,
|
|
429
|
+
},
|
|
392
430
|
request_options=request_options,
|
|
393
431
|
)
|
|
394
432
|
try:
|
|
395
433
|
if 200 <= _response.status_code < 300:
|
|
396
|
-
return
|
|
434
|
+
return typing.cast(
|
|
435
|
+
InferenceRunCostEstimate,
|
|
436
|
+
parse_obj_as(
|
|
437
|
+
type_=InferenceRunCostEstimate, # type: ignore
|
|
438
|
+
object_=_response.json(),
|
|
439
|
+
),
|
|
440
|
+
)
|
|
397
441
|
_response_json = _response.json()
|
|
398
442
|
except JSONDecodeError:
|
|
399
443
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -431,7 +475,7 @@ class VersionsClient:
|
|
|
431
475
|
|
|
432
476
|
Examples
|
|
433
477
|
--------
|
|
434
|
-
from label_studio_sdk
|
|
478
|
+
from label_studio_sdk import LabelStudio
|
|
435
479
|
|
|
436
480
|
client = LabelStudio(
|
|
437
481
|
api_key="YOUR_API_KEY",
|
|
@@ -445,12 +489,20 @@ class VersionsClient:
|
|
|
445
489
|
_response = self._client_wrapper.httpx_client.request(
|
|
446
490
|
f"api/prompts/{jsonable_encoder(prompt_id)}/versions/{jsonable_encoder(version_id)}/refine",
|
|
447
491
|
method="GET",
|
|
448
|
-
params={
|
|
492
|
+
params={
|
|
493
|
+
"refinement_job_id": refinement_job_id,
|
|
494
|
+
},
|
|
449
495
|
request_options=request_options,
|
|
450
496
|
)
|
|
451
497
|
try:
|
|
452
498
|
if 200 <= _response.status_code < 300:
|
|
453
|
-
return
|
|
499
|
+
return typing.cast(
|
|
500
|
+
RefinedPromptResponse,
|
|
501
|
+
parse_obj_as(
|
|
502
|
+
type_=RefinedPromptResponse, # type: ignore
|
|
503
|
+
object_=_response.json(),
|
|
504
|
+
),
|
|
505
|
+
)
|
|
454
506
|
_response_json = _response.json()
|
|
455
507
|
except JSONDecodeError:
|
|
456
508
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -500,7 +552,7 @@ class VersionsClient:
|
|
|
500
552
|
|
|
501
553
|
Examples
|
|
502
554
|
--------
|
|
503
|
-
from label_studio_sdk
|
|
555
|
+
from label_studio_sdk import LabelStudio
|
|
504
556
|
|
|
505
557
|
client = LabelStudio(
|
|
506
558
|
api_key="YOUR_API_KEY",
|
|
@@ -513,18 +565,29 @@ class VersionsClient:
|
|
|
513
565
|
_response = self._client_wrapper.httpx_client.request(
|
|
514
566
|
f"api/prompts/{jsonable_encoder(prompt_id)}/versions/{jsonable_encoder(version_id)}/refine",
|
|
515
567
|
method="POST",
|
|
516
|
-
params={
|
|
568
|
+
params={
|
|
569
|
+
"async": async_,
|
|
570
|
+
},
|
|
517
571
|
json={
|
|
518
572
|
"teacher_model_provider_connection_id": teacher_model_provider_connection_id,
|
|
519
573
|
"teacher_model_name": teacher_model_name,
|
|
520
574
|
"project_id": project_id,
|
|
521
575
|
},
|
|
576
|
+
headers={
|
|
577
|
+
"content-type": "application/json",
|
|
578
|
+
},
|
|
522
579
|
request_options=request_options,
|
|
523
580
|
omit=OMIT,
|
|
524
581
|
)
|
|
525
582
|
try:
|
|
526
583
|
if 200 <= _response.status_code < 300:
|
|
527
|
-
return
|
|
584
|
+
return typing.cast(
|
|
585
|
+
RefinedPromptResponse,
|
|
586
|
+
parse_obj_as(
|
|
587
|
+
type_=RefinedPromptResponse, # type: ignore
|
|
588
|
+
object_=_response.json(),
|
|
589
|
+
),
|
|
590
|
+
)
|
|
528
591
|
_response_json = _response.json()
|
|
529
592
|
except JSONDecodeError:
|
|
530
593
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -556,21 +619,37 @@ class AsyncVersionsClient:
|
|
|
556
619
|
|
|
557
620
|
Examples
|
|
558
621
|
--------
|
|
559
|
-
|
|
622
|
+
import asyncio
|
|
623
|
+
|
|
624
|
+
from label_studio_sdk import AsyncLabelStudio
|
|
560
625
|
|
|
561
626
|
client = AsyncLabelStudio(
|
|
562
627
|
api_key="YOUR_API_KEY",
|
|
563
628
|
)
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
)
|
|
629
|
+
|
|
630
|
+
|
|
631
|
+
async def main() -> None:
|
|
632
|
+
await client.prompts.versions.list(
|
|
633
|
+
id=1,
|
|
634
|
+
)
|
|
635
|
+
|
|
636
|
+
|
|
637
|
+
asyncio.run(main())
|
|
567
638
|
"""
|
|
568
639
|
_response = await self._client_wrapper.httpx_client.request(
|
|
569
|
-
f"api/prompts/{jsonable_encoder(id)}/versions",
|
|
640
|
+
f"api/prompts/{jsonable_encoder(id)}/versions",
|
|
641
|
+
method="GET",
|
|
642
|
+
request_options=request_options,
|
|
570
643
|
)
|
|
571
644
|
try:
|
|
572
645
|
if 200 <= _response.status_code < 300:
|
|
573
|
-
return
|
|
646
|
+
return typing.cast(
|
|
647
|
+
typing.List[PromptVersion],
|
|
648
|
+
parse_obj_as(
|
|
649
|
+
type_=typing.List[PromptVersion], # type: ignore
|
|
650
|
+
object_=_response.json(),
|
|
651
|
+
),
|
|
652
|
+
)
|
|
574
653
|
_response_json = _response.json()
|
|
575
654
|
except JSONDecodeError:
|
|
576
655
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -630,14 +709,22 @@ class AsyncVersionsClient:
|
|
|
630
709
|
|
|
631
710
|
Examples
|
|
632
711
|
--------
|
|
633
|
-
|
|
712
|
+
import asyncio
|
|
713
|
+
|
|
714
|
+
from label_studio_sdk import AsyncLabelStudio
|
|
634
715
|
|
|
635
716
|
client = AsyncLabelStudio(
|
|
636
717
|
api_key="YOUR_API_KEY",
|
|
637
718
|
)
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
)
|
|
719
|
+
|
|
720
|
+
|
|
721
|
+
async def main() -> None:
|
|
722
|
+
await client.prompts.versions.create(
|
|
723
|
+
id=1,
|
|
724
|
+
)
|
|
725
|
+
|
|
726
|
+
|
|
727
|
+
asyncio.run(main())
|
|
641
728
|
"""
|
|
642
729
|
_response = await self._client_wrapper.httpx_client.request(
|
|
643
730
|
f"api/prompts/{jsonable_encoder(id)}/versions",
|
|
@@ -649,17 +736,27 @@ class AsyncVersionsClient:
|
|
|
649
736
|
"prompt": prompt,
|
|
650
737
|
"provider": provider,
|
|
651
738
|
"provider_model_id": provider_model_id,
|
|
652
|
-
"created_by":
|
|
739
|
+
"created_by": convert_and_respect_annotation_metadata(
|
|
740
|
+
object_=created_by, annotation=PromptVersionCreatedBy, direction="write"
|
|
741
|
+
),
|
|
653
742
|
"created_at": created_at,
|
|
654
743
|
"updated_at": updated_at,
|
|
655
|
-
"organization":
|
|
744
|
+
"organization": convert_and_respect_annotation_metadata(
|
|
745
|
+
object_=organization, annotation=PromptVersionOrganization, direction="write"
|
|
746
|
+
),
|
|
656
747
|
},
|
|
657
748
|
request_options=request_options,
|
|
658
749
|
omit=OMIT,
|
|
659
750
|
)
|
|
660
751
|
try:
|
|
661
752
|
if 200 <= _response.status_code < 300:
|
|
662
|
-
return
|
|
753
|
+
return typing.cast(
|
|
754
|
+
PromptVersion,
|
|
755
|
+
parse_obj_as(
|
|
756
|
+
type_=PromptVersion, # type: ignore
|
|
757
|
+
object_=_response.json(),
|
|
758
|
+
),
|
|
759
|
+
)
|
|
663
760
|
_response_json = _response.json()
|
|
664
761
|
except JSONDecodeError:
|
|
665
762
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -689,15 +786,23 @@ class AsyncVersionsClient:
|
|
|
689
786
|
|
|
690
787
|
Examples
|
|
691
788
|
--------
|
|
692
|
-
|
|
789
|
+
import asyncio
|
|
790
|
+
|
|
791
|
+
from label_studio_sdk import AsyncLabelStudio
|
|
693
792
|
|
|
694
793
|
client = AsyncLabelStudio(
|
|
695
794
|
api_key="YOUR_API_KEY",
|
|
696
795
|
)
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
796
|
+
|
|
797
|
+
|
|
798
|
+
async def main() -> None:
|
|
799
|
+
await client.prompts.versions.get(
|
|
800
|
+
id=1,
|
|
801
|
+
version_id=1,
|
|
802
|
+
)
|
|
803
|
+
|
|
804
|
+
|
|
805
|
+
asyncio.run(main())
|
|
701
806
|
"""
|
|
702
807
|
_response = await self._client_wrapper.httpx_client.request(
|
|
703
808
|
f"api/prompts/{jsonable_encoder(id)}/versions/{jsonable_encoder(version_id)}",
|
|
@@ -706,7 +811,13 @@ class AsyncVersionsClient:
|
|
|
706
811
|
)
|
|
707
812
|
try:
|
|
708
813
|
if 200 <= _response.status_code < 300:
|
|
709
|
-
return
|
|
814
|
+
return typing.cast(
|
|
815
|
+
PromptVersion,
|
|
816
|
+
parse_obj_as(
|
|
817
|
+
type_=PromptVersion, # type: ignore
|
|
818
|
+
object_=_response.json(),
|
|
819
|
+
),
|
|
820
|
+
)
|
|
710
821
|
_response_json = _response.json()
|
|
711
822
|
except JSONDecodeError:
|
|
712
823
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -735,15 +846,23 @@ class AsyncVersionsClient:
|
|
|
735
846
|
|
|
736
847
|
Examples
|
|
737
848
|
--------
|
|
738
|
-
|
|
849
|
+
import asyncio
|
|
850
|
+
|
|
851
|
+
from label_studio_sdk import AsyncLabelStudio
|
|
739
852
|
|
|
740
853
|
client = AsyncLabelStudio(
|
|
741
854
|
api_key="YOUR_API_KEY",
|
|
742
855
|
)
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
856
|
+
|
|
857
|
+
|
|
858
|
+
async def main() -> None:
|
|
859
|
+
await client.prompts.versions.delete(
|
|
860
|
+
id=1,
|
|
861
|
+
version_id=1,
|
|
862
|
+
)
|
|
863
|
+
|
|
864
|
+
|
|
865
|
+
asyncio.run(main())
|
|
747
866
|
"""
|
|
748
867
|
_response = await self._client_wrapper.httpx_client.request(
|
|
749
868
|
f"api/prompts/{jsonable_encoder(id)}/versions/{jsonable_encoder(version_id)}",
|
|
@@ -816,15 +935,23 @@ class AsyncVersionsClient:
|
|
|
816
935
|
|
|
817
936
|
Examples
|
|
818
937
|
--------
|
|
819
|
-
|
|
938
|
+
import asyncio
|
|
939
|
+
|
|
940
|
+
from label_studio_sdk import AsyncLabelStudio
|
|
820
941
|
|
|
821
942
|
client = AsyncLabelStudio(
|
|
822
943
|
api_key="YOUR_API_KEY",
|
|
823
944
|
)
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
945
|
+
|
|
946
|
+
|
|
947
|
+
async def main() -> None:
|
|
948
|
+
await client.prompts.versions.update(
|
|
949
|
+
id=1,
|
|
950
|
+
version_id=1,
|
|
951
|
+
)
|
|
952
|
+
|
|
953
|
+
|
|
954
|
+
asyncio.run(main())
|
|
828
955
|
"""
|
|
829
956
|
_response = await self._client_wrapper.httpx_client.request(
|
|
830
957
|
f"api/prompts/{jsonable_encoder(id)}/versions/{jsonable_encoder(version_id)}",
|
|
@@ -836,17 +963,27 @@ class AsyncVersionsClient:
|
|
|
836
963
|
"prompt": prompt,
|
|
837
964
|
"provider": provider,
|
|
838
965
|
"provider_model_id": provider_model_id,
|
|
839
|
-
"created_by":
|
|
966
|
+
"created_by": convert_and_respect_annotation_metadata(
|
|
967
|
+
object_=created_by, annotation=PromptVersionCreatedBy, direction="write"
|
|
968
|
+
),
|
|
840
969
|
"created_at": created_at,
|
|
841
970
|
"updated_at": updated_at,
|
|
842
|
-
"organization":
|
|
971
|
+
"organization": convert_and_respect_annotation_metadata(
|
|
972
|
+
object_=organization, annotation=PromptVersionOrganization, direction="write"
|
|
973
|
+
),
|
|
843
974
|
},
|
|
844
975
|
request_options=request_options,
|
|
845
976
|
omit=OMIT,
|
|
846
977
|
)
|
|
847
978
|
try:
|
|
848
979
|
if 200 <= _response.status_code < 300:
|
|
849
|
-
return
|
|
980
|
+
return typing.cast(
|
|
981
|
+
PromptVersion,
|
|
982
|
+
parse_obj_as(
|
|
983
|
+
type_=PromptVersion, # type: ignore
|
|
984
|
+
object_=_response.json(),
|
|
985
|
+
),
|
|
986
|
+
)
|
|
850
987
|
_response_json = _response.json()
|
|
851
988
|
except JSONDecodeError:
|
|
852
989
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -888,27 +1025,44 @@ class AsyncVersionsClient:
|
|
|
888
1025
|
|
|
889
1026
|
Examples
|
|
890
1027
|
--------
|
|
891
|
-
|
|
1028
|
+
import asyncio
|
|
1029
|
+
|
|
1030
|
+
from label_studio_sdk import AsyncLabelStudio
|
|
892
1031
|
|
|
893
1032
|
client = AsyncLabelStudio(
|
|
894
1033
|
api_key="YOUR_API_KEY",
|
|
895
1034
|
)
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
1035
|
+
|
|
1036
|
+
|
|
1037
|
+
async def main() -> None:
|
|
1038
|
+
await client.prompts.versions.cost_estimate(
|
|
1039
|
+
prompt_id=1,
|
|
1040
|
+
version_id=1,
|
|
1041
|
+
project_id=1,
|
|
1042
|
+
project_subset=1,
|
|
1043
|
+
)
|
|
1044
|
+
|
|
1045
|
+
|
|
1046
|
+
asyncio.run(main())
|
|
902
1047
|
"""
|
|
903
1048
|
_response = await self._client_wrapper.httpx_client.request(
|
|
904
1049
|
f"api/prompts/{jsonable_encoder(prompt_id)}/versions/{jsonable_encoder(version_id)}/cost-estimate",
|
|
905
1050
|
method="POST",
|
|
906
|
-
params={
|
|
1051
|
+
params={
|
|
1052
|
+
"project_id": project_id,
|
|
1053
|
+
"project_subset": project_subset,
|
|
1054
|
+
},
|
|
907
1055
|
request_options=request_options,
|
|
908
1056
|
)
|
|
909
1057
|
try:
|
|
910
1058
|
if 200 <= _response.status_code < 300:
|
|
911
|
-
return
|
|
1059
|
+
return typing.cast(
|
|
1060
|
+
InferenceRunCostEstimate,
|
|
1061
|
+
parse_obj_as(
|
|
1062
|
+
type_=InferenceRunCostEstimate, # type: ignore
|
|
1063
|
+
object_=_response.json(),
|
|
1064
|
+
),
|
|
1065
|
+
)
|
|
912
1066
|
_response_json = _response.json()
|
|
913
1067
|
except JSONDecodeError:
|
|
914
1068
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -946,26 +1100,42 @@ class AsyncVersionsClient:
|
|
|
946
1100
|
|
|
947
1101
|
Examples
|
|
948
1102
|
--------
|
|
949
|
-
|
|
1103
|
+
import asyncio
|
|
1104
|
+
|
|
1105
|
+
from label_studio_sdk import AsyncLabelStudio
|
|
950
1106
|
|
|
951
1107
|
client = AsyncLabelStudio(
|
|
952
1108
|
api_key="YOUR_API_KEY",
|
|
953
1109
|
)
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
1110
|
+
|
|
1111
|
+
|
|
1112
|
+
async def main() -> None:
|
|
1113
|
+
await client.prompts.versions.get_refined_prompt(
|
|
1114
|
+
prompt_id=1,
|
|
1115
|
+
version_id=1,
|
|
1116
|
+
refinement_job_id="refinement_job_id",
|
|
1117
|
+
)
|
|
1118
|
+
|
|
1119
|
+
|
|
1120
|
+
asyncio.run(main())
|
|
959
1121
|
"""
|
|
960
1122
|
_response = await self._client_wrapper.httpx_client.request(
|
|
961
1123
|
f"api/prompts/{jsonable_encoder(prompt_id)}/versions/{jsonable_encoder(version_id)}/refine",
|
|
962
1124
|
method="GET",
|
|
963
|
-
params={
|
|
1125
|
+
params={
|
|
1126
|
+
"refinement_job_id": refinement_job_id,
|
|
1127
|
+
},
|
|
964
1128
|
request_options=request_options,
|
|
965
1129
|
)
|
|
966
1130
|
try:
|
|
967
1131
|
if 200 <= _response.status_code < 300:
|
|
968
|
-
return
|
|
1132
|
+
return typing.cast(
|
|
1133
|
+
RefinedPromptResponse,
|
|
1134
|
+
parse_obj_as(
|
|
1135
|
+
type_=RefinedPromptResponse, # type: ignore
|
|
1136
|
+
object_=_response.json(),
|
|
1137
|
+
),
|
|
1138
|
+
)
|
|
969
1139
|
_response_json = _response.json()
|
|
970
1140
|
except JSONDecodeError:
|
|
971
1141
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -1015,31 +1185,50 @@ class AsyncVersionsClient:
|
|
|
1015
1185
|
|
|
1016
1186
|
Examples
|
|
1017
1187
|
--------
|
|
1018
|
-
|
|
1188
|
+
import asyncio
|
|
1189
|
+
|
|
1190
|
+
from label_studio_sdk import AsyncLabelStudio
|
|
1019
1191
|
|
|
1020
1192
|
client = AsyncLabelStudio(
|
|
1021
1193
|
api_key="YOUR_API_KEY",
|
|
1022
1194
|
)
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1195
|
+
|
|
1196
|
+
|
|
1197
|
+
async def main() -> None:
|
|
1198
|
+
await client.prompts.versions.refine_prompt(
|
|
1199
|
+
prompt_id=1,
|
|
1200
|
+
version_id=1,
|
|
1201
|
+
)
|
|
1202
|
+
|
|
1203
|
+
|
|
1204
|
+
asyncio.run(main())
|
|
1027
1205
|
"""
|
|
1028
1206
|
_response = await self._client_wrapper.httpx_client.request(
|
|
1029
1207
|
f"api/prompts/{jsonable_encoder(prompt_id)}/versions/{jsonable_encoder(version_id)}/refine",
|
|
1030
1208
|
method="POST",
|
|
1031
|
-
params={
|
|
1209
|
+
params={
|
|
1210
|
+
"async": async_,
|
|
1211
|
+
},
|
|
1032
1212
|
json={
|
|
1033
1213
|
"teacher_model_provider_connection_id": teacher_model_provider_connection_id,
|
|
1034
1214
|
"teacher_model_name": teacher_model_name,
|
|
1035
1215
|
"project_id": project_id,
|
|
1036
1216
|
},
|
|
1217
|
+
headers={
|
|
1218
|
+
"content-type": "application/json",
|
|
1219
|
+
},
|
|
1037
1220
|
request_options=request_options,
|
|
1038
1221
|
omit=OMIT,
|
|
1039
1222
|
)
|
|
1040
1223
|
try:
|
|
1041
1224
|
if 200 <= _response.status_code < 300:
|
|
1042
|
-
return
|
|
1225
|
+
return typing.cast(
|
|
1226
|
+
RefinedPromptResponse,
|
|
1227
|
+
parse_obj_as(
|
|
1228
|
+
type_=RefinedPromptResponse, # type: ignore
|
|
1229
|
+
object_=_response.json(),
|
|
1230
|
+
),
|
|
1231
|
+
)
|
|
1043
1232
|
_response_json = _response.json()
|
|
1044
1233
|
except JSONDecodeError:
|
|
1045
1234
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|