blaxel 0.1.9rc35__py3-none-any.whl → 0.1.9rc37__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.
Files changed (61) hide show
  1. blaxel/agents/__init__.py +53 -16
  2. blaxel/authentication/__init__.py +3 -4
  3. blaxel/client/api/compute/__init__.py +0 -0
  4. blaxel/client/api/compute/create_sandbox.py +166 -0
  5. blaxel/client/api/compute/delete_sandbox.py +154 -0
  6. blaxel/client/api/compute/get_sandbox.py +154 -0
  7. blaxel/client/api/compute/list_sandboxes.py +135 -0
  8. blaxel/client/api/compute/start_sandbox.py +157 -0
  9. blaxel/client/api/compute/stop_sandbox.py +157 -0
  10. blaxel/client/api/compute/update_sandbox.py +179 -0
  11. blaxel/client/api/default/list_sandbox_hub_definitions.py +123 -0
  12. blaxel/client/api/functions/list_function_revisions.py +16 -11
  13. blaxel/client/api/knowledgebases/list_knowledgebase_revisions.py +16 -11
  14. blaxel/client/api/models/list_model_revisions.py +16 -11
  15. blaxel/client/api/templates/list_templates.py +16 -11
  16. blaxel/client/models/__init__.py +32 -2
  17. blaxel/client/models/agent_spec.py +25 -69
  18. blaxel/client/models/core_spec.py +1 -45
  19. blaxel/client/models/function_spec.py +1 -45
  20. blaxel/client/models/last_n_requests_metric.py +18 -0
  21. blaxel/client/models/metrics.py +20 -0
  22. blaxel/client/models/model_spec.py +1 -45
  23. blaxel/client/models/{agent_chain.py → port.py} +23 -32
  24. blaxel/client/models/request_total_metric.py +12 -1
  25. blaxel/client/models/request_total_response_data.py +97 -0
  26. blaxel/client/models/resource_log.py +9 -0
  27. blaxel/client/models/resource_metrics.py +144 -0
  28. blaxel/client/models/resource_metrics_request_total_per_code_previous.py +45 -0
  29. blaxel/client/models/resource_metrics_rps_per_code_previous.py +45 -0
  30. blaxel/client/models/runtime.py +83 -7
  31. blaxel/client/models/runtime_configuration.py +45 -0
  32. blaxel/client/models/sandbox.py +129 -0
  33. blaxel/client/models/sandbox_definition.py +181 -0
  34. blaxel/client/models/sandbox_spec.py +208 -0
  35. blaxel/client/models/sandboxes.py +129 -0
  36. blaxel/client/models/serverless_config.py +29 -1
  37. blaxel/client/models/serverless_config_configuration.py +45 -0
  38. blaxel/client/models/start_sandbox.py +94 -0
  39. blaxel/client/models/stop_sandbox.py +94 -0
  40. blaxel/client/models/trigger.py +98 -0
  41. blaxel/client/models/trigger_configuration.py +45 -0
  42. blaxel/client/models/workspace.py +20 -0
  43. blaxel/client/models/workspace_runtime.py +61 -0
  44. blaxel/common/autoload.py +0 -4
  45. blaxel/common/internal.py +75 -0
  46. blaxel/common/settings.py +6 -1
  47. blaxel/instrumentation/exporters.py +3 -6
  48. blaxel/instrumentation/manager.py +5 -3
  49. blaxel/mcp/client.py +1 -3
  50. blaxel/mcp/server.py +4 -4
  51. blaxel/models/__init__.py +2 -1
  52. blaxel/models/custom/langchain/gemini.py +41 -18
  53. blaxel/models/custom/llamaindex/cohere.py +25 -16
  54. blaxel/models/custom/pydantic/gemini.py +0 -1
  55. blaxel/models/livekit.py +1 -1
  56. blaxel/tools/__init__.py +63 -22
  57. blaxel/tools/langchain.py +1 -2
  58. {blaxel-0.1.9rc35.dist-info → blaxel-0.1.9rc37.dist-info}/METADATA +1 -4
  59. {blaxel-0.1.9rc35.dist-info → blaxel-0.1.9rc37.dist-info}/RECORD +61 -37
  60. {blaxel-0.1.9rc35.dist-info → blaxel-0.1.9rc37.dist-info}/WHEEL +0 -0
  61. {blaxel-0.1.9rc35.dist-info → blaxel-0.1.9rc37.dist-info}/licenses/LICENSE +0 -0
@@ -9,10 +9,8 @@ if TYPE_CHECKING:
9
9
  from ..models.core_spec_configurations import CoreSpecConfigurations
