beamlit 0.0.47rc93__py3-none-any.whl → 0.0.48__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 (73) hide show
  1. beamlit/agents/decorator.py +3 -3
  2. beamlit/api/{model_providers/delete_model_provider.py → accounts/delete_account.py} +42 -35
  3. beamlit/api/{model_providers/get_model_provider.py → accounts/get_account.py} +34 -34
  4. beamlit/api/{model_providers/list_model_providers.py → accounts/list_accounts.py} +21 -21
  5. beamlit/api/{model_providers/update_model_provider.py → accounts/update_account.py} +43 -43
  6. beamlit/api/agents/get_agent_metrics.py +12 -12
  7. beamlit/api/{model_providers/create_model_provider.py → default/create_account.py} +30 -30
  8. beamlit/api/functions/get_function_metrics.py +12 -12
  9. beamlit/api/models/get_model_metrics.py +12 -12
  10. beamlit/functions/common.py +0 -1
  11. beamlit/functions/mcp/mcp.py +3 -2
  12. beamlit/models/__init__.py +16 -30
  13. beamlit/models/{model_metadata.py → account.py} +93 -15
  14. beamlit/models/{agent_metadata.py → account_metadata.py} +16 -41
  15. beamlit/models/account_spec.py +123 -0
  16. beamlit/models/{agent_render.py → account_spec_address.py} +6 -6
  17. beamlit/models/agent.py +6 -2
  18. beamlit/models/agent_spec.py +30 -6
  19. beamlit/models/billing_address.py +133 -0
  20. beamlit/models/core_spec.py +27 -5
  21. beamlit/models/core_spec_configurations.py +3 -1
  22. beamlit/models/environment.py +6 -2
  23. beamlit/models/environment_metadata.py +3 -1
  24. beamlit/models/function.py +6 -2
  25. beamlit/models/function_spec.py +27 -5
  26. beamlit/models/integration_connection.py +6 -2
  27. beamlit/models/integration_connection_spec.py +18 -14
  28. beamlit/models/{function_render.py → integration_connection_spec_config.py} +6 -6
  29. beamlit/models/{core_status.py → integration_connection_spec_secret.py} +6 -6
  30. beamlit/models/latency_metric.py +24 -4
  31. beamlit/models/metadata.py +3 -1
  32. beamlit/models/metrics.py +13 -3
  33. beamlit/models/model.py +6 -2
  34. beamlit/models/model_spec.py +27 -5
  35. beamlit/models/pending_invitation_accept.py +3 -1
  36. beamlit/models/pending_invitation_render.py +13 -3
  37. beamlit/models/policy.py +6 -2
  38. beamlit/models/policy_max_tokens.py +106 -0
  39. beamlit/models/policy_spec.py +30 -0
  40. beamlit/models/request_duration_over_time_metrics.py +7 -1
  41. beamlit/models/request_total_by_origin_metric.py +14 -2
  42. beamlit/models/request_total_metric.py +10 -2
  43. beamlit/models/resource_environment_metrics.py +33 -7
  44. beamlit/models/resource_log.py +9 -0
  45. beamlit/models/runtime.py +10 -2
  46. beamlit/models/store_agent.py +3 -1
  47. beamlit/models/store_function.py +3 -1
  48. beamlit/models/token_rate_metrics.py +17 -3
  49. beamlit/models/trace_ids_response.py +3 -21
  50. beamlit/models/workspace.py +12 -1
  51. {beamlit-0.0.47rc93.dist-info → beamlit-0.0.48.dist-info}/METADATA +1 -1
  52. {beamlit-0.0.47rc93.dist-info → beamlit-0.0.48.dist-info}/RECORD +55 -70
  53. beamlit/models/function_metadata.py +0 -146
  54. beamlit/models/increase_and_rate_metric.py +0 -61
  55. beamlit/models/integration_config.py +0 -45
  56. beamlit/models/integration_connection_config.py +0 -45
  57. beamlit/models/integration_connection_secret.py +0 -61
  58. beamlit/models/model_provider.py +0 -173
  59. beamlit/models/model_render.py +0 -45
  60. beamlit/models/provider_config.py +0 -94
  61. beamlit/models/qps.py +0 -61
  62. beamlit/models/repository_type_0.py +0 -70
  63. beamlit/models/resource_deployment_metrics.py +0 -176
  64. beamlit/models/resource_deployment_metrics_inference_per_second_per_region.py +0 -77
  65. beamlit/models/resource_deployment_metrics_query_per_second_per_region_per_code.py +0 -75
  66. beamlit/models/resource_environment_metrics_inference_per_region.py +0 -77
  67. beamlit/models/resource_environment_metrics_inference_per_second_per_region.py +0 -77
  68. beamlit/models/resource_environment_metrics_query_per_region_per_code.py +0 -75
  69. beamlit/models/resource_environment_metrics_query_per_second_per_region_per_code.py +0 -75
  70. beamlit/models/resource_metrics.py +0 -96
  71. /beamlit/api/{model_providers → accounts}/__init__.py +0 -0
  72. {beamlit-0.0.47rc93.dist-info → beamlit-0.0.48.dist-info}/WHEEL +0 -0
  73. {beamlit-0.0.47rc93.dist-info → beamlit-0.0.48.dist-info}/licenses/LICENSE +0 -0
