lightning-sdk 0.2.12__py3-none-any.whl → 0.2.13__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.
- lightning_sdk/__init__.py +1 -1
- lightning_sdk/api/llm_api.py +17 -5
- lightning_sdk/api/studio_api.py +17 -0
- lightning_sdk/cli/entrypoint.py +1 -1
- lightning_sdk/cli/serve.py +149 -39
- lightning_sdk/deployment/deployment.py +2 -2
- lightning_sdk/lightning_cloud/openapi/__init__.py +6 -0
- lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
- lightning_sdk/lightning_cloud/openapi/api/git_credentials_service_api.py +497 -0
- lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +14 -5
- lightning_sdk/lightning_cloud/openapi/models/__init__.py +5 -0
- lightning_sdk/lightning_cloud/openapi/models/deployments_id_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_create_git_credentials_request.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_git_credentials_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_state.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_git_credentials.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_git_credentials_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_job_resources_response.py +15 -15
- lightning_sdk/lightning_cloud/openapi/models/v1_nebius_direct_v1.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +53 -1
- lightning_sdk/llm/llm.py +92 -30
- lightning_sdk/plugin.py +19 -0
- lightning_sdk/studio.py +33 -0
- {lightning_sdk-0.2.12.dist-info → lightning_sdk-0.2.13.dist-info}/METADATA +1 -1
- {lightning_sdk-0.2.12.dist-info → lightning_sdk-0.2.13.dist-info}/RECORD +34 -28
- /lightning_sdk/cli/{docker.py → docker_cli.py} +0 -0
- {lightning_sdk-0.2.12.dist-info → lightning_sdk-0.2.13.dist-info}/LICENSE +0 -0
- {lightning_sdk-0.2.12.dist-info → lightning_sdk-0.2.13.dist-info}/WHEEL +0 -0
- {lightning_sdk-0.2.12.dist-info → lightning_sdk-0.2.13.dist-info}/entry_points.txt +0 -0
- {lightning_sdk-0.2.12.dist-info → lightning_sdk-0.2.13.dist-info}/top_level.txt +0 -0
|
@@ -85,6 +85,7 @@ class V1UserFeatures(object):
|
|
|
85
85
|
'mmt_strategy_selector': 'bool',
|
|
86
86
|
'multicloud_saas': 'bool',
|
|
87
87
|
'multiple_studio_versions': 'bool',
|
|
88
|
+
'nerf_fs_nonpaying': 'bool',
|
|
88
89
|
'org_admin_alerts': 'bool',
|
|
89
90
|
'org_level_member_permissions': 'bool',
|
|
90
91
|
'org_usage_limits': 'bool',
|
|
@@ -110,6 +111,7 @@ class V1UserFeatures(object):
|
|
|
110
111
|
'slurm_machine_selector': 'bool',
|
|
111
112
|
'stop_ide_container_on_shutdown': 'bool',
|
|
112
113
|
'studio_config': 'bool',
|
|
114
|
+
'studio_deployment': 'bool',
|
|
113
115
|
'studio_on_stop': 'bool',
|
|
114
116
|
'studio_version_visibility': 'bool',
|
|
115
117
|
'studios_dashboard': 'bool',
|
|
@@ -167,6 +169,7 @@ class V1UserFeatures(object):
|
|
|
167
169
|
'mmt_strategy_selector': 'mmtStrategySelector',
|
|
168
170
|
'multicloud_saas': 'multicloudSaas',
|
|
169
171
|
'multiple_studio_versions': 'multipleStudioVersions',
|
|
172
|
+
'nerf_fs_nonpaying': 'nerfFsNonpaying',
|
|
170
173
|
'org_admin_alerts': 'orgAdminAlerts',
|
|
171
174
|
'org_level_member_permissions': 'orgLevelMemberPermissions',
|
|
172
175
|
'org_usage_limits': 'orgUsageLimits',
|
|
@@ -192,6 +195,7 @@ class V1UserFeatures(object):
|
|
|
192
195
|
'slurm_machine_selector': 'slurmMachineSelector',
|
|
193
196
|
'stop_ide_container_on_shutdown': 'stopIdeContainerOnShutdown',
|
|
194
197
|
'studio_config': 'studioConfig',
|
|
198
|
+
'studio_deployment': 'studioDeployment',
|
|
195
199
|
'studio_on_stop': 'studioOnStop',
|
|
196
200
|
'studio_version_visibility': 'studioVersionVisibility',
|
|
197
201
|
'studios_dashboard': 'studiosDashboard',
|
|
@@ -204,7 +208,7 @@ class V1UserFeatures(object):
|
|
|
204
208
|
'weka': 'weka'
|
|
205
209
|
}
|
|
206
210
|
|
|
207
|
-
def __init__(self, affiliate_links: 'bool' =None, agents_v2: 'bool' =None, ai_hub_monetization: 'bool' =None, auto_fast_load: 'bool' =None, auto_join_orgs: 'bool' =None, b2c_experience: 'bool' =None, byoc_litcr: 'bool' =None, cap_add: 'list[str]' =None, cap_drop: 'list[str]' =None, capacity_reservation_byoc: 'bool' =None, capacity_reservation_dry_run: 'bool' =None, chat_models: 'bool' =None, cloud_space_environment_templates: 'bool' =None, code_tab: 'bool' =None, collab_screen_sharing: 'bool' =None, concurrent_gpu_limit: 'bool' =None, cost_attribution_settings: 'bool' =None, custom_app_domain: 'bool' =None, custom_instance_types: 'bool' =None, datasets: 'bool' =None, default_one_cluster: 'bool' =None, deployment_alerts: 'bool' =None, deployment_persistent_disk: 'bool' =None, dgx_cloud: 'bool' =None, doc_helper_chat: 'bool' =None, docs_agent: 'bool' =None, drive_v2: 'bool' =None, enable_storage_limits: 'bool' =None, enterprise_compute_admin: 'bool' =None, fair_share: 'bool' =None, featured_studios_admin: 'bool' =None, filestore: 'bool' =None, gcp_local_disk_binding: 'bool' =None, inactive_notify_delete: 'bool' =None, instant_capacity_reservation: 'bool' =None, job_artifacts_v2: 'bool' =None, lambda_labs: 'bool' =None, landing_studios: 'bool' =None, lit_logger: 'bool' =None, marketplace: 'bool' =None, mmt_fault_tolerance: 'bool' =None, mmt_strategy_selector: 'bool' =None, multicloud_saas: 'bool' =None, multiple_studio_versions: 'bool' =None, org_admin_alerts: 'bool' =None, org_level_member_permissions: 'bool' =None, org_usage_limits: 'bool' =None, pipelines: 'bool' =None, plugin_distributed: 'bool' =None, plugin_inference: 'bool' =None, plugin_label_studio: 'bool' =None, plugin_langflow: 'bool' =None, plugin_python_profiler: 'bool' =None, plugin_service: 'bool' =None, plugin_sweeps: 'bool' =None, pricing_updates: 'bool' =None, product_generator: 'bool' =None, project_selector: 'bool' =None, publish_pipelines: 'bool' =None, r2_data_connections: 'bool' =None, restartable_jobs: 'bool' =None, runnable_public_studio_page: 'bool' =None, security_docs: 'bool' =None, show_dev_admin: 'bool' =None, single_wallet: 'bool' =None, slurm: 'bool' =None, slurm_machine_selector: 'bool' =None, stop_ide_container_on_shutdown: 'bool' =None, studio_config: 'bool' =None, studio_on_stop: 'bool' =None, studio_version_visibility: 'bool' =None, studios_dashboard: 'bool' =None, studios_dashboard_system_metrics: 'bool' =None, teamspace_storage_tab: 'bool' =None, trainium2: 'bool' =None, use_rclone_mounts_only: 'bool' =None, voltage_park: 'bool' =None, vultr: 'bool' =None, weka: 'bool' =None): # noqa: E501
|
|
211
|
+
def __init__(self, affiliate_links: 'bool' =None, agents_v2: 'bool' =None, ai_hub_monetization: 'bool' =None, auto_fast_load: 'bool' =None, auto_join_orgs: 'bool' =None, b2c_experience: 'bool' =None, byoc_litcr: 'bool' =None, cap_add: 'list[str]' =None, cap_drop: 'list[str]' =None, capacity_reservation_byoc: 'bool' =None, capacity_reservation_dry_run: 'bool' =None, chat_models: 'bool' =None, cloud_space_environment_templates: 'bool' =None, code_tab: 'bool' =None, collab_screen_sharing: 'bool' =None, concurrent_gpu_limit: 'bool' =None, cost_attribution_settings: 'bool' =None, custom_app_domain: 'bool' =None, custom_instance_types: 'bool' =None, datasets: 'bool' =None, default_one_cluster: 'bool' =None, deployment_alerts: 'bool' =None, deployment_persistent_disk: 'bool' =None, dgx_cloud: 'bool' =None, doc_helper_chat: 'bool' =None, docs_agent: 'bool' =None, drive_v2: 'bool' =None, enable_storage_limits: 'bool' =None, enterprise_compute_admin: 'bool' =None, fair_share: 'bool' =None, featured_studios_admin: 'bool' =None, filestore: 'bool' =None, gcp_local_disk_binding: 'bool' =None, inactive_notify_delete: 'bool' =None, instant_capacity_reservation: 'bool' =None, job_artifacts_v2: 'bool' =None, lambda_labs: 'bool' =None, landing_studios: 'bool' =None, lit_logger: 'bool' =None, marketplace: 'bool' =None, mmt_fault_tolerance: 'bool' =None, mmt_strategy_selector: 'bool' =None, multicloud_saas: 'bool' =None, multiple_studio_versions: 'bool' =None, nerf_fs_nonpaying: 'bool' =None, org_admin_alerts: 'bool' =None, org_level_member_permissions: 'bool' =None, org_usage_limits: 'bool' =None, pipelines: 'bool' =None, plugin_distributed: 'bool' =None, plugin_inference: 'bool' =None, plugin_label_studio: 'bool' =None, plugin_langflow: 'bool' =None, plugin_python_profiler: 'bool' =None, plugin_service: 'bool' =None, plugin_sweeps: 'bool' =None, pricing_updates: 'bool' =None, product_generator: 'bool' =None, project_selector: 'bool' =None, publish_pipelines: 'bool' =None, r2_data_connections: 'bool' =None, restartable_jobs: 'bool' =None, runnable_public_studio_page: 'bool' =None, security_docs: 'bool' =None, show_dev_admin: 'bool' =None, single_wallet: 'bool' =None, slurm: 'bool' =None, slurm_machine_selector: 'bool' =None, stop_ide_container_on_shutdown: 'bool' =None, studio_config: 'bool' =None, studio_deployment: 'bool' =None, studio_on_stop: 'bool' =None, studio_version_visibility: 'bool' =None, studios_dashboard: 'bool' =None, studios_dashboard_system_metrics: 'bool' =None, teamspace_storage_tab: 'bool' =None, trainium2: 'bool' =None, use_rclone_mounts_only: 'bool' =None, voltage_park: 'bool' =None, vultr: 'bool' =None, weka: 'bool' =None): # noqa: E501
|
|
208
212
|
"""V1UserFeatures - a model defined in Swagger""" # noqa: E501
|
|
209
213
|
self._affiliate_links = None
|
|
210
214
|
self._agents_v2 = None
|
|
@@ -250,6 +254,7 @@ class V1UserFeatures(object):
|
|
|
250
254
|
self._mmt_strategy_selector = None
|
|
251
255
|
self._multicloud_saas = None
|
|
252
256
|
self._multiple_studio_versions = None
|
|
257
|
+
self._nerf_fs_nonpaying = None
|
|
253
258
|
self._org_admin_alerts = None
|
|
254
259
|
self._org_level_member_permissions = None
|
|
255
260
|
self._org_usage_limits = None
|
|
@@ -275,6 +280,7 @@ class V1UserFeatures(object):
|
|
|
275
280
|
self._slurm_machine_selector = None
|
|
276
281
|
self._stop_ide_container_on_shutdown = None
|
|
277
282
|
self._studio_config = None
|
|
283
|
+
self._studio_deployment = None
|
|
278
284
|
self._studio_on_stop = None
|
|
279
285
|
self._studio_version_visibility = None
|
|
280
286
|
self._studios_dashboard = None
|
|
@@ -374,6 +380,8 @@ class V1UserFeatures(object):
|
|
|
374
380
|
self.multicloud_saas = multicloud_saas
|
|
375
381
|
if multiple_studio_versions is not None:
|
|
376
382
|
self.multiple_studio_versions = multiple_studio_versions
|
|
383
|
+
if nerf_fs_nonpaying is not None:
|
|
384
|
+
self.nerf_fs_nonpaying = nerf_fs_nonpaying
|
|
377
385
|
if org_admin_alerts is not None:
|
|
378
386
|
self.org_admin_alerts = org_admin_alerts
|
|
379
387
|
if org_level_member_permissions is not None:
|
|
@@ -424,6 +432,8 @@ class V1UserFeatures(object):
|
|
|
424
432
|
self.stop_ide_container_on_shutdown = stop_ide_container_on_shutdown
|
|
425
433
|
if studio_config is not None:
|
|
426
434
|
self.studio_config = studio_config
|
|
435
|
+
if studio_deployment is not None:
|
|
436
|
+
self.studio_deployment = studio_deployment
|
|
427
437
|
if studio_on_stop is not None:
|
|
428
438
|
self.studio_on_stop = studio_on_stop
|
|
429
439
|
if studio_version_visibility is not None:
|
|
@@ -1369,6 +1379,27 @@ class V1UserFeatures(object):
|
|
|
1369
1379
|
|
|
1370
1380
|
self._multiple_studio_versions = multiple_studio_versions
|
|
1371
1381
|
|
|
1382
|
+
@property
|
|
1383
|
+
def nerf_fs_nonpaying(self) -> 'bool':
|
|
1384
|
+
"""Gets the nerf_fs_nonpaying of this V1UserFeatures. # noqa: E501
|
|
1385
|
+
|
|
1386
|
+
|
|
1387
|
+
:return: The nerf_fs_nonpaying of this V1UserFeatures. # noqa: E501
|
|
1388
|
+
:rtype: bool
|
|
1389
|
+
"""
|
|
1390
|
+
return self._nerf_fs_nonpaying
|
|
1391
|
+
|
|
1392
|
+
@nerf_fs_nonpaying.setter
|
|
1393
|
+
def nerf_fs_nonpaying(self, nerf_fs_nonpaying: 'bool'):
|
|
1394
|
+
"""Sets the nerf_fs_nonpaying of this V1UserFeatures.
|
|
1395
|
+
|
|
1396
|
+
|
|
1397
|
+
:param nerf_fs_nonpaying: The nerf_fs_nonpaying of this V1UserFeatures. # noqa: E501
|
|
1398
|
+
:type: bool
|
|
1399
|
+
"""
|
|
1400
|
+
|
|
1401
|
+
self._nerf_fs_nonpaying = nerf_fs_nonpaying
|
|
1402
|
+
|
|
1372
1403
|
@property
|
|
1373
1404
|
def org_admin_alerts(self) -> 'bool':
|
|
1374
1405
|
"""Gets the org_admin_alerts of this V1UserFeatures. # noqa: E501
|
|
@@ -1894,6 +1925,27 @@ class V1UserFeatures(object):
|
|
|
1894
1925
|
|
|
1895
1926
|
self._studio_config = studio_config
|
|
1896
1927
|
|
|
1928
|
+
@property
|
|
1929
|
+
def studio_deployment(self) -> 'bool':
|
|
1930
|
+
"""Gets the studio_deployment of this V1UserFeatures. # noqa: E501
|
|
1931
|
+
|
|
1932
|
+
|
|
1933
|
+
:return: The studio_deployment of this V1UserFeatures. # noqa: E501
|
|
1934
|
+
:rtype: bool
|
|
1935
|
+
"""
|
|
1936
|
+
return self._studio_deployment
|
|
1937
|
+
|
|
1938
|
+
@studio_deployment.setter
|
|
1939
|
+
def studio_deployment(self, studio_deployment: 'bool'):
|
|
1940
|
+
"""Sets the studio_deployment of this V1UserFeatures.
|
|
1941
|
+
|
|
1942
|
+
|
|
1943
|
+
:param studio_deployment: The studio_deployment of this V1UserFeatures. # noqa: E501
|
|
1944
|
+
:type: bool
|
|
1945
|
+
"""
|
|
1946
|
+
|
|
1947
|
+
self._studio_deployment = studio_deployment
|
|
1948
|
+
|
|
1897
1949
|
@property
|
|
1898
1950
|
def studio_on_stop(self) -> 'bool':
|
|
1899
1951
|
"""Gets the studio_on_stop of this V1UserFeatures. # noqa: E501
|
lightning_sdk/llm/llm.py
CHANGED
|
@@ -1,41 +1,64 @@
|
|
|
1
|
-
from typing import Dict, List, Optional, Set, Tuple
|
|
1
|
+
from typing import Dict, List, Optional, Set, Tuple, Union
|
|
2
2
|
|
|
3
|
+
from lightning_sdk.api import UserApi
|
|
3
4
|
from lightning_sdk.api.llm_api import LLMApi
|
|
5
|
+
from lightning_sdk.lightning_cloud.login import Auth
|
|
4
6
|
from lightning_sdk.lightning_cloud.openapi import V1Assistant
|
|
7
|
+
from lightning_sdk.lightning_cloud.openapi.rest import ApiException
|
|
8
|
+
from lightning_sdk.organization import Organization
|
|
9
|
+
from lightning_sdk.user import User
|
|
10
|
+
from lightning_sdk.utils.resolve import _resolve_org, _resolve_user
|
|
5
11
|
|
|
6
12
|
|
|
7
13
|
class LLM:
|
|
8
|
-
def __init__(
|
|
14
|
+
def __init__(
|
|
15
|
+
self,
|
|
16
|
+
name: str,
|
|
17
|
+
user: Union[str, "User", None] = None,
|
|
18
|
+
org: Union[str, "Organization", None] = None,
|
|
19
|
+
) -> None:
|
|
20
|
+
self._auth = Auth()
|
|
21
|
+
self._user = None
|
|
22
|
+
|
|
23
|
+
try:
|
|
24
|
+
self._auth.authenticate()
|
|
25
|
+
self._user = User(name=UserApi()._get_user_by_id(self._auth.user_id).username)
|
|
26
|
+
except ConnectionError as e:
|
|
27
|
+
raise e
|
|
28
|
+
|
|
29
|
+
self._name = name
|
|
30
|
+
try:
|
|
31
|
+
self._user = _resolve_user(self._user or user)
|
|
32
|
+
except ValueError:
|
|
33
|
+
self._user = None
|
|
34
|
+
|
|
9
35
|
self._name = name
|
|
10
36
|
self._org, self._model_name = self._parse_model_name(name)
|
|
37
|
+
try:
|
|
38
|
+
# check if it is a org model
|
|
39
|
+
self._org = _resolve_org(self._org or org)
|
|
40
|
+
except ApiException:
|
|
41
|
+
self._org = None
|
|
42
|
+
|
|
11
43
|
self._llm_api = LLMApi()
|
|
12
|
-
self.
|
|
13
|
-
self.
|
|
14
|
-
self.
|
|
44
|
+
self._public_models = self._build_model_lookup(self._get_public_models())
|
|
45
|
+
self._org_models = self._build_model_lookup(self._get_org_models())
|
|
46
|
+
self._user_models = self._build_model_lookup(self._get_user_models())
|
|
15
47
|
self._model = self._get_model()
|
|
48
|
+
self._conversations = {}
|
|
16
49
|
|
|
17
50
|
def _parse_model_name(self, name: str) -> Tuple[str, str]:
|
|
18
51
|
parts = name.split("/")
|
|
19
|
-
if len(parts)
|
|
20
|
-
|
|
21
|
-
|
|
52
|
+
if len(parts) == 1:
|
|
53
|
+
# a user model or a org model
|
|
54
|
+
return None, parts[0]
|
|
55
|
+
if len(parts) == 2:
|
|
56
|
+
return parts[0], parts[1]
|
|
57
|
+
raise ValueError(
|
|
58
|
+
f"Model name must be in the format `organization/model_name` or `model_name`, but got '{name}'."
|
|
59
|
+
)
|
|
22
60
|
|
|
23
61
|
def _build_model_lookup(self, endpoints: List[str]) -> Dict[str, Set[str]]:
|
|
24
|
-
return {endpoint.id: {model.name for model in endpoint.models_metadata} for endpoint in endpoints}
|
|
25
|
-
|
|
26
|
-
def _model_exists(self) -> bool:
|
|
27
|
-
if self._org not in self._models:
|
|
28
|
-
raise ValueError(
|
|
29
|
-
f"Model provider {self._org} not found. Available models providers: {list(self._models.keys())}"
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
if self._model_name not in self._models[self._org]:
|
|
33
|
-
raise ValueError(
|
|
34
|
-
f"Model {self._model_name} not found. Available models by {self._org}: {self._models[self._org]}"
|
|
35
|
-
)
|
|
36
|
-
return True
|
|
37
|
-
|
|
38
|
-
def _build_public_model_lookup(self, endpoints: List[str]) -> Dict[str, Set[str]]:
|
|
39
62
|
result = {}
|
|
40
63
|
for endpoint in endpoints:
|
|
41
64
|
result.setdefault(endpoint.model, []).append(endpoint)
|
|
@@ -44,13 +67,52 @@ class LLM:
|
|
|
44
67
|
def _get_public_models(self) -> List[str]:
|
|
45
68
|
return self._llm_api.get_public_models()
|
|
46
69
|
|
|
47
|
-
def
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
70
|
+
def _get_org_models(self) -> List[str]:
|
|
71
|
+
return self._llm_api.get_org_models(self._org.id) if self._org else []
|
|
72
|
+
|
|
73
|
+
def _get_user_models(self) -> List[str]:
|
|
74
|
+
return self._llm_api.get_user_models(self._user.id) if self._user else []
|
|
75
|
+
|
|
76
|
+
def _get_model(self) -> V1Assistant:
|
|
51
77
|
# TODO how to handle multiple models with same model type? For now, just use the first one
|
|
52
|
-
|
|
78
|
+
if self._model_name in self._public_models:
|
|
79
|
+
return self._public_models.get(self._model_name)[0]
|
|
80
|
+
if self._model_name in self._org_models:
|
|
81
|
+
return self._org_models.get(self._model_name)[0]
|
|
82
|
+
if self._model_name in self._user_models:
|
|
83
|
+
return self._user_models.get(self._model_name)[0]
|
|
84
|
+
|
|
85
|
+
available_models = []
|
|
86
|
+
if self._public_models:
|
|
87
|
+
available_models.append(f"Public Models: {', '.join(self._public_models.keys())}")
|
|
88
|
+
|
|
89
|
+
if self._org and self._org_models:
|
|
90
|
+
available_models.append(f"Org ({self._org.name}) Models: {', '.join(self._org_models.keys())}")
|
|
53
91
|
|
|
54
|
-
|
|
55
|
-
|
|
92
|
+
if self._user and self._user_models:
|
|
93
|
+
available_models.append(f"User ({self._user.name}) Models: {', '.join(self._user_models.keys())}")
|
|
94
|
+
|
|
95
|
+
available_models_str = "\n".join(available_models)
|
|
96
|
+
raise ValueError(f"Model '{self._model_name}' not found. \nAvailable models: \n{available_models_str}")
|
|
97
|
+
|
|
98
|
+
def chat(
|
|
99
|
+
self,
|
|
100
|
+
prompt: str,
|
|
101
|
+
system_prompt: Optional[str] = None,
|
|
102
|
+
max_completion_tokens: Optional[int] = 500,
|
|
103
|
+
conversation: Optional[str] = None,
|
|
104
|
+
) -> str:
|
|
105
|
+
conversation_id = self._conversations.get(conversation) if conversation else None
|
|
106
|
+
output = self._llm_api.start_conversation(
|
|
107
|
+
prompt=prompt,
|
|
108
|
+
system_prompt=system_prompt,
|
|
109
|
+
max_completion_tokens=max_completion_tokens,
|
|
110
|
+
assistant_id=self._model.id,
|
|
111
|
+
conversation_id=conversation_id,
|
|
112
|
+
)
|
|
113
|
+
if conversation and not conversation_id:
|
|
114
|
+
self._conversations[conversation] = output.conversation_id
|
|
56
115
|
return output.choices[0].delta.content
|
|
116
|
+
|
|
117
|
+
def list_conversations(self) -> List[Dict]:
|
|
118
|
+
return list(self._conversations.keys())
|
lightning_sdk/plugin.py
CHANGED
|
@@ -395,6 +395,25 @@ class SlurmJobsPlugin(_Plugin):
|
|
|
395
395
|
return resp
|
|
396
396
|
|
|
397
397
|
|
|
398
|
+
class CustomPortPlugin(_Plugin):
|
|
399
|
+
"""Plugin handling the port of a given service."""
|
|
400
|
+
|
|
401
|
+
_plugin_run_name = "Custom Port"
|
|
402
|
+
_slug_name = "custom-port"
|
|
403
|
+
|
|
404
|
+
def run(self, name: Optional[str] = None, port: int = 8000) -> str:
|
|
405
|
+
"""Starts a new port to the given Studio."""
|
|
406
|
+
if name is None:
|
|
407
|
+
name = _run_name("port")
|
|
408
|
+
|
|
409
|
+
return self._studio._studio_api.start_new_port(
|
|
410
|
+
teamspace_id=self._studio._teamspace.id,
|
|
411
|
+
studio_id=self._studio._studio.id,
|
|
412
|
+
name=name,
|
|
413
|
+
port=port,
|
|
414
|
+
)
|
|
415
|
+
|
|
416
|
+
|
|
398
417
|
@runtime_checkable
|
|
399
418
|
class _RunnablePlugin(Protocol):
|
|
400
419
|
_plugin_run_name: str
|
lightning_sdk/studio.py
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import glob
|
|
1
2
|
import os
|
|
2
3
|
import warnings
|
|
3
4
|
from typing import TYPE_CHECKING, Any, Dict, Mapping, Optional, Tuple, Union
|
|
4
5
|
|
|
6
|
+
from tqdm.auto import tqdm
|
|
7
|
+
|
|
5
8
|
from lightning_sdk.api.studio_api import StudioApi
|
|
6
9
|
from lightning_sdk.api.utils import _machine_to_compute_name
|
|
7
10
|
from lightning_sdk.constants import _LIGHTNING_DEBUG
|
|
@@ -265,6 +268,34 @@ class Studio:
|
|
|
265
268
|
progress_bar=progress_bar,
|
|
266
269
|
)
|
|
267
270
|
|
|
271
|
+
def upload_folder(self, folder_path: str, remote_path: Optional[str] = None, progress_bar: bool = True) -> None:
|
|
272
|
+
"""Uploads a given folder to a remote path on the Studio."""
|
|
273
|
+
if folder_path is None:
|
|
274
|
+
raise ValueError("Cannot upload a folder that is None.")
|
|
275
|
+
folder_path = os.path.normpath(folder_path)
|
|
276
|
+
if os.path.isfile(folder_path):
|
|
277
|
+
raise NotADirectoryError(f"Cannot upload a file as a folder. '{folder_path}' is a file.")
|
|
278
|
+
if not os.path.exists(folder_path):
|
|
279
|
+
raise NotADirectoryError(f"Cannot upload a folder that does not exist. '{folder_path}' is not a directory.")
|
|
280
|
+
all_files = []
|
|
281
|
+
for fp in glob.glob(os.path.join(folder_path, "**"), recursive=True):
|
|
282
|
+
if not os.path.isfile(fp):
|
|
283
|
+
continue
|
|
284
|
+
rel_path = os.path.relpath(fp, folder_path)
|
|
285
|
+
remote_file = os.path.join(remote_path, rel_path) if remote_path else rel_path
|
|
286
|
+
all_files.append((fp, remote_file))
|
|
287
|
+
|
|
288
|
+
if progress_bar:
|
|
289
|
+
progress_bar = tqdm(total=len(all_files), desc="Uploading files", unit="file")
|
|
290
|
+
for local_file, remote_path in sorted(all_files, key=lambda p: p[1]):
|
|
291
|
+
if progress_bar:
|
|
292
|
+
progress_bar.set_description(f"Uploading {local_file}")
|
|
293
|
+
self.upload_file(local_file, remote_path=remote_path, progress_bar=False)
|
|
294
|
+
if progress_bar:
|
|
295
|
+
progress_bar.update(1)
|
|
296
|
+
if progress_bar:
|
|
297
|
+
progress_bar.close()
|
|
298
|
+
|
|
268
299
|
def download_file(self, remote_path: str, file_path: Optional[str] = None) -> None:
|
|
269
300
|
"""Downloads a file from the Studio to a given target path."""
|
|
270
301
|
if file_path is None:
|
|
@@ -445,6 +476,7 @@ class Studio:
|
|
|
445
476
|
def _add_plugin(self, plugin_name: str) -> None:
|
|
446
477
|
"""Adds the just installed plugin to the internal list of plugins."""
|
|
447
478
|
from lightning_sdk.plugin import (
|
|
479
|
+
CustomPortPlugin,
|
|
448
480
|
InferenceServerPlugin,
|
|
449
481
|
JobsPlugin,
|
|
450
482
|
MultiMachineTrainingPlugin,
|
|
@@ -458,6 +490,7 @@ class Studio:
|
|
|
458
490
|
"jobs": JobsPlugin,
|
|
459
491
|
"multi-machine-training": MultiMachineTrainingPlugin,
|
|
460
492
|
"inference-server": InferenceServerPlugin,
|
|
493
|
+
"custom-port": CustomPortPlugin,
|
|
461
494
|
}.get(plugin_name, Plugin)
|
|
462
495
|
|
|
463
496
|
description = self._list_installed_plugins()[plugin_name]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
docs/source/conf.py,sha256=r8yX20eC-4mHhMTd0SbQb5TlSWHhO6wnJ0VJ_FBFpag,13249
|
|
2
|
-
lightning_sdk/__init__.py,sha256=
|
|
2
|
+
lightning_sdk/__init__.py,sha256=JvA56wHJ6zj6udKxn_l-gvmB-UR22UVw-vr3KzUtE2w,1105
|
|
3
3
|
lightning_sdk/agents.py,sha256=ly6Ma1j0ZgGPFyvPvMN28JWiB9dATIstFa5XM8pMi6I,1577
|
|
4
4
|
lightning_sdk/ai_hub.py,sha256=iI1vNhgcz_Ff1c3rN1ogN7dK-r-HXRj6NMtS2cA14UA,6925
|
|
5
5
|
lightning_sdk/constants.py,sha256=ztl1PTUBULnqTf3DyKUSJaV_O20hNtUYT6XvAYIrmIk,749
|
|
@@ -9,10 +9,10 @@ lightning_sdk/machine.py,sha256=EMr-ulyYEYhIkKFnGBOofnFf4asndTSeoOQxlyd3xW4,3632
|
|
|
9
9
|
lightning_sdk/models.py,sha256=tPFiiDQiDsFhfStcVPH5_PcujbBEfKS2IB5FS9NfwZk,7838
|
|
10
10
|
lightning_sdk/organization.py,sha256=WCfzdgjtvY1_A07DnxOpp74V2JR2gQwtXbIEcFDnoVU,1232
|
|
11
11
|
lightning_sdk/owner.py,sha256=t5svD2it4C9pbSpVuG9WJL46CYi37JXNziwnXxhiU5U,1361
|
|
12
|
-
lightning_sdk/plugin.py,sha256=
|
|
12
|
+
lightning_sdk/plugin.py,sha256=f3P5-xZY6x-MX0Fs2z_Q2erSxPSiHZARO0BVkCezHw4,15192
|
|
13
13
|
lightning_sdk/serve.py,sha256=hxNAAbrhm483NxXbbHiXHtSUmvkuAe70wUHyAAK414Q,11654
|
|
14
14
|
lightning_sdk/status.py,sha256=lLGAuSvXBoXQFEEsEYwdCi0RcSNatUn5OPjJVjDtoM0,386
|
|
15
|
-
lightning_sdk/studio.py,sha256=
|
|
15
|
+
lightning_sdk/studio.py,sha256=vIDUG4uzE_t0oq2MXJ5vBKi1NGzxbWJ1Sf1UBerIn1g,21565
|
|
16
16
|
lightning_sdk/teamspace.py,sha256=GL0fiZ7oz3Uz1qftDmSFZScpuUm3H4kBcm4abv06xLM,16533
|
|
17
17
|
lightning_sdk/user.py,sha256=vdn8pZqkAZO0-LoRsBdg0TckRKtd_H3QF4gpiZcl4iY,1130
|
|
18
18
|
lightning_sdk/api/__init__.py,sha256=Qn2VVRvir_gO7w4yxGLkZY-R3T7kdiTPKgQ57BhIA9k,413
|
|
@@ -22,11 +22,11 @@ lightning_sdk/api/cluster_api.py,sha256=OxAhEdNt-9bYQ-u3MCADdVGsilXf2e7Wcxvb73Cm
|
|
|
22
22
|
lightning_sdk/api/deployment_api.py,sha256=8ZH2q08oc2jnPlPEBwZXmtv4DyHRZ9BnK1FxR_EztMA,24013
|
|
23
23
|
lightning_sdk/api/job_api.py,sha256=_mMAI_BG_48i-BLwCP_U72zgmM5zYa2KUZ7u66HWkIc,13568
|
|
24
24
|
lightning_sdk/api/lit_container_api.py,sha256=jCJVwd-3MNjejL9FyvH89pzt-SeG3G8qCJD16iTMJAQ,11454
|
|
25
|
-
lightning_sdk/api/llm_api.py,sha256=
|
|
25
|
+
lightning_sdk/api/llm_api.py,sha256=SzDwMluWIOLV-UIhD8ouQMYMUq91QidVJ9-DzTacNCE,1644
|
|
26
26
|
lightning_sdk/api/mmt_api.py,sha256=-v7ATab-ThAM-HRClS92Ehxuu9MlBfdKWWFCGvVUHiM,8962
|
|
27
27
|
lightning_sdk/api/org_api.py,sha256=Ze3z_ATVrukobujV5YdC42DKj45Vuwl7X52q_Vr-o3U,803
|
|
28
28
|
lightning_sdk/api/pipeline_api.py,sha256=P5P9C6qOpyBGU0t5N68h1LuFAsAKmPPgkac6uObrYKw,1676
|
|
29
|
-
lightning_sdk/api/studio_api.py,sha256=
|
|
29
|
+
lightning_sdk/api/studio_api.py,sha256=HAJrkd7u5m1PP5XoXakF_EsvdF9_atkJSBlHuy24_YU,26605
|
|
30
30
|
lightning_sdk/api/teamspace_api.py,sha256=syN_FK8nHhLl3FG9Oxe8L6aK5YbOMn_GQlkijhTRJA8,13147
|
|
31
31
|
lightning_sdk/api/user_api.py,sha256=sL7RIjjtmZmvCZWx7BBZslhj1BeNh4Idn-RVcdmf7M0,2598
|
|
32
32
|
lightning_sdk/api/utils.py,sha256=3KvVmucfrUIPV0HC0y5DHhWB0b3D5tvLFXSrDU6XjcI,23833
|
|
@@ -38,9 +38,9 @@ lightning_sdk/cli/configure.py,sha256=B84BtYU0ccKvc1qfK1kqn7sbnHaKW_5Po54k-m7lKH
|
|
|
38
38
|
lightning_sdk/cli/connect.py,sha256=qsKb_NMvaA4xrESjMEApM5lyfuHJApe3eCeeI8ttrmQ,975
|
|
39
39
|
lightning_sdk/cli/create.py,sha256=L7QSeiiP_YjjtaAm76EmNGBw--1f6vPMveTrjcjMDp0,2820
|
|
40
40
|
lightning_sdk/cli/delete.py,sha256=EIaLB_iCw435xiBDQyd2OuMyCSj86oVdsj8C9btI1us,3871
|
|
41
|
-
lightning_sdk/cli/
|
|
41
|
+
lightning_sdk/cli/docker_cli.py,sha256=EozLC4qnvHhgukmnu35itfI5n7v-abCpwKPkPy3eOV4,997
|
|
42
42
|
lightning_sdk/cli/download.py,sha256=ZuqGouAWmao8RIm7cQvshpFoEGSLWOBo5inrZFREvpY,7601
|
|
43
|
-
lightning_sdk/cli/entrypoint.py,sha256=
|
|
43
|
+
lightning_sdk/cli/entrypoint.py,sha256=meb97tbey_FMJqhw60o9ZKx_U4c8nHVg82G55xMtA7U,2679
|
|
44
44
|
lightning_sdk/cli/exceptions.py,sha256=QUF3OMAMZwBikvlusimSHSBjb6ywvHpfAumJBEaodSw,169
|
|
45
45
|
lightning_sdk/cli/generate.py,sha256=8mjm5tMYIXMoN2X_eEKpwBIUcCWaARiQAmreh-9LIBg,1575
|
|
46
46
|
lightning_sdk/cli/inspect.py,sha256=GA3XDC3DSkqJ4B5NQR9qmGGvkP0K8Sk90xZhzTGzC1o,1614
|
|
@@ -50,7 +50,7 @@ lightning_sdk/cli/list.py,sha256=bH_rX9J_Ubb9dkF2fpoZf0zMXH9YoEjcm63gk5v0zs4,109
|
|
|
50
50
|
lightning_sdk/cli/mmts_menu.py,sha256=HUXo3ZoZ3fWOCNWTQWoJgUlFXYq5uVm_6uFjAq7BDe8,2219
|
|
51
51
|
lightning_sdk/cli/open.py,sha256=sgMLWBnkXdIq8H9XK_rph2bye3b07AKTJBQIk9fCGVc,1937
|
|
52
52
|
lightning_sdk/cli/run.py,sha256=8JZiDrKwDhlaTOJd6qq2mCWJRqKm6shCWLzpbmFYIkE,13929
|
|
53
|
-
lightning_sdk/cli/serve.py,sha256=
|
|
53
|
+
lightning_sdk/cli/serve.py,sha256=R2-uefXM6Ijdt8qsjdy4x_txGeqecUZc0E6s2uj-GG0,25344
|
|
54
54
|
lightning_sdk/cli/start.py,sha256=jUk52lkEFC_fqiEPkwM8GwE68WMNEtzBuzjkvr3POd0,1840
|
|
55
55
|
lightning_sdk/cli/stop.py,sha256=5nCrUe1BONpX1nKNhbSFqLaXXKaRhSO7PvM1BVYLgn4,2864
|
|
56
56
|
lightning_sdk/cli/studios_menu.py,sha256=TA9rO6_fFHGMz0Nt4rJ6iV80X5pZE4xShrSiyXoU-oQ,4129
|
|
@@ -58,7 +58,7 @@ lightning_sdk/cli/switch.py,sha256=qLvDoQRldCNgO1XvIGg-i-GyqnkHVb_U1-X4svqeNNU,1
|
|
|
58
58
|
lightning_sdk/cli/teamspace_menu.py,sha256=C3g3spTKgtMwoK7pnooy0MBPz4AKhFjcObkvZyZ4v04,3797
|
|
59
59
|
lightning_sdk/cli/upload.py,sha256=jQbWVlwxsDp3YnFtZTXFeK_PqDssNpyFzL8wV3NkWk8,13849
|
|
60
60
|
lightning_sdk/deployment/__init__.py,sha256=dXsa4psDzFYFklsq3JC-2V_L4FQjGZnQAf-ZiVlqG9c,545
|
|
61
|
-
lightning_sdk/deployment/deployment.py,sha256=
|
|
61
|
+
lightning_sdk/deployment/deployment.py,sha256=ikf3hXWnNARzGchMWdboJpt0jKSwfLf8LSwLPo8tbNE,20029
|
|
62
62
|
lightning_sdk/job/__init__.py,sha256=1MxjQ6rHkyUHCypSW9RuXuVMVH11WiqhIXcU2LCFMwE,64
|
|
63
63
|
lightning_sdk/job/base.py,sha256=TS5KavtfBAFbLbNqqumEizY9edjO1joSmtUdcO5CThQ,17748
|
|
64
64
|
lightning_sdk/job/job.py,sha256=1Xf0ne4wwXpkb_GJgWD8mfueJZoKR8G4lC5T6OXijlw,13075
|
|
@@ -72,11 +72,11 @@ lightning_sdk/lightning_cloud/login.py,sha256=02f3itTEMJ4wKpVxOfAAfWfigVeX8G51eg
|
|
|
72
72
|
lightning_sdk/lightning_cloud/rest_client.py,sha256=UZoHDJQ0qUu7LMGgaecBsAHzT3-auCcvSx18hQcN89E,6767
|
|
73
73
|
lightning_sdk/lightning_cloud/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
74
74
|
lightning_sdk/lightning_cloud/cli/__main__.py,sha256=aHrigVV0qIp74MuYTdN6uO8a9Xp6E1aOwdR8w1fG-7c,688
|
|
75
|
-
lightning_sdk/lightning_cloud/openapi/__init__.py,sha256=
|
|
75
|
+
lightning_sdk/lightning_cloud/openapi/__init__.py,sha256=GfqeBOo_WzcN9NWa3PaKMMUZq9xOhNfvL1Ozbk3357Y,101331
|
|
76
76
|
lightning_sdk/lightning_cloud/openapi/api_client.py,sha256=pUTQMNcZmH4BhpnuAXuT7wnegaxaX26bzdEWjdoLeTo,25630
|
|
77
77
|
lightning_sdk/lightning_cloud/openapi/configuration.py,sha256=H4PTkRz1QAonxKHbx3LG-gDEtdQPAxMO-bVfMfbUfJg,8306
|
|
78
78
|
lightning_sdk/lightning_cloud/openapi/rest.py,sha256=ZPPr6ZkBp6LtuAsiUU7D8Pz8Dt9ECbEM_26Ov74tdpw,13322
|
|
79
|
-
lightning_sdk/lightning_cloud/openapi/api/__init__.py,sha256=
|
|
79
|
+
lightning_sdk/lightning_cloud/openapi/api/__init__.py,sha256=vH3Zjdq-AeY4zf1nQ2B6v7bpHVbpSc4Ju0TUlNoi7ws,3843
|
|
80
80
|
lightning_sdk/lightning_cloud/openapi/api/agent_service_api.py,sha256=Va0QcK6cO3rgHxV16xI-fnq08mgZe_eFQl8mgyaZols,56603
|
|
81
81
|
lightning_sdk/lightning_cloud/openapi/api/analytics_service_api.py,sha256=0BccCXj-fpDmrWImCQzPlHz7T8Hrw-vuwPCY-ieWt8Q,5263
|
|
82
82
|
lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py,sha256=EUu77mGdZps3DvQ7eFefhzh7oNZCddrA3-XbrjcLv_E,92801
|
|
@@ -91,7 +91,8 @@ lightning_sdk/lightning_cloud/openapi/api/deployment_templates_service_api.py,sh
|
|
|
91
91
|
lightning_sdk/lightning_cloud/openapi/api/endpoint_service_api.py,sha256=IgERziSMhxLxK5ATpsNpNs5Ybpu577mCH7f6yBCr7uw,113191
|
|
92
92
|
lightning_sdk/lightning_cloud/openapi/api/experiments_service_api.py,sha256=lYQt6nvbaqFnRsWFf-jL3Fou-A7Hx6qgrpRgHI3eARQ,9844
|
|
93
93
|
lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py,sha256=IRAf6X1wvhcW3dilmjedPGhKklIGUj3DP6HyQ5QS5WI,34592
|
|
94
|
-
lightning_sdk/lightning_cloud/openapi/api/
|
|
94
|
+
lightning_sdk/lightning_cloud/openapi/api/git_credentials_service_api.py,sha256=tz7xhdaeHoR9_KEx8vR0SyFLUsjElrcwl9hBaT_X_mc,19757
|
|
95
|
+
lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py,sha256=ZoVVqr7Ek3M0TBvoDwhjP12IOxDLeYBj-vjMswDvI_s,195736
|
|
95
96
|
lightning_sdk/lightning_cloud/openapi/api/lightningapp_instance_service_api.py,sha256=Y9_XweSozZL_a8qCZTOgqW9cwIOx7FTMMU-ZX0eAJqs,77205
|
|
96
97
|
lightning_sdk/lightning_cloud/openapi/api/lightningapp_v2_service_api.py,sha256=hORPARfDsJLtJOgieRzI_OWKMF9wEhET141vl6FPEBs,12909
|
|
97
98
|
lightning_sdk/lightning_cloud/openapi/api/lightningwork_service_api.py,sha256=dXKzbr4I7TDW-PFsqgiaaw4RtYrzB1X6NZB_hxgMnts,43747
|
|
@@ -114,7 +115,7 @@ lightning_sdk/lightning_cloud/openapi/api/ssh_public_key_service_api.py,sha256=z
|
|
|
114
115
|
lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py,sha256=U5atWnTx33jVy5BF1R3yAKZfxmOWyzdG14W8ZRjUhAw,65552
|
|
115
116
|
lightning_sdk/lightning_cloud/openapi/api/studio_jobs_service_api.py,sha256=VJ7VcSvdmGbPkgmQZhaOSR47olcNPMzRlmT5J5uKsng,27877
|
|
116
117
|
lightning_sdk/lightning_cloud/openapi/api/user_service_api.py,sha256=MR0jvZY0I-fFEPNpcSqrN3vl9XjrEn_D7_gYhwYeMrc,66796
|
|
117
|
-
lightning_sdk/lightning_cloud/openapi/models/__init__.py,sha256=
|
|
118
|
+
lightning_sdk/lightning_cloud/openapi/models/__init__.py,sha256=3Ph1jbZ5FCazPgMRWo2aSONfMqCWLBN3Sx3l30sRW4Y,95723
|
|
118
119
|
lightning_sdk/lightning_cloud/openapi/models/affiliatelinks_id_body.py,sha256=X087AkCafKp2g8E2MR5ghU3pxCNNcoehZJttvuVfdC8,4274
|
|
119
120
|
lightning_sdk/lightning_cloud/openapi/models/agentmanagedendpoints_id_body.py,sha256=NzKKkTs2PtMSIJJYxeh3aDBj-djBrI_qATGz7n5Oqdk,9234
|
|
120
121
|
lightning_sdk/lightning_cloud/openapi/models/agents_id_body.py,sha256=vYRXPGrwpj8nsSVwlaf3c6d5ysuvpNOXrfeUOKZn0dM,21508
|
|
@@ -153,7 +154,7 @@ lightning_sdk/lightning_cloud/openapi/models/data_connection_mount_data_connecti
|
|
|
153
154
|
lightning_sdk/lightning_cloud/openapi/models/dataset_id_versions_body.py,sha256=hZLk1R65CrOxUvth_ve7Ae9py6pxyBCWQ5giaGjp13c,4467
|
|
154
155
|
lightning_sdk/lightning_cloud/openapi/models/dataset_id_visibility_body.py,sha256=NQXzoa55Sc4JuEh_go4OkCy74c-ApW40yEcC5IJnD5U,4614
|
|
155
156
|
lightning_sdk/lightning_cloud/openapi/models/datasets_id_body.py,sha256=OcNzTWEbLGF36eY-yImNCmTwY4ZMX2P8yPuHAvc6KSk,5533
|
|
156
|
-
lightning_sdk/lightning_cloud/openapi/models/deployments_id_body.py,sha256=
|
|
157
|
+
lightning_sdk/lightning_cloud/openapi/models/deployments_id_body.py,sha256=XEMhwlLto_pKI3CnPWKrzTTjPwUWhf56LWIfov6hHqo,22329
|
|
157
158
|
lightning_sdk/lightning_cloud/openapi/models/deploymenttemplates_id_body.py,sha256=Q-5xLj7_Rt6xt5uPLGzeyQCLiwd98PpaNrY5fMr0Dog,15829
|
|
158
159
|
lightning_sdk/lightning_cloud/openapi/models/endpoints_id_body.py,sha256=-Nv94Q8XoAT3tfYVhcjutpihfoNS2b2STbTHJr1gomo,12309
|
|
159
160
|
lightning_sdk/lightning_cloud/openapi/models/experiment_name_variant_name_body.py,sha256=f-pBOnWAd03BreivwAA0D1P1wEBGq2jaC1nK-GtGxVA,3910
|
|
@@ -346,7 +347,7 @@ lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_state.py,sha256=yLpc
|
|
|
346
347
|
lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_version.py,sha256=ZQSAgV4qEeByenlyFqX_kZBy51_yVPVqNGhrCUvZ3_g,20082
|
|
347
348
|
lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_version_publication.py,sha256=n1oHRq_UjYSP_kY2lmMjtqhHUu0H-wHQ5XiDJUEvB6s,6386
|
|
348
349
|
lightning_sdk/lightning_cloud/openapi/models/v1_cloudflare_v1.py,sha256=-t3nXyqIn0VnqTRFlFuN3aUnPJRqtRH4gjaPylWwRXk,6869
|
|
349
|
-
lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py,sha256=
|
|
350
|
+
lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py,sha256=UZqx7u-6dtbETKJ1huh5qmhPizvvSoD-7dQJ5UajQZ4,45251
|
|
350
351
|
lightning_sdk/lightning_cloud/openapi/models/v1_cluster_availability.py,sha256=WrS0UpcTqqCu79ny5yOBJ16RNs5B4AQSXbniWE7iez0,7103
|
|
351
352
|
lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py,sha256=vpwujOiKIrB1PKg7nzCFs7rvi3wL_Q1OBV5KyTTDNG0,15208
|
|
352
353
|
lightning_sdk/lightning_cloud/openapi/models/v1_cluster_deletion_options.py,sha256=GyhAXDpVtfXfaUybBE0aRRvJ6d3DfD7VV3xH_fgQOlE,4859
|
|
@@ -354,8 +355,8 @@ lightning_sdk/lightning_cloud/openapi/models/v1_cluster_encryption_key.py,sha256
|
|
|
354
355
|
lightning_sdk/lightning_cloud/openapi/models/v1_cluster_names.py,sha256=Xs3mhVEiuJVbkKwMarY7iB_NwKY9_sK0xGgXDMuo0cs,3637
|
|
355
356
|
lightning_sdk/lightning_cloud/openapi/models/v1_cluster_proxy.py,sha256=4LbHvINs2CwQnuPg_uWw03GNNRT_wdqX42m_Zlqg2dY,5547
|
|
356
357
|
lightning_sdk/lightning_cloud/openapi/models/v1_cluster_resource_tag.py,sha256=U6DfNNAIBZQ8SOF-2RXp2-CgmxaT1XJrNaCnZzaqjHg,4274
|
|
357
|
-
lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py,sha256=
|
|
358
|
-
lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py,sha256=
|
|
358
|
+
lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py,sha256=REWM1JHmP82lm9gtxjTyd6hm8K36NuVQmQM2K56n1gU,18293
|
|
359
|
+
lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py,sha256=vJh6RJh1SmJ8Bk3SMYfk8PQOgVv-Eym1zym65IiC7B0,27594
|
|
359
360
|
lightning_sdk/lightning_cloud/openapi/models/v1_cluster_state.py,sha256=Mvl3dEhdtb7-rU4wUsR_-YOMpd7wE8uUAyXv3MiOcOk,3331
|
|
360
361
|
lightning_sdk/lightning_cloud/openapi/models/v1_cluster_status.py,sha256=n9NhKdWg51q_7d4VM9Bsk5aakctU-o3R-0YmdzTsMW0,13267
|
|
361
362
|
lightning_sdk/lightning_cloud/openapi/models/v1_cluster_tagging_options.py,sha256=1HfSu9xll5O67YAQrF02ji21LYlZGP8_Afs0djIcIgU,7490
|
|
@@ -397,6 +398,7 @@ lightning_sdk/lightning_cloud/openapi/models/v1_create_cluster_request.py,sha256
|
|
|
397
398
|
lightning_sdk/lightning_cloud/openapi/models/v1_create_cluster_response.py,sha256=5HIu7Vr1yUyk8jW4zwhYn1vZ4eHlRGhMOH9IPTdCnFc,6532
|
|
398
399
|
lightning_sdk/lightning_cloud/openapi/models/v1_create_deployment_request.py,sha256=rr7sIMsx-_TE7_MNvcjZ7pbbOp4hpC91iZoHSbodKkI,15162
|
|
399
400
|
lightning_sdk/lightning_cloud/openapi/models/v1_create_deployment_template_request.py,sha256=bQDEeax61gx0N0uyhI7k3rbcvMKOICFzF_HjqGvseX4,18031
|
|
401
|
+
lightning_sdk/lightning_cloud/openapi/models/v1_create_git_credentials_request.py,sha256=lsEgWinvsLnFZ9ryw0gOSTvr4xQFHqNpHhXdvJuZ9z0,5467
|
|
400
402
|
lightning_sdk/lightning_cloud/openapi/models/v1_create_job_request.py,sha256=Slg1avZSx1Xqeg88Car25vxxkqCIQ-z7Z7SfNSaueRU,5773
|
|
401
403
|
lightning_sdk/lightning_cloud/openapi/models/v1_create_lit_dataset_multi_part_upload_response.py,sha256=fyvEOyxYwipZyExbVIalLgn2XntapZ6uM416AXV3Mek,3950
|
|
402
404
|
lightning_sdk/lightning_cloud/openapi/models/v1_create_lit_page_request.py,sha256=AsxDH7tFC5HloDF2O0DOA3OzLGyzOzg5mrMVcbLFOxU,8785
|
|
@@ -443,6 +445,7 @@ lightning_sdk/lightning_cloud/openapi/models/v1_delete_deployment_release_respon
|
|
|
443
445
|
lightning_sdk/lightning_cloud/openapi/models/v1_delete_deployment_response.py,sha256=TE1u49hhJ_lPDQn3GZWDCr473IGJn5NWtBgM452L-CU,3046
|
|
444
446
|
lightning_sdk/lightning_cloud/openapi/models/v1_delete_endpoint_response.py,sha256=x6WcwHMZelRHu44RDAMLipb4GPPPnNOh4Xhoz0Q4crI,3034
|
|
445
447
|
lightning_sdk/lightning_cloud/openapi/models/v1_delete_file_endpoint_response.py,sha256=yBb8WAHX82Au0VsG9anIgPXo5W44eriEZl3_Snjq2gM,4684
|
|
448
|
+
lightning_sdk/lightning_cloud/openapi/models/v1_delete_git_credentials_response.py,sha256=X3sj8YRjNlhRTHp5XjczBQJ22rMFudmbLzaGKrMhsqg,3070
|
|
446
449
|
lightning_sdk/lightning_cloud/openapi/models/v1_delete_index_response.py,sha256=jb6auD4hLVGMm-6uZ9cj3dP6D21eY_XB01v-m3HqmTA,3016
|
|
447
450
|
lightning_sdk/lightning_cloud/openapi/models/v1_delete_job_response.py,sha256=e-nWOBNgJ9vmoGg_spLGzYAUipctVHbUYnaw4p_Uj-8,3004
|
|
448
451
|
lightning_sdk/lightning_cloud/openapi/models/v1_delete_lightning_run_response.py,sha256=ayTBMGTLLBer_Si1nyCvLLsQUYotRTKU78n6xEPAnss,3058
|
|
@@ -481,7 +484,7 @@ lightning_sdk/lightning_cloud/openapi/models/v1_delete_studio_job_response.py,sh
|
|
|
481
484
|
lightning_sdk/lightning_cloud/openapi/models/v1_delete_user_slurm_job_response.py,sha256=kmy5RJKy63bRzBcWdMk00-vT3m2lVs05cic7jfU1JyQ,3058
|
|
482
485
|
lightning_sdk/lightning_cloud/openapi/models/v1_dependency_cache_state.py,sha256=VL2MY_XvHWAd8toG-myqZlhuoEwjAIX1cemNSXxqk-k,3210
|
|
483
486
|
lightning_sdk/lightning_cloud/openapi/models/v1_dependency_file_info.py,sha256=Fyh7eRcxFJ8Y4LHA3uJe_D5F9RhOxT4ChllHph_ryfQ,4571
|
|
484
|
-
lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py,sha256=
|
|
487
|
+
lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py,sha256=NjUbic_upyEvDUUsl9nsRUdamgq45o66UFaJ7-Tdb1k,23080
|
|
485
488
|
lightning_sdk/lightning_cloud/openapi/models/v1_deployment_api.py,sha256=hfvtI_8dSwM76baVcMwNC8DOxZlmdixASKW83--83Cg,8434
|
|
486
489
|
lightning_sdk/lightning_cloud/openapi/models/v1_deployment_details.py,sha256=Q-JXOyEw88bVUmTCLmdBJ6txzNI2qsAQQltCOcOg4lg,5127
|
|
487
490
|
lightning_sdk/lightning_cloud/openapi/models/v1_deployment_event.py,sha256=XDpq8DM8sN2UKCIlBWGEk-vzjGQGNoc0KjyRcCzDqZ4,9994
|
|
@@ -490,7 +493,7 @@ lightning_sdk/lightning_cloud/openapi/models/v1_deployment_metrics.py,sha256=WSs
|
|
|
490
493
|
lightning_sdk/lightning_cloud/openapi/models/v1_deployment_performance.py,sha256=N-v8pFBVvJIAt0opbygd33R014Xeef3hoO4-ksT2yn4,10336
|
|
491
494
|
lightning_sdk/lightning_cloud/openapi/models/v1_deployment_release.py,sha256=7sFF4w_XHV-bYPUGNRaADx2JInR8gxzPCmJ45NBRVfU,9430
|
|
492
495
|
lightning_sdk/lightning_cloud/openapi/models/v1_deployment_spec.py,sha256=v1p0ryc6KgwRwXSJYjFLe4jzczpOMSiMws3JLjEoxGY,5922
|
|
493
|
-
lightning_sdk/lightning_cloud/openapi/models/v1_deployment_state.py,sha256=
|
|
496
|
+
lightning_sdk/lightning_cloud/openapi/models/v1_deployment_state.py,sha256=iWgBa7EW5reIRWQNpov0EnygO6sxB5Hy3SXfslezz_o,3334
|
|
494
497
|
lightning_sdk/lightning_cloud/openapi/models/v1_deployment_status.py,sha256=7D9Ux2N5LWmNXxrynoXPThExLD8FAVOzIVtIKLqYQfo,8939
|
|
495
498
|
lightning_sdk/lightning_cloud/openapi/models/v1_deployment_strategy.py,sha256=aewPM7IDeAEEx2HoMySQ2hcIrme2X6UvEENih_kzjl0,4593
|
|
496
499
|
lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template.py,sha256=292s0GdPjfkC_QJ3UbgvdMALDwy0WDfTwCBuQEzyuqs,23129
|
|
@@ -585,6 +588,7 @@ lightning_sdk/lightning_cloud/openapi/models/v1_get_user_notification_preference
|
|
|
585
588
|
lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py,sha256=4aguhh3Xiv2RK5cvdZmFcOKUo2UOgG_0oEOspfgRWFE,32165
|
|
586
589
|
lightning_sdk/lightning_cloud/openapi/models/v1_get_user_storage_breakdown_response.py,sha256=igCbjaeZXEbiPAa9cUjwG4cPUivt-7MiiWYikELHwsw,9983
|
|
587
590
|
lightning_sdk/lightning_cloud/openapi/models/v1_get_user_storage_response.py,sha256=0k1scTY1IAeKr3p0r7eV_xWRE7Nx54doTGygiQQPkbM,6879
|
|
591
|
+
lightning_sdk/lightning_cloud/openapi/models/v1_git_credentials.py,sha256=siIFxkpP0VVU53XVSj9ZHB3JWvUr9qOFliSDDx28i-g,6705
|
|
588
592
|
lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1.py,sha256=x9LFc6NuL8yleoHmDlDinzNgmeOLwY6ElQs1xeoOTv4,16867
|
|
589
593
|
lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1_status.py,sha256=Md6rMiUCMY4oDVE2IYaALD_I0o2PQIKF-9628IGmTyY,3791
|
|
590
594
|
lightning_sdk/lightning_cloud/openapi/models/v1_gpu_system_metrics.py,sha256=io_MkTCTYi6qmYw8KqFZf2zHx8jgBsPKsEwqjr2BG0U,7722
|
|
@@ -677,8 +681,9 @@ lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_slurm_jobs_respo
|
|
|
677
681
|
lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_snowflake_response.py,sha256=bggwyXLJ1WtQ_w6CgN0ZWqjVhJZizlCfiYdtKO2ILbs,4314
|
|
678
682
|
lightning_sdk/lightning_cloud/openapi/models/v1_list_gallery_components_response.py,sha256=tLqiz_KmNmiweh8Ib-JGYkm9ZNkMNqkKIgG906i076I,3997
|
|
679
683
|
lightning_sdk/lightning_cloud/openapi/models/v1_list_gallery_lightningapps_response.py,sha256=aNhF5e26GOGcd0RKb2RSwVWQD46SHE5zxG3DsYdExow,3871
|
|
684
|
+
lightning_sdk/lightning_cloud/openapi/models/v1_list_git_credentials_response.py,sha256=5vCdMRWWLy2eU0bpY7zYPqcY2feXggmSreaYhPxxJac,3975
|
|
680
685
|
lightning_sdk/lightning_cloud/openapi/models/v1_list_job_files_response.py,sha256=6qBf9aO-mAd8ADTLMrHmRqFqDJ7UmC6SE9Sdspj7qPs,6436
|
|
681
|
-
lightning_sdk/lightning_cloud/openapi/models/v1_list_job_resources_response.py,sha256=
|
|
686
|
+
lightning_sdk/lightning_cloud/openapi/models/v1_list_job_resources_response.py,sha256=hRHytYlp1_SMG7brOM8wC5LjUlqET_-vQE3hgSbr6y8,3976
|
|
682
687
|
lightning_sdk/lightning_cloud/openapi/models/v1_list_jobs_response.py,sha256=OqR_9hF5CkWYe7BZl6H1wV4haGzkTi8jI8YgWsrH_Yw,5435
|
|
683
688
|
lightning_sdk/lightning_cloud/openapi/models/v1_list_joinable_organizations_response.py,sha256=wr52oD_zhlXxJr8SbYkxeUqpIUaBSeuS5VMhw7fz-Y0,4300
|
|
684
689
|
lightning_sdk/lightning_cloud/openapi/models/v1_list_lightning_run_response.py,sha256=kcKkI2iD3IzujDoLh-FnzwvZ_syqdz2jlDEYVdR0kLY,3803
|
|
@@ -772,6 +777,7 @@ lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_fault_toleranc
|
|
|
772
777
|
lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_state.py,sha256=ZLmTHpgo5Gu-aAd6n32RDofqlGY83ERzvOnkr0R8D4I,3479
|
|
773
778
|
lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_status.py,sha256=yoOMJoszmdfEoUP7mzjl3PTK9dq6JUi8yXrxJljrY-0,9540
|
|
774
779
|
lightning_sdk/lightning_cloud/openapi/models/v1_named_get_logger_metrics.py,sha256=VygKKjSPGIbWT9RxbmJfOSlNR-Fq12yKj8wT_SHd2ZQ,3966
|
|
780
|
+
lightning_sdk/lightning_cloud/openapi/models/v1_nebius_direct_v1.py,sha256=FXjBRxuNMVlNopuedGI5DV8y6Boy3CKoen6Odg9CnVk,4513
|
|
775
781
|
lightning_sdk/lightning_cloud/openapi/models/v1_network_config.py,sha256=bHDZVIsqgiSi7eBf72RunvrLR-d-4b9S7oDMAZFBvCM,5476
|
|
776
782
|
lightning_sdk/lightning_cloud/openapi/models/v1_new_feature.py,sha256=FMsA5E3T_94-IoZ7Dv-8N3agoZwmP7wTeFO443L_2Jw,10716
|
|
777
783
|
lightning_sdk/lightning_cloud/openapi/models/v1_notification_preference.py,sha256=W46XDkg7j9X8V9uRu1LHcPK1jSPTSzBVVEmbJ4FVofY,6930
|
|
@@ -952,7 +958,7 @@ lightning_sdk/lightning_cloud/openapi/models/v1_upstream_open_ai.py,sha256=jt1qQ
|
|
|
952
958
|
lightning_sdk/lightning_cloud/openapi/models/v1_usage.py,sha256=Z5cZrO1keYqrrUnvx5NSt5K-4-pGsUtqvTKn65_1oAk,14329
|
|
953
959
|
lightning_sdk/lightning_cloud/openapi/models/v1_usage_details.py,sha256=U7qC698Xj5tb3D93ZskG6sDf3lTXE13UTlGeDTvtRU4,14062
|
|
954
960
|
lightning_sdk/lightning_cloud/openapi/models/v1_usage_report.py,sha256=iH67BcONBSLYzcZpGpKWSOzJTCpuqYt7FU4OUs8BJ9k,6076
|
|
955
|
-
lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py,sha256=
|
|
961
|
+
lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py,sha256=sXMi0JaKTyB5p_p7W61T62wX2rvtPhYOkKCvTouTJFw,73225
|
|
956
962
|
lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_compute_config.py,sha256=3jeJfpbBpYY2B2Ao2j2N93CMO2CnvmPqndE4Lw3ZfMA,13056
|
|
957
963
|
lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_flow_compute_config.py,sha256=3WpZ-lf7xPwuYyQDMdP7Uc6-dh3vf5TaaUlcMfesfMk,5208
|
|
958
964
|
lightning_sdk/lightning_cloud/openapi/models/v1_user_slurm_job_action_response.py,sha256=BdNzXH8Vsf5PHjl9Rd-TVkpAgx1YC9rf8LD0js-ba20,3058
|
|
@@ -993,7 +999,7 @@ lightning_sdk/lightning_cloud/utils/dataset.py,sha256=4nUspe8iAaRPgSYpXA2uAQCgyd
|
|
|
993
999
|
lightning_sdk/lightning_cloud/utils/name_generator.py,sha256=MkciuA10332V0mcE2PxLIiwWomWE0Fm_gNGK01vwRr4,58046
|
|
994
1000
|
lightning_sdk/lightning_cloud/utils/network.py,sha256=axPgl8rhyPcPjxiztDxyksfxax3VNg2OXL5F5Uc81b4,406
|
|
995
1001
|
lightning_sdk/llm/__init__.py,sha256=ErZva0HqN2iPtK_6hI6GN7A_HPGNrHo3wYh7vyFdO3Q,57
|
|
996
|
-
lightning_sdk/llm/llm.py,sha256=
|
|
1002
|
+
lightning_sdk/llm/llm.py,sha256=HPE6tGyURprELaI-zjvB_3I7mFDZT4g2SRDj180t-Qk,4610
|
|
997
1003
|
lightning_sdk/mmt/__init__.py,sha256=ExMu90-96bGBnyp5h0CErQszUGB1-PcjC4-R8_NYbeY,117
|
|
998
1004
|
lightning_sdk/mmt/base.py,sha256=B3HC-c82bPHprEZh1mhLCPCrCE8BOKqwIhY7xCF9CXg,15152
|
|
999
1005
|
lightning_sdk/mmt/mmt.py,sha256=swdGP1DOM42a_QmmY1vg3--6ZBDiC4zToAzU9Eycv4U,13446
|
|
@@ -1011,9 +1017,9 @@ lightning_sdk/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
|
|
|
1011
1017
|
lightning_sdk/utils/dynamic.py,sha256=glUTO1JC9APtQ6Gr9SO02a3zr56-sPAXM5C3NrTpgyQ,1959
|
|
1012
1018
|
lightning_sdk/utils/enum.py,sha256=h2JRzqoBcSlUdanFHmkj_j5DleBHAu1esQYUsdNI-hU,4106
|
|
1013
1019
|
lightning_sdk/utils/resolve.py,sha256=6qlBUkOmcFTjhQx_CAGfnvWBbMYp6XrCV_sX_IqplLE,6748
|
|
1014
|
-
lightning_sdk-0.2.
|
|
1015
|
-
lightning_sdk-0.2.
|
|
1016
|
-
lightning_sdk-0.2.
|
|
1017
|
-
lightning_sdk-0.2.
|
|
1018
|
-
lightning_sdk-0.2.
|
|
1019
|
-
lightning_sdk-0.2.
|
|
1020
|
+
lightning_sdk-0.2.13.dist-info/LICENSE,sha256=uFIuZwj5z-4TeF2UuacPZ1o17HkvKObT8fY50qN84sg,1064
|
|
1021
|
+
lightning_sdk-0.2.13.dist-info/METADATA,sha256=SBrWq0CHnSePIEqhG4l4PANPJWxNLOIQegUMO-innFQ,3992
|
|
1022
|
+
lightning_sdk-0.2.13.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
|
|
1023
|
+
lightning_sdk-0.2.13.dist-info/entry_points.txt,sha256=msB9PJWIJ784dX-OP8by51d4IbKYH3Fj1vCuA9oXjHY,68
|
|
1024
|
+
lightning_sdk-0.2.13.dist-info/top_level.txt,sha256=ps8doKILFXmN7F1mHncShmnQoTxKBRPIcchC8TpoBw4,19
|
|
1025
|
+
lightning_sdk-0.2.13.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|