10
10
  from ..models.flavor import Flavor
11
11
  from ..models.model_private_cluster import ModelPrivateCluster
12
- from ..models.pod_template_spec import PodTemplateSpec
13
12
  from ..models.revision_configuration import RevisionConfiguration
14
13
  from ..models.runtime import Runtime
15
- from ..models.serverless_config import ServerlessConfig
16
14
 
17
15
 
18
16
  T = TypeVar("T", bound="ModelSpec")
@@ -24,29 +22,25 @@ class ModelSpec:
24
22
 
25
23
  Attributes:
26
24
  configurations (Union[Unset, CoreSpecConfigurations]): Optional configurations for the object
27
- enabled (Union[Unset, bool]): Enable or disable the agent
25
+ enabled (Union[Unset, bool]): Enable or disable the resource
28
26
  flavors (Union[Unset, list['Flavor']]): Types of hardware available for deployments
29
27
  integration_connections (Union[Unset, list[str]]):
30
- pod_template (Union[Unset, PodTemplateSpec]): Pod template specification
31
28
  policies (Union[Unset, list[str]]):
32
29
  private_clusters (Union[Unset, ModelPrivateCluster]): Private cluster where the model deployment is deployed
33
30
  revision (Union[Unset, RevisionConfiguration]): Revision configuration
34
31
  runtime (Union[Unset, Runtime]): Set of configurations for a deployment
35
32
  sandbox (Union[Unset, bool]): Sandbox mode