@@ -11,7 +11,7 @@ from beamlit.authentication import new_client
11
11
  from beamlit.common.settings import init
12
12
  from beamlit.errors import UnexpectedStatus
13
13
  from beamlit.functions import get_functions
14
- from beamlit.models import Agent, AgentMetadata, AgentSpec
14
+ from beamlit.models import Agent, AgentSpec, EnvironmentMetadata
15
15
 
16
16
  from .chat import get_chat_model_full
17
17
 
@@ -60,7 +60,7 @@ def agent(
60
60
  return wrapped
61
61
 
62
62
  if agent is not None:
63
- metadata = AgentMetadata(**agent.get("metadata", {}))
63
+ metadata = EnvironmentMetadata(**agent.get("metadata", {}))
64
64
  spec = AgentSpec(**agent.get("spec", {}))
65
65
  agent = Agent(metadata=metadata, spec=spec)
66
66
  if agent.spec.model and chat_model is None:
@@ -141,7 +141,7 @@ def agent(
141
141
  except AttributeError: # special case for azure-marketplace where it uses the old OpenAI interface (no tools)
142
142
  logger.warning("Using the old OpenAI interface for Azure Marketplace, no tools available")
143
143
  _agent = create_react_agent(chat_model, [], checkpointer=memory)
144
-
144
+
145
145
  settings.agent.agent = _agent
146
146
  else:
147
147
  settings.agent.agent = override_agent
@@ -1,37 +1,44 @@
1
1
  from http import HTTPStatus
2
- from typing import Any, Optional, Union
2
+ from typing import Any, Optional, Union, cast
3
3
 
4
4
  import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import AuthenticatedClient, Client
8
- from ...models.model_provider import ModelProvider
8
+ from ...models.account import Account
9
9
  from ...types import Response
10
10
 
11
11
 
12
12
  def _get_kwargs(
13
- model_provider_name: str,
13
+ account_id: str,
14
14
  ) -> dict[str, Any]:
15
15
  _kwargs: dict[str, Any] = {
16
16
  "method": "delete",
17
- "url": f"/model_providers/{model_provider_name}",
17
+ "url": f"/accounts/{account_id}",
18
18
  }
19
19
 
20
20
  return _kwargs
21
21
 
22
22
 
23
- def _parse_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Optional[ModelProvider]:
23
+ def _parse_response(
24
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
25
+ ) -> Optional[Union[Account, Any]]:
24
26
  if response.status_code == 200:
25
- response_200 = ModelProvider.from_dict(response.json())
27
+ response_200 = Account.from_dict(response.json())
26
28
 
27
29
  return response_200
30
+ if response.status_code == 404:
31
+ response_404 = cast(Any, None)
32
+ return response_404
28
33
  if client.raise_on_unexpected_status:
29
34
  raise errors.UnexpectedStatus(response.status_code, response.content)
30
35
  else:
31
36
  return None
32
37
 
33
38
 
34
- def _build_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Response[ModelProvider]:
39
+ def _build_response(
40
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
41
+ ) -> Response[Union[Account, Any]]:
35
42
  return Response(
36
43
  status_code=HTTPStatus(response.status_code),
37
44
  content=response.content,
@@ -41,27 +48,27 @@ def _build_response(*, client: Union[AuthenticatedClient, Client], response: htt
41
48
 
42
49
 
43
50
  def sync_detailed(
44
- model_provider_name: str,
51
+ account_id: str,
45
52
  *,
46
53
  client: AuthenticatedClient,
47
- ) -> Response[ModelProvider]:
48
- """Delete model provider
54
+ ) -> Response[Union[Account, Any]]:
55
+ """Delete account
49
56
 
50
- Deletes an integration by ID.
57
+ Deletes an account by name.
51
58
 
52
59
  Args:
53
- model_provider_name (str):
60
+ account_id (str):
54
61
 
55
62
  Raises:
56
63
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
57
64
  httpx.TimeoutException: If the request takes longer than Client.timeout.
58
65
 
59
66
  Returns:
60
- Response[ModelProvider]
67
+ Response[Union[Account, Any]]
61
68
  """
62
69
 
63
70
  kwargs = _get_kwargs(
64
- model_provider_name=model_provider_name,
71
+ account_id=account_id,
65
72
  )
66
73
 
67
74
  response = client.get_httpx_client().request(
@@ -72,53 +79,53 @@ def sync_detailed(
72
79
 
73
80
 
74
81
  def sync(
75
- model_provider_name: str,
82
+ account_id: str,
76
83
  *,
77
84
  client: AuthenticatedClient,
78
- ) -> Optional[ModelProvider]:
79
- """Delete model provider
85
+ ) -> Optional[Union[Account, Any]]:
86
+ """Delete account
80
87
 
81
- Deletes an integration by ID.
88
+ Deletes an account by name.
82
89
 
83
90
  Args:
84
- model_provider_name (str):
91
+ account_id (str):
85
92
 
86
93
  Raises:
87
94
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
88
95
  httpx.TimeoutException: If the request takes longer than Client.timeout.
89
96
 
90
97
  Returns:
91
- ModelProvider
98
+ Union[Account, Any]
92
99
  """
93
100
 
94
101
  return sync_detailed(
95
- model_provider_name=model_provider_name,
102
+ account_id=account_id,
96
103
  client=client,
97
104
  ).parsed
98
105
 
99
106
 
100
107
  async def asyncio_detailed(
101
- model_provider_name: str,
108
+ account_id: str,
102
109
  *,
103
110
  client: AuthenticatedClient,
104
- ) -> Response[ModelProvider]:
105
- """Delete model provider
111
+ ) -> Response[Union[Account, Any]]:
112
+ """Delete account
106
113
 
107
- Deletes an integration by ID.
114
+ Deletes an account by name.
108
115
 
109
116
  Args:
110
- model_provider_name (str):
117
+ account_id (str):
111
118
 
112
119
  Raises:
113
120
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
114
121
  httpx.TimeoutException: If the request takes longer than Client.timeout.
115
122
 
116
123
  Returns:
117
- Response[ModelProvider]
124
+ Response[Union[Account, Any]]
118
125
  """
119
126
 
120
127
  kwargs = _get_kwargs(
121
- model_provider_name=model_provider_name,
128
+ account_id=account_id,
122
129
  )
123
130
 
124
131
  response = await client.get_async_httpx_client().request(**kwargs)
@@ -127,28 +134,28 @@ async def asyncio_detailed(
127
134
 
128
135
 
129
136
  async def asyncio(
130
- model_provider_name: str,
137
+ account_id: str,
131
138
  *,
132
139
  client: AuthenticatedClient,
133
- ) -> Optional[ModelProvider]:
134
- """Delete model provider
140
+ ) -> Optional[Union[Account, Any]]:
141
+ """Delete account
135
142
 
136
- Deletes an integration by ID.
143
+ Deletes an account by name.
137
144
 
138
145
  Args:
139
- model_provider_name (str):
146
+ account_id (str):
140
147
 
141
148
  Raises:
142
149
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
143
150
  httpx.TimeoutException: If the request takes longer than Client.timeout.
144
151
 
145
152
  Returns:
146
- ModelProvider
153
+ Union[Account, Any]
147
154
  """
148
155
 
149
156
  return (
150
157
  await asyncio_detailed(
151
- model_provider_name=model_provider_name,
158
+ account_id=account_id,
152
159
  client=client,
153
160
  )
154
161
  ).parsed
@@ -5,24 +5,24 @@ import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import AuthenticatedClient, Client
8
- from ...models.model_provider import ModelProvider
8
+ from ...models.account import Account
9
9
  from ...types import Response
10
10
 
11
11
 
12
12
  def _get_kwargs(
13
- model_provider_name: str,
13
+ account_id: str,
14
14
  ) -> dict[str, Any]:
15
15
  _kwargs: dict[str, Any] = {
16
16
  "method": "get",
17
- "url": f"/model_providers/{model_provider_name}",
17
+ "url": f"/accounts/{account_id}",
18
18
  }
19
19
 
20
20
  return _kwargs
21
21
 
22
22
 
23
- def _parse_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Optional[ModelProvider]:
23
+ def _parse_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Optional[Account]:
24
24
  if response.status_code == 200:
25
- response_200 = ModelProvider.from_dict(response.json())
25
+ response_200 = Account.from_dict(response.json())
26
26
 
27
27
  return response_200
28
28
  if client.raise_on_unexpected_status:
@@ -31,7 +31,7 @@ def _parse_response(*, client: Union[AuthenticatedClient, Client], response: htt
31
31
  return None
32
32
 
33
33
 
34
- def _build_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Response[ModelProvider]:
34
+ def _build_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Response[Account]:
35
35
  return Response(
36
36
  status_code=HTTPStatus(response.status_code),
37
37
  content=response.content,
@@ -41,27 +41,27 @@ def _build_response(*, client: Union[AuthenticatedClient, Client], response: htt
41
41
 
42
42
 
43
43
  def sync_detailed(
44
- model_provider_name: str,
44
+ account_id: str,
45
45
  *,
46
46
  client: AuthenticatedClient,
47
- ) -> Response[ModelProvider]:
48
- """Get model provider
47
+ ) -> Response[Account]:
48
+ """Get account by name
49
49
 
50
- Returns an integration by ID.
50
+ Returns an account by name.
51
51
 
52
52
  Args:
53
- model_provider_name (str):
53
+ account_id (str):
54
54
 
55
55
  Raises:
56
56
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
57
57
  httpx.TimeoutException: If the request takes longer than Client.timeout.
58
58
 
59
59
  Returns:
60
- Response[ModelProvider]
60
+ Response[Account]
61
61
  """
62
62
 
63
63
  kwargs = _get_kwargs(
64
- model_provider_name=model_provider_name,
64
+ account_id=account_id,
65
65
  )
66
66
 
67
67
  response = client.get_httpx_client().request(
@@ -72,53 +72,53 @@ def sync_detailed(
72
72
 
73
73
 
74
74
  def sync(
75
- model_provider_name: str,
75
+ account_id: str,
76
76
  *,
77
77
  client: AuthenticatedClient,
78
- ) -> Optional[ModelProvider]:
79
- """Get model provider
78
+ ) -> Optional[Account]:
79
+ """Get account by name
80
80
 
81
- Returns an integration by ID.
81
+ Returns an account by name.
82
82
 
83
83
  Args:
84
- model_provider_name (str):
84
+ account_id (str):
85
85
 
86
86
  Raises:
87
87
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
88
88
  httpx.TimeoutException: If the request takes longer than Client.timeout.
89
89
 
90
90
  Returns:
91
- ModelProvider
91
+ Account
92
92
  """
93
93
 
94
94
  return sync_detailed(
95
- model_provider_name=model_provider_name,
95
+ account_id=account_id,
96
96
  client=client,
97
97
  ).parsed
98
98
 
99
99
 
100
100
  async def asyncio_detailed(
101
- model_provider_name: str,
101
+ account_id: str,
102
102
  *,
103
103
  client: AuthenticatedClient,
104
- ) -> Response[ModelProvider]:
105
- """Get model provider
104
+ ) -> Response[Account]:
105
+ """Get account by name
106
106
 
107
- Returns an integration by ID.
107
+ Returns an account by name.
108
108
 
109
109
  Args:
110
- model_provider_name (str):
110
+ account_id (str):
111
111
 
112
112
  Raises:
113
113
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
114
114
  httpx.TimeoutException: If the request takes longer than Client.timeout.
115
115
 
116
116
  Returns:
117
- Response[ModelProvider]
117
+ Response[Account]
118
118
  """
119
119
 
120
120
  kwargs = _get_kwargs(
121
- model_provider_name=model_provider_name,
121
+ account_id=account_id,
122
122
  )
123
123
 
124
124
  response = await client.get_async_httpx_client().request(**kwargs)
@@ -127,28 +127,28 @@ async def asyncio_detailed(
127
127
 
128
128
 
129
129
  async def asyncio(
130
- model_provider_name: str,
130
+ account_id: str,
131
131
  *,
132
132
  client: AuthenticatedClient,
133
- ) -> Optional[ModelProvider]:
134
- """Get model provider
133
+ ) -> Optional[Account]:
134
+ """Get account by name
135
135
 
136
- Returns an integration by ID.
136
+ Returns an account by name.
137
137
 
138
138
  Args:
139
- model_provider_name (str):
139
+ account_id (str):
140
140
 
141
141
  Raises:
142
142
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
143
143
  httpx.TimeoutException: If the request takes longer than Client.timeout.
144
144
 
145
145
  Returns:
146
- ModelProvider
146
+ Account
147
147
  """
148
148
 
149
149
  return (
150
150
  await asyncio_detailed(
151
- model_provider_name=model_provider_name,
151
+ account_id=account_id,
152
152
  client=client,
153
153
  )
154
154
  ).parsed
@@ -5,14 +5,14 @@ import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import AuthenticatedClient, Client
8
- from ...models.model_provider import ModelProvider
8
+ from ...models.account import Account
9
9
  from ...types import Response
10
10
 
11
11
 
12
12
  def _get_kwargs() -> dict[str, Any]:
13
13
  _kwargs: dict[str, Any] = {
14
14
  "method": "get",
15
- "url": "/model_providers",
15
+ "url": "/accounts",
16
16
  }
17
17
 
18
18
  return _kwargs
@@ -20,12 +20,12 @@ def _get_kwargs() -> dict[str, Any]:
20
20
 
21
21
  def _parse_response(
22
22
  *, client: Union[AuthenticatedClient, Client], response: httpx.Response
23
- ) -> Optional[list["ModelProvider"]]:
23
+ ) -> Optional[list["Account"]]:
24
24
  if response.status_code == 200:
25
25
  response_200 = []
26
26
  _response_200 = response.json()
27
27
  for response_200_item_data in _response_200:
28
- response_200_item = ModelProvider.from_dict(response_200_item_data)
28
+ response_200_item = Account.from_dict(response_200_item_data)
29
29
 
30
30
  response_200.append(response_200_item)
31
31
 
@@ -38,7 +38,7 @@ def _parse_response(
38
38
 
39
39
  def _build_response(
40
40
  *, client: Union[AuthenticatedClient, Client], response: httpx.Response
41
- ) -> Response[list["ModelProvider"]]:
41
+ ) -> Response[list["Account"]]:
42
42
  return Response(
43
43
  status_code=HTTPStatus(response.status_code),
44
44
  content=response.content,
@@ -50,17 +50,17 @@ def _build_response(
50
50
  def sync_detailed(
51
51
  *,
52
52
  client: AuthenticatedClient,
53
- ) -> Response[list["ModelProvider"]]:
54
- """List model providers
53
+ ) -> Response[list["Account"]]:
54
+ """List accounts
55
55
 
56
- Returns a list of all integrations in the workspace.
56
+ Returns a list of all accounts.
57
57
 
58
58
  Raises:
59
59
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
60
60
  httpx.TimeoutException: If the request takes longer than Client.timeout.
61
61
 
62
62
  Returns:
63
- Response[list['ModelProvider']]
63
+ Response[list['Account']]
64
64
  """
65
65
 
66
66
  kwargs = _get_kwargs()
@@ -75,17 +75,17 @@ def sync_detailed(
75
75
  def sync(
76
76
  *,
77
77
  client: AuthenticatedClient,
78
- ) -> Optional[list["ModelProvider"]]:
79
- """List model providers
78
+ ) -> Optional[list["Account"]]:
79
+ """List accounts
80
80
 
81
- Returns a list of all integrations in the workspace.
81
+ Returns a list of all accounts.
82
82
 
83
83
  Raises:
84
84
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
85
85
  httpx.TimeoutException: If the request takes longer than Client.timeout.
86
86
 
87
87
  Returns:
88
- list['ModelProvider']
88
+ list['Account']
89
89
  """
90
90
 
91
91
  return sync_detailed(
@@ -96,17 +96,17 @@ def sync(
96
96
  async def asyncio_detailed(
97
97
  *,
98
98
  client: AuthenticatedClient,
99
- ) -> Response[list["ModelProvider"]]:
100
- """List model providers
99
+ ) -> Response[list["Account"]]:
100
+ """List accounts
101
101
 
102
- Returns a list of all integrations in the workspace.
102
+ Returns a list of all accounts.
103
103
 
104
104
  Raises:
105
105
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
106
106
  httpx.TimeoutException: If the request takes longer than Client.timeout.
107
107
 
108
108
  Returns:
109
- Response[list['ModelProvider']]
109
+ Response[list['Account']]
110
110
  """
111
111
 
112
112
  kwargs = _get_kwargs()
@@ -119,17 +119,17 @@ async def asyncio_detailed(
119
119
  async def asyncio(
120
120
  *,
121
121
  client: AuthenticatedClient,
122
- ) -> Optional[list["ModelProvider"]]:
123
- """List model providers
122
+ ) -> Optional[list["Account"]]:
123
+ """List accounts
124
124
 
125
- Returns a list of all integrations in the workspace.
125
+ Returns a list of all accounts.
126
126
 
127
127
  Raises:
128
128
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
129
129
  httpx.TimeoutException: If the request takes longer than Client.timeout.
130
130
 
131
131
  Returns:
132
- list['ModelProvider']
132
+ list['Account']
133
133
  """
134
134
 
135
135
  return (