36
- serverless_config (Union[Unset, ServerlessConfig]): Configuration for a serverless deployment
37
33
  """
38
34
 
39
35
  configurations: Union[Unset, "CoreSpecConfigurations"] = UNSET
40
36
  enabled: Union[Unset, bool] = UNSET
41
37
  flavors: Union[Unset, list["Flavor"]] = UNSET
42
38
  integration_connections: Union[Unset, list[str]] = UNSET
43
- pod_template: Union[Unset, "PodTemplateSpec"] = UNSET
44
39
  policies: Union[Unset, list[str]] = UNSET
45
40
  private_clusters: Union[Unset, "ModelPrivateCluster"] = UNSET
46
41
  revision: Union[Unset, "RevisionConfiguration"] = UNSET
47
42
  runtime: Union[Unset, "Runtime"] = UNSET
48
43
  sandbox: Union[Unset, bool] = UNSET
49
- serverless_config: Union[Unset, "ServerlessConfig"] = UNSET
50
44
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
51
45
 
52
46
  def to_dict(self) -> dict[str, Any]:
@@ -76,12 +70,6 @@ class ModelSpec:
76
70
  if not isinstance(self.integration_connections, Unset):
77
71
  integration_connections = self.integration_connections
78
72
 
79
- pod_template: Union[Unset, dict[str, Any]] = UNSET
80
- if self.pod_template and not isinstance(self.pod_template, Unset) and not isinstance(self.pod_template, dict):
81
- pod_template = self.pod_template.to_dict()
82
- elif self.pod_template and isinstance(self.pod_template, dict):
83
- pod_template = self.pod_template
84
-
85
73
  policies: Union[Unset, list[str]] = UNSET
86
74
  if not isinstance(self.policies, Unset):
87
75
  policies = self.policies
@@ -110,16 +98,6 @@ class ModelSpec:
110
98
 
111
99
  sandbox = self.sandbox
112
100
 
113
- serverless_config: Union[Unset, dict[str, Any]] = UNSET
114
- if (
115
- self.serverless_config
116
- and not isinstance(self.serverless_config, Unset)
117
- and not isinstance(self.serverless_config, dict)
118
- ):
119
- serverless_config = self.serverless_config.to_dict()
120
- elif self.serverless_config and isinstance(self.serverless_config, dict):
121
- serverless_config = self.serverless_config
122
-
123
101
  field_dict: dict[str, Any] = {}
124
102
  field_dict.update(self.additional_properties)
125
103
  field_dict.update({})
@@ -131,8 +109,6 @@ class ModelSpec:
131
109
  field_dict["flavors"] = flavors
132
110
  if integration_connections is not UNSET:
133
111
  field_dict["integrationConnections"] = integration_connections
134
- if pod_template is not UNSET:
135
- field_dict["podTemplate"] = pod_template
136
112
  if policies is not UNSET:
137
113
  field_dict["policies"] = policies
138
114
  if private_clusters is not UNSET:
@@ -143,8 +119,6 @@ class ModelSpec:
143
119
  field_dict["runtime"] = runtime
144
120
  if sandbox is not UNSET:
145
121
  field_dict["sandbox"] = sandbox
146
- if serverless_config is not UNSET:
147
- field_dict["serverlessConfig"] = serverless_config
148
122
 
149
123
  return field_dict
150
124
 
@@ -153,10 +127,8 @@ class ModelSpec:
153
127
  from ..models.core_spec_configurations import CoreSpecConfigurations
154
128
  from ..models.flavor import Flavor
155
129
  from ..models.model_private_cluster import ModelPrivateCluster
156
- from ..models.pod_template_spec import PodTemplateSpec
157
130
  from ..models.revision_configuration import RevisionConfiguration
158
131
  from ..models.runtime import Runtime
159
- from ..models.serverless_config import ServerlessConfig
160
132
 
161
133
  if not src_dict:
162
134
  return None
@@ -179,13 +151,6 @@ class ModelSpec:
179
151
 
180
152
  integration_connections = cast(list[str], d.pop("integrationConnections", UNSET))
181
153
 
182
- _pod_template = d.pop("podTemplate", UNSET)
183
- pod_template: Union[Unset, PodTemplateSpec]
184
- if isinstance(_pod_template, Unset):
185
- pod_template = UNSET
186
- else:
187
- pod_template = PodTemplateSpec.from_dict(_pod_template)
188
-
189
154
  policies = cast(list[str], d.pop("policies", UNSET))
190
155
 
191
156
  _private_clusters = d.pop("privateClusters", UNSET)
@@ -211,25 +176,16 @@ class ModelSpec:
211
176
 
212
177
  sandbox = d.pop("sandbox", UNSET)
213
178
 
214
- _serverless_config = d.pop("serverlessConfig", UNSET)
215
- serverless_config: Union[Unset, ServerlessConfig]
216
- if isinstance(_serverless_config, Unset):
217
- serverless_config = UNSET
218
- else:
219
- serverless_config = ServerlessConfig.from_dict(_serverless_config)
220
-
221
179
  model_spec = cls(
222
180
  configurations=configurations,
223
181
  enabled=enabled,
224
182
  flavors=flavors,
225
183
  integration_connections=integration_connections,
226
- pod_template=pod_template,
227
184
  policies=policies,
228
185
  private_clusters=private_clusters,
229
186
  revision=revision,
230
187
  runtime=runtime,
231
188
  sandbox=sandbox,
232
- serverless_config=serverless_config,
233
189
  )
234
190
 
235
191
  model_spec.additional_properties = d
@@ -5,46 +5,40 @@ from attrs import field as _attrs_field
5
5
 
6
6
  from ..types import UNSET, Unset
7
7
 
8
- T = TypeVar("T", bound="AgentChain")
8
+ T = TypeVar("T", bound="Port")
9
9
 
10
10
 
11
11
  @_attrs_define
12
- class AgentChain:
13
- """Agent chain configuration
12
+ class Port:
13
+ """A port for a resource
14
14
 
15
15
  Attributes:
16
- description (Union[Unset, str]): Description of the agent in case you want to override the default one
17
- enabled (Union[Unset, bool]): Whether the agent chain is enabled
18
- name (Union[Unset, str]): The name of the agent to chain to
19
- prompt (Union[Unset, str]): Prompt of the agent in case you want to override the default one
16
+ name (Union[Unset, str]): The name of the port
17
+ protocol (Union[Unset, str]): The protocol of the port
18
+ target (Union[Unset, int]): The target port of the port
20
19
  """
21
20
 
22
- description: Union[Unset, str] = UNSET
23
- enabled: Union[Unset, bool] = UNSET
24
21
  name: Union[Unset, str] = UNSET
25
- prompt: Union[Unset, str] = UNSET
22
+ protocol: Union[Unset, str] = UNSET
23
+ target: Union[Unset, int] = UNSET
26
24
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
25
 
28
26
  def to_dict(self) -> dict[str, Any]:
29
- description = self.description
30
-
31
- enabled = self.enabled
32
-
33
27
  name = self.name
34
28
 
35
- prompt = self.prompt
29
+ protocol = self.protocol
30
+
31
+ target = self.target
36
32
 
37
33
  field_dict: dict[str, Any] = {}
38
34
  field_dict.update(self.additional_properties)
39
35
  field_dict.update({})
40
- if description is not UNSET:
41
- field_dict["description"] = description
42
- if enabled is not UNSET:
43
- field_dict["enabled"] = enabled
44
36
  if name is not UNSET:
45
37
  field_dict["name"] = name
46
- if prompt is not UNSET:
47
- field_dict["prompt"] = prompt
38
+ if protocol is not UNSET:
39
+ field_dict["protocol"] = protocol
40
+ if target is not UNSET:
41
+ field_dict["target"] = target
48
42
 
49
43
  return field_dict
50
44
 
@@ -53,23 +47,20 @@ class AgentChain:
53
47
  if not src_dict:
54
48
  return None
55
49
  d = src_dict.copy()
56
- description = d.pop("description", UNSET)
57
-
58
- enabled = d.pop("enabled", UNSET)
59
-
60
50
  name = d.pop("name", UNSET)
61
51
 
62
- prompt = d.pop("prompt", UNSET)
52
+ protocol = d.pop("protocol", UNSET)
53
+
54
+ target = d.pop("target", UNSET)
63
55
 
64
- agent_chain = cls(
65
- description=description,
66
- enabled=enabled,
56
+ port = cls(
67
57
  name=name,
68
- prompt=prompt,
58
+ protocol=protocol,
59
+ target=target,
69
60
  )
70
61
 
71
- agent_chain.additional_properties = d
72
- return agent_chain
62
+ port.additional_properties = d
63
+ return port
73
64
 
74
65
  @property
75
66
  def additional_keys(self) -> list[str]:
@@ -1,4 +1,4 @@
1
- from typing import TYPE_CHECKING, Any, TypeVar, Union
1
+ from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
2
2
 
3
3
  from attrs import define as _attrs_define
4
4
  from attrs import field as _attrs_field
@@ -20,6 +20,7 @@ class RequestTotalMetric:
20
20
  """Metrics for request total
21
21
 
22
22
  Attributes:
23
+ items (Union[Unset, list[Any]]): Historical requests for all resources globally
23
24
  request_total (Union[Unset, float]): Number of requests for all resources globally
24
25
  request_total_per_code (Union[Unset, RequestTotalMetricRequestTotalPerCode]): Number of requests for all
25
26
  resources globally per code
@@ -27,6 +28,7 @@ class RequestTotalMetric:
27
28
  rps_per_code (Union[Unset, RequestTotalMetricRpsPerCode]): Number of requests for all resources globally
28
29
  """
29
30
 
31
+ items: Union[Unset, list[Any]] = UNSET
30
32
  request_total: Union[Unset, float] = UNSET
31
33
  request_total_per_code: Union[Unset, "RequestTotalMetricRequestTotalPerCode"] = UNSET
32
34
  rps: Union[Unset, float] = UNSET
@@ -34,6 +36,10 @@ class RequestTotalMetric:
34
36
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
35
37
 
36
38
  def to_dict(self) -> dict[str, Any]:
39
+ items: Union[Unset, list[Any]] = UNSET
40
+ if not isinstance(self.items, Unset):
41
+ items = self.items
42
+
37
43
  request_total = self.request_total
38
44
 
39
45
  request_total_per_code: Union[Unset, dict[str, Any]] = UNSET
@@ -57,6 +63,8 @@ class RequestTotalMetric:
57
63
  field_dict: dict[str, Any] = {}
58
64
  field_dict.update(self.additional_properties)
59
65
  field_dict.update({})
66
+ if items is not UNSET:
67
+ field_dict["items"] = items
60
68
  if request_total is not UNSET:
61
69
  field_dict["requestTotal"] = request_total
62
70
  if request_total_per_code is not UNSET:
@@ -78,6 +86,8 @@ class RequestTotalMetric:
78
86
  if not src_dict:
79
87
  return None
80
88
  d = src_dict.copy()
89
+ items = cast(list[Any], d.pop("items", UNSET))
90
+
81
91
  request_total = d.pop("requestTotal", UNSET)
82
92
 
83
93
  _request_total_per_code = d.pop("requestTotalPerCode", UNSET)
@@ -97,6 +107,7 @@ class RequestTotalMetric:
97
107
  rps_per_code = RequestTotalMetricRpsPerCode.from_dict(_rps_per_code)
98
108
 
99
109
  request_total_metric = cls(
110
+ items=items,
100
111
  request_total=request_total,
101
112
  request_total_per_code=request_total_per_code,
102
113
  rps=rps,
@@ -0,0 +1,97 @@
1
+ from typing import Any, TypeVar, Union
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ T = TypeVar("T", bound="RequestTotalResponseData")
9
+
10
+
11
+ @_attrs_define
12
+ class RequestTotalResponseData:
13
+ """Request total response data
14
+
15
+ Attributes:
16
+ request_total (Union[Unset, float]): Request total
17
+ status_code (Union[Unset, str]): Status code
18
+ workload_id (Union[Unset, str]): Workload ID
19
+ workload_type (Union[Unset, str]): Workload type
20
+ workspace (Union[Unset, str]): Workspace
21
+ """
22
+
23
+ request_total: Union[Unset, float] = UNSET
24
+ status_code: Union[Unset, str] = UNSET
25
+ workload_id: Union[Unset, str] = UNSET
26
+ workload_type: Union[Unset, str] = UNSET
27
+ workspace: Union[Unset, str] = UNSET
28
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
29
+
30
+ def to_dict(self) -> dict[str, Any]:
31
+ request_total = self.request_total
32
+
33
+ status_code = self.status_code
34
+
35
+ workload_id = self.workload_id
36
+
37
+ workload_type = self.workload_type
38
+
39
+ workspace = self.workspace
40
+
41
+ field_dict: dict[str, Any] = {}
42
+ field_dict.update(self.additional_properties)
43
+ field_dict.update({})
44
+ if request_total is not UNSET:
45
+ field_dict["requestTotal"] = request_total
46
+ if status_code is not UNSET:
47
+ field_dict["statusCode"] = status_code
48
+ if workload_id is not UNSET:
49
+ field_dict["workloadId"] = workload_id
50
+ if workload_type is not UNSET:
51
+ field_dict["workloadType"] = workload_type
52
+ if workspace is not UNSET:
53
+ field_dict["workspace"] = workspace
54
+
55
+ return field_dict
56
+
57
+ @classmethod
58
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
59
+ if not src_dict:
60
+ return None
61
+ d = src_dict.copy()
62
+ request_total = d.pop("requestTotal", UNSET)
63
+
64
+ status_code = d.pop("statusCode", UNSET)
65
+
66
+ workload_id = d.pop("workloadId", UNSET)
67
+
68
+ workload_type = d.pop("workloadType", UNSET)
69
+
70
+ workspace = d.pop("workspace", UNSET)
71
+
72
+ request_total_response_data = cls(
73
+ request_total=request_total,
74
+ status_code=status_code,
75
+ workload_id=workload_id,
76
+ workload_type=workload_type,
77
+ workspace=workspace,
78
+ )
79
+
80
+ request_total_response_data.additional_properties = d
81
+ return request_total_response_data
82
+
83
+ @property
84
+ def additional_keys(self) -> list[str]:
85
+ return list(self.additional_properties.keys())
86
+
87
+ def __getitem__(self, key: str) -> Any:
88
+ return self.additional_properties[key]
89
+
90
+ def __setitem__(self, key: str, value: Any) -> None:
91
+ self.additional_properties[key] = value
92
+
93
+ def __delitem__(self, key: str) -> None:
94
+ del self.additional_properties[key]
95
+
96
+ def __contains__(self, key: str) -> bool:
97
+ return key in self.additional_properties
@@ -16,11 +16,13 @@ class ResourceLog:
16
16
  message (Union[Unset, str]): Content of the log
17
17
  severity (Union[Unset, int]): Severity of the log
18
18
  timestamp (Union[Unset, str]): The timestamp of the log
19
+ trace_id (Union[Unset, str]): Trace ID of the log
19
20
  """
20
21
 
21
22
  message: Union[Unset, str] = UNSET
22
23
  severity: Union[Unset, int] = UNSET
23
24
  timestamp: Union[Unset, str] = UNSET
25
+ trace_id: Union[Unset, str] = UNSET
24
26
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
27
 
26
28
  def to_dict(self) -> dict[str, Any]:
@@ -30,6 +32,8 @@ class ResourceLog:
30
32
 
31
33
  timestamp = self.timestamp
32
34
 
35
+ trace_id = self.trace_id
36
+
33
37
  field_dict: dict[str, Any] = {}
34
38
  field_dict.update(self.additional_properties)
35
39
  field_dict.update({})
@@ -39,6 +43,8 @@ class ResourceLog:
39
43
  field_dict["severity"] = severity
40
44
  if timestamp is not UNSET:
41
45
  field_dict["timestamp"] = timestamp
46
+ if trace_id is not UNSET:
47
+ field_dict["trace_id"] = trace_id
42
48
 
43
49
  return field_dict
44
50
 
@@ -53,10 +59,13 @@ class ResourceLog:
53
59
 
54
60
  timestamp = d.pop("timestamp", UNSET)
55
61
 
62
+ trace_id = d.pop("trace_id", UNSET)
63
+
56
64
  resource_log = cls(
57
65
  message=message,
58
66
  severity=severity,
59
67
  timestamp=timestamp,
68
+ trace_id=trace_id,
60
69
  )
61
70
 
62
71
  resource_log.additional_properties = d