databricks-sdk 0.64.0__py3-none-any.whl → 0.65.0__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 databricks-sdk might be problematic. Click here for more details.
- databricks/sdk/mixins/open_ai_client.py +55 -6
- databricks/sdk/service/cleanrooms.py +4 -3
- databricks/sdk/service/dashboards.py +8 -8
- databricks/sdk/service/database.py +20 -0
- databricks/sdk/service/iam.py +3 -1
- databricks/sdk/service/jobs.py +21 -1
- databricks/sdk/service/ml.py +47 -47
- databricks/sdk/service/pipelines.py +130 -0
- databricks/sdk/service/settings.py +69 -2
- databricks/sdk/service/vectorsearch.py +69 -3
- databricks/sdk/version.py +1 -1
- {databricks_sdk-0.64.0.dist-info → databricks_sdk-0.65.0.dist-info}/METADATA +2 -2
- {databricks_sdk-0.64.0.dist-info → databricks_sdk-0.65.0.dist-info}/RECORD +17 -17
- {databricks_sdk-0.64.0.dist-info → databricks_sdk-0.65.0.dist-info}/WHEEL +0 -0
- {databricks_sdk-0.64.0.dist-info → databricks_sdk-0.65.0.dist-info}/licenses/LICENSE +0 -0
- {databricks_sdk-0.64.0.dist-info → databricks_sdk-0.65.0.dist-info}/licenses/NOTICE +0 -0
- {databricks_sdk-0.64.0.dist-info → databricks_sdk-0.65.0.dist-info}/top_level.txt +0 -0
|
@@ -31,7 +31,41 @@ class ServingEndpointsExt(ServingEndpointsAPI):
|
|
|
31
31
|
http_client = httpx.Client(auth=databricks_token_auth)
|
|
32
32
|
return http_client
|
|
33
33
|
|
|
34
|
-
def get_open_ai_client(self):
|
|
34
|
+
def get_open_ai_client(self, **kwargs):
|
|
35
|
+
"""Create an OpenAI client configured for Databricks Model Serving.
|
|
36
|
+
|
|
37
|
+
Returns an OpenAI client instance that is pre-configured to send requests to
|
|
38
|
+
Databricks Model Serving endpoints. The client uses Databricks authentication
|
|
39
|
+
to query endpoints within the workspace associated with the current WorkspaceClient
|
|
40
|
+
instance.
|
|
41
|
+
|
|
42
|
+
Args:
|
|
43
|
+
**kwargs: Additional parameters to pass to the OpenAI client constructor.
|
|
44
|
+
Common parameters include:
|
|
45
|
+
- timeout (float): Request timeout in seconds (e.g., 30.0)
|
|
46
|
+
- max_retries (int): Maximum number of retries for failed requests (e.g., 3)
|
|
47
|
+
- default_headers (dict): Additional headers to include with requests
|
|
48
|
+
- default_query (dict): Additional query parameters to include with requests
|
|
49
|
+
|
|
50
|
+
Any parameter accepted by the OpenAI client constructor can be passed here,
|
|
51
|
+
except for the following parameters which are reserved for Databricks integration:
|
|
52
|
+
base_url, api_key, http_client
|
|
53
|
+
|
|
54
|
+
Returns:
|
|
55
|
+
OpenAI: An OpenAI client instance configured for Databricks Model Serving.
|
|
56
|
+
|
|
57
|
+
Raises:
|
|
58
|
+
ImportError: If the OpenAI library is not installed.
|
|
59
|
+
ValueError: If any reserved Databricks parameters are provided in kwargs.
|
|
60
|
+
|
|
61
|
+
Example:
|
|
62
|
+
>>> client = workspace_client.serving_endpoints.get_open_ai_client()
|
|
63
|
+
>>> # With custom timeout and retries
|
|
64
|
+
>>> client = workspace_client.serving_endpoints.get_open_ai_client(
|
|
65
|
+
... timeout=30.0,
|
|
66
|
+
... max_retries=5
|
|
67
|
+
... )
|
|
68
|
+
"""
|
|
35
69
|
try:
|
|
36
70
|
from openai import OpenAI
|
|
37
71
|
except Exception:
|
|
@@ -39,11 +73,26 @@ class ServingEndpointsExt(ServingEndpointsAPI):
|
|
|
39
73
|
"Open AI is not installed. Please install the Databricks SDK with the following command `pip install databricks-sdk[openai]`"
|
|
40
74
|
)
|
|
41
75
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
76
|
+
# Check for reserved parameters that should not be overridden
|
|
77
|
+
reserved_params = {"base_url", "api_key", "http_client"}
|
|
78
|
+
conflicting_params = reserved_params.intersection(kwargs.keys())
|
|
79
|
+
if conflicting_params:
|
|
80
|
+
raise ValueError(
|
|
81
|
+
f"Cannot override reserved Databricks parameters: {', '.join(sorted(conflicting_params))}. "
|
|
82
|
+
f"These parameters are automatically configured for Databricks Model Serving."
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
# Default parameters that are required for Databricks integration
|
|
86
|
+
client_params = {
|
|
87
|
+
"base_url": self._api._cfg.host + "/serving-endpoints",
|
|
88
|
+
"api_key": "no-token", # Passing in a placeholder to pass validations, this will not be used
|
|
89
|
+
"http_client": self._get_authorized_http_client(),
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
# Update with any additional parameters passed by the user
|
|
93
|
+
client_params.update(kwargs)
|
|
94
|
+
|
|
95
|
+
return OpenAI(**client_params)
|
|
47
96
|
|
|
48
97
|
def get_langchain_chat_open_ai_client(self, model):
|
|
49
98
|
try:
|
|
@@ -1509,17 +1509,18 @@ class CleanRoomAssetsAPI:
|
|
|
1509
1509
|
clean_room_name: str,
|
|
1510
1510
|
asset_type: CleanRoomAssetAssetType,
|
|
1511
1511
|
name: str,
|
|
1512
|
-
|
|
1512
|
+
*,
|
|
1513
|
+
notebook_review: Optional[NotebookVersionReview] = None,
|
|
1513
1514
|
) -> CreateCleanRoomAssetReviewResponse:
|
|
1514
1515
|
"""Submit an asset review
|
|
1515
1516
|
|
|
1516
1517
|
:param clean_room_name: str
|
|
1517
1518
|
Name of the clean room
|
|
1518
1519
|
:param asset_type: :class:`CleanRoomAssetAssetType`
|
|
1519
|
-
Asset type. Can
|
|
1520
|
+
Asset type. Can either be NOTEBOOK_FILE or JAR_ANALYSIS.
|
|
1520
1521
|
:param name: str
|
|
1521
1522
|
Name of the asset
|
|
1522
|
-
:param notebook_review: :class:`NotebookVersionReview`
|
|
1523
|
+
:param notebook_review: :class:`NotebookVersionReview` (optional)
|
|
1523
1524
|
|
|
1524
1525
|
:returns: :class:`CreateCleanRoomAssetReviewResponse`
|
|
1525
1526
|
"""
|
|
@@ -1975,9 +1975,9 @@ class GenieAPI:
|
|
|
1975
1975
|
space_id: str,
|
|
1976
1976
|
conversation_id: str,
|
|
1977
1977
|
message_id: str,
|
|
1978
|
-
|
|
1978
|
+
rating: GenieFeedbackRating,
|
|
1979
1979
|
*,
|
|
1980
|
-
|
|
1980
|
+
comment: Optional[str] = None,
|
|
1981
1981
|
):
|
|
1982
1982
|
"""Send feedback for a message.
|
|
1983
1983
|
|
|
@@ -1987,18 +1987,18 @@ class GenieAPI:
|
|
|
1987
1987
|
The ID associated with the conversation.
|
|
1988
1988
|
:param message_id: str
|
|
1989
1989
|
The ID associated with the message to provide feedback for.
|
|
1990
|
-
:param
|
|
1990
|
+
:param rating: :class:`GenieFeedbackRating`
|
|
1991
1991
|
The rating (POSITIVE, NEGATIVE, or NONE).
|
|
1992
|
-
:param
|
|
1992
|
+
:param comment: str (optional)
|
|
1993
1993
|
Optional text feedback that will be stored as a comment.
|
|
1994
1994
|
|
|
1995
1995
|
|
|
1996
1996
|
"""
|
|
1997
1997
|
body = {}
|
|
1998
|
-
if
|
|
1999
|
-
body["
|
|
2000
|
-
if
|
|
2001
|
-
body["
|
|
1998
|
+
if comment is not None:
|
|
1999
|
+
body["comment"] = comment
|
|
2000
|
+
if rating is not None:
|
|
2001
|
+
body["rating"] = rating.value
|
|
2002
2002
|
headers = {
|
|
2003
2003
|
"Accept": "application/json",
|
|
2004
2004
|
"Content-Type": "application/json",
|
|
@@ -125,6 +125,13 @@ class DatabaseInstance:
|
|
|
125
125
|
creator: Optional[str] = None
|
|
126
126
|
"""The email of the creator of the instance."""
|
|
127
127
|
|
|
128
|
+
effective_enable_pg_native_login: Optional[bool] = None
|
|
129
|
+
"""xref AIP-129. `enable_pg_native_login` is owned by the client, while
|
|
130
|
+
`effective_enable_pg_native_login` is owned by the server. `enable_pg_native_login` will only be
|
|
131
|
+
set in Create/Update response messages if and only if the user provides the field via the
|
|
132
|
+
request. `effective_enable_pg_native_login` on the other hand will always bet set in all
|
|
133
|
+
response messages (Create/Update/Get/List)."""
|
|
134
|
+
|
|
128
135
|
effective_enable_readable_secondaries: Optional[bool] = None
|
|
129
136
|
"""xref AIP-129. `enable_readable_secondaries` is owned by the client, while
|
|
130
137
|
`effective_enable_readable_secondaries` is owned by the server. `enable_readable_secondaries`
|
|
@@ -151,6 +158,9 @@ class DatabaseInstance:
|
|
|
151
158
|
provides the field via the request. `effective_stopped` on the other hand will always bet set in
|
|
152
159
|
all response messages (Create/Update/Get/List)."""
|
|
153
160
|
|
|
161
|
+
enable_pg_native_login: Optional[bool] = None
|
|
162
|
+
"""Whether the instance has PG native password login enabled. Defaults to true."""
|
|
163
|
+
|
|
154
164
|
enable_readable_secondaries: Optional[bool] = None
|
|
155
165
|
"""Whether to enable secondaries to serve read-only traffic. Defaults to false."""
|
|
156
166
|
|
|
@@ -197,6 +207,8 @@ class DatabaseInstance:
|
|
|
197
207
|
body["creation_time"] = self.creation_time
|
|
198
208
|
if self.creator is not None:
|
|
199
209
|
body["creator"] = self.creator
|
|
210
|
+
if self.effective_enable_pg_native_login is not None:
|
|
211
|
+
body["effective_enable_pg_native_login"] = self.effective_enable_pg_native_login
|
|
200
212
|
if self.effective_enable_readable_secondaries is not None:
|
|
201
213
|
body["effective_enable_readable_secondaries"] = self.effective_enable_readable_secondaries
|
|
202
214
|
if self.effective_node_count is not None:
|
|
@@ -205,6 +217,8 @@ class DatabaseInstance:
|
|
|
205
217
|
body["effective_retention_window_in_days"] = self.effective_retention_window_in_days
|
|
206
218
|
if self.effective_stopped is not None:
|
|
207
219
|
body["effective_stopped"] = self.effective_stopped
|
|
220
|
+
if self.enable_pg_native_login is not None:
|
|
221
|
+
body["enable_pg_native_login"] = self.enable_pg_native_login
|
|
208
222
|
if self.enable_readable_secondaries is not None:
|
|
209
223
|
body["enable_readable_secondaries"] = self.enable_readable_secondaries
|
|
210
224
|
if self.name is not None:
|
|
@@ -240,6 +254,8 @@ class DatabaseInstance:
|
|
|
240
254
|
body["creation_time"] = self.creation_time
|
|
241
255
|
if self.creator is not None:
|
|
242
256
|
body["creator"] = self.creator
|
|
257
|
+
if self.effective_enable_pg_native_login is not None:
|
|
258
|
+
body["effective_enable_pg_native_login"] = self.effective_enable_pg_native_login
|
|
243
259
|
if self.effective_enable_readable_secondaries is not None:
|
|
244
260
|
body["effective_enable_readable_secondaries"] = self.effective_enable_readable_secondaries
|
|
245
261
|
if self.effective_node_count is not None:
|
|
@@ -248,6 +264,8 @@ class DatabaseInstance:
|
|
|
248
264
|
body["effective_retention_window_in_days"] = self.effective_retention_window_in_days
|
|
249
265
|
if self.effective_stopped is not None:
|
|
250
266
|
body["effective_stopped"] = self.effective_stopped
|
|
267
|
+
if self.enable_pg_native_login is not None:
|
|
268
|
+
body["enable_pg_native_login"] = self.enable_pg_native_login
|
|
251
269
|
if self.enable_readable_secondaries is not None:
|
|
252
270
|
body["enable_readable_secondaries"] = self.enable_readable_secondaries
|
|
253
271
|
if self.name is not None:
|
|
@@ -280,10 +298,12 @@ class DatabaseInstance:
|
|
|
280
298
|
child_instance_refs=_repeated_dict(d, "child_instance_refs", DatabaseInstanceRef),
|
|
281
299
|
creation_time=d.get("creation_time", None),
|
|
282
300
|
creator=d.get("creator", None),
|
|
301
|
+
effective_enable_pg_native_login=d.get("effective_enable_pg_native_login", None),
|
|
283
302
|
effective_enable_readable_secondaries=d.get("effective_enable_readable_secondaries", None),
|
|
284
303
|
effective_node_count=d.get("effective_node_count", None),
|
|
285
304
|
effective_retention_window_in_days=d.get("effective_retention_window_in_days", None),
|
|
286
305
|
effective_stopped=d.get("effective_stopped", None),
|
|
306
|
+
enable_pg_native_login=d.get("enable_pg_native_login", None),
|
|
287
307
|
enable_readable_secondaries=d.get("enable_readable_secondaries", None),
|
|
288
308
|
name=d.get("name", None),
|
|
289
309
|
node_count=d.get("node_count", None),
|
databricks/sdk/service/iam.py
CHANGED
|
@@ -2193,7 +2193,9 @@ class AccountGroupsAPI:
|
|
|
2193
2193
|
sort_order: Optional[ListSortOrder] = None,
|
|
2194
2194
|
start_index: Optional[int] = None,
|
|
2195
2195
|
) -> Iterator[Group]:
|
|
2196
|
-
"""Gets all details of the groups associated with the Databricks account.
|
|
2196
|
+
"""Gets all details of the groups associated with the Databricks account. As of 08/22/2025, this endpoint
|
|
2197
|
+
will not return members. Instead, members should be retrieved by iterating through `Get group
|
|
2198
|
+
details`.
|
|
2197
2199
|
|
|
2198
2200
|
:param attributes: str (optional)
|
|
2199
2201
|
Comma-separated list of attributes to return in response.
|
databricks/sdk/service/jobs.py
CHANGED
|
@@ -873,11 +873,16 @@ class Continuous:
|
|
|
873
873
|
pause_status: Optional[PauseStatus] = None
|
|
874
874
|
"""Indicate whether the continuous execution of the job is paused or not. Defaults to UNPAUSED."""
|
|
875
875
|
|
|
876
|
+
task_retry_mode: Optional[TaskRetryMode] = None
|
|
877
|
+
"""Indicate whether the continuous job is applying task level retries or not. Defaults to NEVER."""
|
|
878
|
+
|
|
876
879
|
def as_dict(self) -> dict:
|
|
877
880
|
"""Serializes the Continuous into a dictionary suitable for use as a JSON request body."""
|
|
878
881
|
body = {}
|
|
879
882
|
if self.pause_status is not None:
|
|
880
883
|
body["pause_status"] = self.pause_status.value
|
|
884
|
+
if self.task_retry_mode is not None:
|
|
885
|
+
body["task_retry_mode"] = self.task_retry_mode.value
|
|
881
886
|
return body
|
|
882
887
|
|
|
883
888
|
def as_shallow_dict(self) -> dict:
|
|
@@ -885,12 +890,17 @@ class Continuous:
|
|
|
885
890
|
body = {}
|
|
886
891
|
if self.pause_status is not None:
|
|
887
892
|
body["pause_status"] = self.pause_status
|
|
893
|
+
if self.task_retry_mode is not None:
|
|
894
|
+
body["task_retry_mode"] = self.task_retry_mode
|
|
888
895
|
return body
|
|
889
896
|
|
|
890
897
|
@classmethod
|
|
891
898
|
def from_dict(cls, d: Dict[str, Any]) -> Continuous:
|
|
892
899
|
"""Deserializes the Continuous from a dictionary."""
|
|
893
|
-
return cls(
|
|
900
|
+
return cls(
|
|
901
|
+
pause_status=_enum(d, "pause_status", PauseStatus),
|
|
902
|
+
task_retry_mode=_enum(d, "task_retry_mode", TaskRetryMode),
|
|
903
|
+
)
|
|
894
904
|
|
|
895
905
|
|
|
896
906
|
@dataclass
|
|
@@ -7891,6 +7901,16 @@ class TaskNotificationSettings:
|
|
|
7891
7901
|
)
|
|
7892
7902
|
|
|
7893
7903
|
|
|
7904
|
+
class TaskRetryMode(Enum):
|
|
7905
|
+
"""task retry mode of the continuous job * NEVER: The failed task will not be retried. *
|
|
7906
|
+
ON_FAILURE: Retry a failed task if at least one other task in the job is still running its first
|
|
7907
|
+
attempt. When this condition is no longer met or the retry limit is reached, the job run is
|
|
7908
|
+
cancelled and a new run is started."""
|
|
7909
|
+
|
|
7910
|
+
NEVER = "NEVER"
|
|
7911
|
+
ON_FAILURE = "ON_FAILURE"
|
|
7912
|
+
|
|
7913
|
+
|
|
7894
7914
|
class TerminationCodeCode(Enum):
|
|
7895
7915
|
"""The code indicates why the run was terminated. Additional codes might be introduced in future
|
|
7896
7916
|
releases. * `SUCCESS`: The run was completed successfully. * `SUCCESS_WITH_FAILURES`: The run
|
databricks/sdk/service/ml.py
CHANGED
|
@@ -1210,51 +1210,6 @@ class ExperimentTag:
|
|
|
1210
1210
|
return cls(key=d.get("key", None), value=d.get("value", None))
|
|
1211
1211
|
|
|
1212
1212
|
|
|
1213
|
-
@dataclass
|
|
1214
|
-
class Feature:
|
|
1215
|
-
"""Feature for model version."""
|
|
1216
|
-
|
|
1217
|
-
feature_name: Optional[str] = None
|
|
1218
|
-
"""Feature name"""
|
|
1219
|
-
|
|
1220
|
-
feature_table_id: Optional[str] = None
|
|
1221
|
-
"""Feature table id"""
|
|
1222
|
-
|
|
1223
|
-
feature_table_name: Optional[str] = None
|
|
1224
|
-
"""Feature table name"""
|
|
1225
|
-
|
|
1226
|
-
def as_dict(self) -> dict:
|
|
1227
|
-
"""Serializes the Feature into a dictionary suitable for use as a JSON request body."""
|
|
1228
|
-
body = {}
|
|
1229
|
-
if self.feature_name is not None:
|
|
1230
|
-
body["feature_name"] = self.feature_name
|
|
1231
|
-
if self.feature_table_id is not None:
|
|
1232
|
-
body["feature_table_id"] = self.feature_table_id
|
|
1233
|
-
if self.feature_table_name is not None:
|
|
1234
|
-
body["feature_table_name"] = self.feature_table_name
|
|
1235
|
-
return body
|
|
1236
|
-
|
|
1237
|
-
def as_shallow_dict(self) -> dict:
|
|
1238
|
-
"""Serializes the Feature into a shallow dictionary of its immediate attributes."""
|
|
1239
|
-
body = {}
|
|
1240
|
-
if self.feature_name is not None:
|
|
1241
|
-
body["feature_name"] = self.feature_name
|
|
1242
|
-
if self.feature_table_id is not None:
|
|
1243
|
-
body["feature_table_id"] = self.feature_table_id
|
|
1244
|
-
if self.feature_table_name is not None:
|
|
1245
|
-
body["feature_table_name"] = self.feature_table_name
|
|
1246
|
-
return body
|
|
1247
|
-
|
|
1248
|
-
@classmethod
|
|
1249
|
-
def from_dict(cls, d: Dict[str, Any]) -> Feature:
|
|
1250
|
-
"""Deserializes the Feature from a dictionary."""
|
|
1251
|
-
return cls(
|
|
1252
|
-
feature_name=d.get("feature_name", None),
|
|
1253
|
-
feature_table_id=d.get("feature_table_id", None),
|
|
1254
|
-
feature_table_name=d.get("feature_table_name", None),
|
|
1255
|
-
)
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
1213
|
@dataclass
|
|
1259
1214
|
class FeatureLineage:
|
|
1260
1215
|
feature_specs: Optional[List[FeatureLineageFeatureSpec]] = None
|
|
@@ -1391,7 +1346,7 @@ class FeatureLineageOnlineFeature:
|
|
|
1391
1346
|
class FeatureList:
|
|
1392
1347
|
"""Feature list wrap all the features for a model version"""
|
|
1393
1348
|
|
|
1394
|
-
features: Optional[List[
|
|
1349
|
+
features: Optional[List[LinkedFeature]] = None
|
|
1395
1350
|
|
|
1396
1351
|
def as_dict(self) -> dict:
|
|
1397
1352
|
"""Serializes the FeatureList into a dictionary suitable for use as a JSON request body."""
|
|
@@ -1410,7 +1365,7 @@ class FeatureList:
|
|
|
1410
1365
|
@classmethod
|
|
1411
1366
|
def from_dict(cls, d: Dict[str, Any]) -> FeatureList:
|
|
1412
1367
|
"""Deserializes the FeatureList from a dictionary."""
|
|
1413
|
-
return cls(features=_repeated_dict(d, "features",
|
|
1368
|
+
return cls(features=_repeated_dict(d, "features", LinkedFeature))
|
|
1414
1369
|
|
|
1415
1370
|
|
|
1416
1371
|
@dataclass
|
|
@@ -2054,6 +2009,51 @@ class JobSpecWithoutSecret:
|
|
|
2054
2009
|
return cls(job_id=d.get("job_id", None), workspace_url=d.get("workspace_url", None))
|
|
2055
2010
|
|
|
2056
2011
|
|
|
2012
|
+
@dataclass
|
|
2013
|
+
class LinkedFeature:
|
|
2014
|
+
"""Feature for model version. ([ML-57150] Renamed from Feature to LinkedFeature)"""
|
|
2015
|
+
|
|
2016
|
+
feature_name: Optional[str] = None
|
|
2017
|
+
"""Feature name"""
|
|
2018
|
+
|
|
2019
|
+
feature_table_id: Optional[str] = None
|
|
2020
|
+
"""Feature table id"""
|
|
2021
|
+
|
|
2022
|
+
feature_table_name: Optional[str] = None
|
|
2023
|
+
"""Feature table name"""
|
|
2024
|
+
|
|
2025
|
+
def as_dict(self) -> dict:
|
|
2026
|
+
"""Serializes the LinkedFeature into a dictionary suitable for use as a JSON request body."""
|
|
2027
|
+
body = {}
|
|
2028
|
+
if self.feature_name is not None:
|
|
2029
|
+
body["feature_name"] = self.feature_name
|
|
2030
|
+
if self.feature_table_id is not None:
|
|
2031
|
+
body["feature_table_id"] = self.feature_table_id
|
|
2032
|
+
if self.feature_table_name is not None:
|
|
2033
|
+
body["feature_table_name"] = self.feature_table_name
|
|
2034
|
+
return body
|
|
2035
|
+
|
|
2036
|
+
def as_shallow_dict(self) -> dict:
|
|
2037
|
+
"""Serializes the LinkedFeature into a shallow dictionary of its immediate attributes."""
|
|
2038
|
+
body = {}
|
|
2039
|
+
if self.feature_name is not None:
|
|
2040
|
+
body["feature_name"] = self.feature_name
|
|
2041
|
+
if self.feature_table_id is not None:
|
|
2042
|
+
body["feature_table_id"] = self.feature_table_id
|
|
2043
|
+
if self.feature_table_name is not None:
|
|
2044
|
+
body["feature_table_name"] = self.feature_table_name
|
|
2045
|
+
return body
|
|
2046
|
+
|
|
2047
|
+
@classmethod
|
|
2048
|
+
def from_dict(cls, d: Dict[str, Any]) -> LinkedFeature:
|
|
2049
|
+
"""Deserializes the LinkedFeature from a dictionary."""
|
|
2050
|
+
return cls(
|
|
2051
|
+
feature_name=d.get("feature_name", None),
|
|
2052
|
+
feature_table_id=d.get("feature_table_id", None),
|
|
2053
|
+
feature_table_name=d.get("feature_table_name", None),
|
|
2054
|
+
)
|
|
2055
|
+
|
|
2056
|
+
|
|
2057
2057
|
@dataclass
|
|
2058
2058
|
class ListArtifactsResponse:
|
|
2059
2059
|
files: Optional[List[FileInfo]] = None
|
|
@@ -613,6 +613,9 @@ class IngestionPipelineDefinition:
|
|
|
613
613
|
objects: Optional[List[IngestionConfig]] = None
|
|
614
614
|
"""Required. Settings specifying tables to replicate and the destination for the replicated tables."""
|
|
615
615
|
|
|
616
|
+
source_configurations: Optional[List[SourceConfig]] = None
|
|
617
|
+
"""Top-level source configurations"""
|
|
618
|
+
|
|
616
619
|
source_type: Optional[IngestionSourceType] = None
|
|
617
620
|
"""The type of the foreign source. The source type will be inferred from the source connection or
|
|
618
621
|
ingestion gateway. This field is output only and will be ignored if provided."""
|
|
@@ -630,6 +633,8 @@ class IngestionPipelineDefinition:
|
|
|
630
633
|
body["ingestion_gateway_id"] = self.ingestion_gateway_id
|
|
631
634
|
if self.objects:
|
|
632
635
|
body["objects"] = [v.as_dict() for v in self.objects]
|
|
636
|
+
if self.source_configurations:
|
|
637
|
+
body["source_configurations"] = [v.as_dict() for v in self.source_configurations]
|
|
633
638
|
if self.source_type is not None:
|
|
634
639
|
body["source_type"] = self.source_type.value
|
|
635
640
|
if self.table_configuration:
|
|
@@ -645,6 +650,8 @@ class IngestionPipelineDefinition:
|
|
|
645
650
|
body["ingestion_gateway_id"] = self.ingestion_gateway_id
|
|
646
651
|
if self.objects:
|
|
647
652
|
body["objects"] = self.objects
|
|
653
|
+
if self.source_configurations:
|
|
654
|
+
body["source_configurations"] = self.source_configurations
|
|
648
655
|
if self.source_type is not None:
|
|
649
656
|
body["source_type"] = self.source_type
|
|
650
657
|
if self.table_configuration:
|
|
@@ -658,6 +665,7 @@ class IngestionPipelineDefinition:
|
|
|
658
665
|
connection_name=d.get("connection_name", None),
|
|
659
666
|
ingestion_gateway_id=d.get("ingestion_gateway_id", None),
|
|
660
667
|
objects=_repeated_dict(d, "objects", IngestionConfig),
|
|
668
|
+
source_configurations=_repeated_dict(d, "source_configurations", SourceConfig),
|
|
661
669
|
source_type=_enum(d, "source_type", IngestionSourceType),
|
|
662
670
|
table_configuration=_from_dict(d, "table_configuration", TableSpecificConfig),
|
|
663
671
|
)
|
|
@@ -2239,6 +2247,67 @@ class PipelinesEnvironment:
|
|
|
2239
2247
|
return cls(dependencies=d.get("dependencies", None))
|
|
2240
2248
|
|
|
2241
2249
|
|
|
2250
|
+
@dataclass
|
|
2251
|
+
class PostgresCatalogConfig:
|
|
2252
|
+
"""PG-specific catalog-level configuration parameters"""
|
|
2253
|
+
|
|
2254
|
+
slot_config: Optional[PostgresSlotConfig] = None
|
|
2255
|
+
"""Optional. The Postgres slot configuration to use for logical replication"""
|
|
2256
|
+
|
|
2257
|
+
def as_dict(self) -> dict:
|
|
2258
|
+
"""Serializes the PostgresCatalogConfig into a dictionary suitable for use as a JSON request body."""
|
|
2259
|
+
body = {}
|
|
2260
|
+
if self.slot_config:
|
|
2261
|
+
body["slot_config"] = self.slot_config.as_dict()
|
|
2262
|
+
return body
|
|
2263
|
+
|
|
2264
|
+
def as_shallow_dict(self) -> dict:
|
|
2265
|
+
"""Serializes the PostgresCatalogConfig into a shallow dictionary of its immediate attributes."""
|
|
2266
|
+
body = {}
|
|
2267
|
+
if self.slot_config:
|
|
2268
|
+
body["slot_config"] = self.slot_config
|
|
2269
|
+
return body
|
|
2270
|
+
|
|
2271
|
+
@classmethod
|
|
2272
|
+
def from_dict(cls, d: Dict[str, Any]) -> PostgresCatalogConfig:
|
|
2273
|
+
"""Deserializes the PostgresCatalogConfig from a dictionary."""
|
|
2274
|
+
return cls(slot_config=_from_dict(d, "slot_config", PostgresSlotConfig))
|
|
2275
|
+
|
|
2276
|
+
|
|
2277
|
+
@dataclass
|
|
2278
|
+
class PostgresSlotConfig:
|
|
2279
|
+
"""PostgresSlotConfig contains the configuration for a Postgres logical replication slot"""
|
|
2280
|
+
|
|
2281
|
+
publication_name: Optional[str] = None
|
|
2282
|
+
"""The name of the publication to use for the Postgres source"""
|
|
2283
|
+
|
|
2284
|
+
slot_name: Optional[str] = None
|
|
2285
|
+
"""The name of the logical replication slot to use for the Postgres source"""
|
|
2286
|
+
|
|
2287
|
+
def as_dict(self) -> dict:
|
|
2288
|
+
"""Serializes the PostgresSlotConfig into a dictionary suitable for use as a JSON request body."""
|
|
2289
|
+
body = {}
|
|
2290
|
+
if self.publication_name is not None:
|
|
2291
|
+
body["publication_name"] = self.publication_name
|
|
2292
|
+
if self.slot_name is not None:
|
|
2293
|
+
body["slot_name"] = self.slot_name
|
|
2294
|
+
return body
|
|
2295
|
+
|
|
2296
|
+
def as_shallow_dict(self) -> dict:
|
|
2297
|
+
"""Serializes the PostgresSlotConfig into a shallow dictionary of its immediate attributes."""
|
|
2298
|
+
body = {}
|
|
2299
|
+
if self.publication_name is not None:
|
|
2300
|
+
body["publication_name"] = self.publication_name
|
|
2301
|
+
if self.slot_name is not None:
|
|
2302
|
+
body["slot_name"] = self.slot_name
|
|
2303
|
+
return body
|
|
2304
|
+
|
|
2305
|
+
@classmethod
|
|
2306
|
+
def from_dict(cls, d: Dict[str, Any]) -> PostgresSlotConfig:
|
|
2307
|
+
"""Deserializes the PostgresSlotConfig from a dictionary."""
|
|
2308
|
+
return cls(publication_name=d.get("publication_name", None), slot_name=d.get("slot_name", None))
|
|
2309
|
+
|
|
2310
|
+
|
|
2242
2311
|
@dataclass
|
|
2243
2312
|
class ReportSpec:
|
|
2244
2313
|
source_url: str
|
|
@@ -2527,6 +2596,67 @@ class SerializedException:
|
|
|
2527
2596
|
)
|
|
2528
2597
|
|
|
2529
2598
|
|
|
2599
|
+
@dataclass
|
|
2600
|
+
class SourceCatalogConfig:
|
|
2601
|
+
"""SourceCatalogConfig contains catalog-level custom configuration parameters for each source"""
|
|
2602
|
+
|
|
2603
|
+
postgres: Optional[PostgresCatalogConfig] = None
|
|
2604
|
+
"""Postgres-specific catalog-level configuration parameters"""
|
|
2605
|
+
|
|
2606
|
+
source_catalog: Optional[str] = None
|
|
2607
|
+
"""Source catalog name"""
|
|
2608
|
+
|
|
2609
|
+
def as_dict(self) -> dict:
|
|
2610
|
+
"""Serializes the SourceCatalogConfig into a dictionary suitable for use as a JSON request body."""
|
|
2611
|
+
body = {}
|
|
2612
|
+
if self.postgres:
|
|
2613
|
+
body["postgres"] = self.postgres.as_dict()
|
|
2614
|
+
if self.source_catalog is not None:
|
|
2615
|
+
body["source_catalog"] = self.source_catalog
|
|
2616
|
+
return body
|
|
2617
|
+
|
|
2618
|
+
def as_shallow_dict(self) -> dict:
|
|
2619
|
+
"""Serializes the SourceCatalogConfig into a shallow dictionary of its immediate attributes."""
|
|
2620
|
+
body = {}
|
|
2621
|
+
if self.postgres:
|
|
2622
|
+
body["postgres"] = self.postgres
|
|
2623
|
+
if self.source_catalog is not None:
|
|
2624
|
+
body["source_catalog"] = self.source_catalog
|
|
2625
|
+
return body
|
|
2626
|
+
|
|
2627
|
+
@classmethod
|
|
2628
|
+
def from_dict(cls, d: Dict[str, Any]) -> SourceCatalogConfig:
|
|
2629
|
+
"""Deserializes the SourceCatalogConfig from a dictionary."""
|
|
2630
|
+
return cls(
|
|
2631
|
+
postgres=_from_dict(d, "postgres", PostgresCatalogConfig), source_catalog=d.get("source_catalog", None)
|
|
2632
|
+
)
|
|
2633
|
+
|
|
2634
|
+
|
|
2635
|
+
@dataclass
|
|
2636
|
+
class SourceConfig:
|
|
2637
|
+
catalog: Optional[SourceCatalogConfig] = None
|
|
2638
|
+
"""Catalog-level source configuration parameters"""
|
|
2639
|
+
|
|
2640
|
+
def as_dict(self) -> dict:
|
|
2641
|
+
"""Serializes the SourceConfig into a dictionary suitable for use as a JSON request body."""
|
|
2642
|
+
body = {}
|
|
2643
|
+
if self.catalog:
|
|
2644
|
+
body["catalog"] = self.catalog.as_dict()
|
|
2645
|
+
return body
|
|
2646
|
+
|
|
2647
|
+
def as_shallow_dict(self) -> dict:
|
|
2648
|
+
"""Serializes the SourceConfig into a shallow dictionary of its immediate attributes."""
|
|
2649
|
+
body = {}
|
|
2650
|
+
if self.catalog:
|
|
2651
|
+
body["catalog"] = self.catalog
|
|
2652
|
+
return body
|
|
2653
|
+
|
|
2654
|
+
@classmethod
|
|
2655
|
+
def from_dict(cls, d: Dict[str, Any]) -> SourceConfig:
|
|
2656
|
+
"""Deserializes the SourceConfig from a dictionary."""
|
|
2657
|
+
return cls(catalog=_from_dict(d, "catalog", SourceCatalogConfig))
|
|
2658
|
+
|
|
2659
|
+
|
|
2530
2660
|
@dataclass
|
|
2531
2661
|
class StackFrame:
|
|
2532
2662
|
declaring_class: Optional[str] = None
|
|
@@ -3587,8 +3587,32 @@ class LlmProxyPartnerPoweredWorkspace:
|
|
|
3587
3587
|
|
|
3588
3588
|
@dataclass
|
|
3589
3589
|
class MicrosoftTeamsConfig:
|
|
3590
|
+
app_id: Optional[str] = None
|
|
3591
|
+
"""[Input-Only] App ID for Microsoft Teams App."""
|
|
3592
|
+
|
|
3593
|
+
app_id_set: Optional[bool] = None
|
|
3594
|
+
"""[Output-Only] Whether App ID is set."""
|
|
3595
|
+
|
|
3596
|
+
auth_secret: Optional[str] = None
|
|
3597
|
+
"""[Input-Only] Secret for Microsoft Teams App authentication."""
|
|
3598
|
+
|
|
3599
|
+
auth_secret_set: Optional[bool] = None
|
|
3600
|
+
"""[Output-Only] Whether secret is set."""
|
|
3601
|
+
|
|
3602
|
+
channel_url: Optional[str] = None
|
|
3603
|
+
"""[Input-Only] Channel URL for Microsoft Teams App."""
|
|
3604
|
+
|
|
3605
|
+
channel_url_set: Optional[bool] = None
|
|
3606
|
+
"""[Output-Only] Whether Channel URL is set."""
|
|
3607
|
+
|
|
3608
|
+
tenant_id: Optional[str] = None
|
|
3609
|
+
"""[Input-Only] Tenant ID for Microsoft Teams App."""
|
|
3610
|
+
|
|
3611
|
+
tenant_id_set: Optional[bool] = None
|
|
3612
|
+
"""[Output-Only] Whether Tenant ID is set."""
|
|
3613
|
+
|
|
3590
3614
|
url: Optional[str] = None
|
|
3591
|
-
"""[Input-Only] URL for Microsoft Teams."""
|
|
3615
|
+
"""[Input-Only] URL for Microsoft Teams webhook."""
|
|
3592
3616
|
|
|
3593
3617
|
url_set: Optional[bool] = None
|
|
3594
3618
|
"""[Output-Only] Whether URL is set."""
|
|
@@ -3596,6 +3620,22 @@ class MicrosoftTeamsConfig:
|
|
|
3596
3620
|
def as_dict(self) -> dict:
|
|
3597
3621
|
"""Serializes the MicrosoftTeamsConfig into a dictionary suitable for use as a JSON request body."""
|
|
3598
3622
|
body = {}
|
|
3623
|
+
if self.app_id is not None:
|
|
3624
|
+
body["app_id"] = self.app_id
|
|
3625
|
+
if self.app_id_set is not None:
|
|
3626
|
+
body["app_id_set"] = self.app_id_set
|
|
3627
|
+
if self.auth_secret is not None:
|
|
3628
|
+
body["auth_secret"] = self.auth_secret
|
|
3629
|
+
if self.auth_secret_set is not None:
|
|
3630
|
+
body["auth_secret_set"] = self.auth_secret_set
|
|
3631
|
+
if self.channel_url is not None:
|
|
3632
|
+
body["channel_url"] = self.channel_url
|
|
3633
|
+
if self.channel_url_set is not None:
|
|
3634
|
+
body["channel_url_set"] = self.channel_url_set
|
|
3635
|
+
if self.tenant_id is not None:
|
|
3636
|
+
body["tenant_id"] = self.tenant_id
|
|
3637
|
+
if self.tenant_id_set is not None:
|
|
3638
|
+
body["tenant_id_set"] = self.tenant_id_set
|
|
3599
3639
|
if self.url is not None:
|
|
3600
3640
|
body["url"] = self.url
|
|
3601
3641
|
if self.url_set is not None:
|
|
@@ -3605,6 +3645,22 @@ class MicrosoftTeamsConfig:
|
|
|
3605
3645
|
def as_shallow_dict(self) -> dict:
|
|
3606
3646
|
"""Serializes the MicrosoftTeamsConfig into a shallow dictionary of its immediate attributes."""
|
|
3607
3647
|
body = {}
|
|
3648
|
+
if self.app_id is not None:
|
|
3649
|
+
body["app_id"] = self.app_id
|
|
3650
|
+
if self.app_id_set is not None:
|
|
3651
|
+
body["app_id_set"] = self.app_id_set
|
|
3652
|
+
if self.auth_secret is not None:
|
|
3653
|
+
body["auth_secret"] = self.auth_secret
|
|
3654
|
+
if self.auth_secret_set is not None:
|
|
3655
|
+
body["auth_secret_set"] = self.auth_secret_set
|
|
3656
|
+
if self.channel_url is not None:
|
|
3657
|
+
body["channel_url"] = self.channel_url
|
|
3658
|
+
if self.channel_url_set is not None:
|
|
3659
|
+
body["channel_url_set"] = self.channel_url_set
|
|
3660
|
+
if self.tenant_id is not None:
|
|
3661
|
+
body["tenant_id"] = self.tenant_id
|
|
3662
|
+
if self.tenant_id_set is not None:
|
|
3663
|
+
body["tenant_id_set"] = self.tenant_id_set
|
|
3608
3664
|
if self.url is not None:
|
|
3609
3665
|
body["url"] = self.url
|
|
3610
3666
|
if self.url_set is not None:
|
|
@@ -3614,7 +3670,18 @@ class MicrosoftTeamsConfig:
|
|
|
3614
3670
|
@classmethod
|
|
3615
3671
|
def from_dict(cls, d: Dict[str, Any]) -> MicrosoftTeamsConfig:
|
|
3616
3672
|
"""Deserializes the MicrosoftTeamsConfig from a dictionary."""
|
|
3617
|
-
return cls(
|
|
3673
|
+
return cls(
|
|
3674
|
+
app_id=d.get("app_id", None),
|
|
3675
|
+
app_id_set=d.get("app_id_set", None),
|
|
3676
|
+
auth_secret=d.get("auth_secret", None),
|
|
3677
|
+
auth_secret_set=d.get("auth_secret_set", None),
|
|
3678
|
+
channel_url=d.get("channel_url", None),
|
|
3679
|
+
channel_url_set=d.get("channel_url_set", None),
|
|
3680
|
+
tenant_id=d.get("tenant_id", None),
|
|
3681
|
+
tenant_id_set=d.get("tenant_id_set", None),
|
|
3682
|
+
url=d.get("url", None),
|
|
3683
|
+
url_set=d.get("url_set", None),
|
|
3684
|
+
)
|
|
3618
3685
|
|
|
3619
3686
|
|
|
3620
3687
|
@dataclass
|
|
@@ -872,6 +872,60 @@ class QueryVectorIndexResponse:
|
|
|
872
872
|
)
|
|
873
873
|
|
|
874
874
|
|
|
875
|
+
@dataclass
|
|
876
|
+
class RerankerConfig:
|
|
877
|
+
model: Optional[str] = None
|
|
878
|
+
|
|
879
|
+
parameters: Optional[RerankerConfigRerankerParameters] = None
|
|
880
|
+
|
|
881
|
+
def as_dict(self) -> dict:
|
|
882
|
+
"""Serializes the RerankerConfig into a dictionary suitable for use as a JSON request body."""
|
|
883
|
+
body = {}
|
|
884
|
+
if self.model is not None:
|
|
885
|
+
body["model"] = self.model
|
|
886
|
+
if self.parameters:
|
|
887
|
+
body["parameters"] = self.parameters.as_dict()
|
|
888
|
+
return body
|
|
889
|
+
|
|
890
|
+
def as_shallow_dict(self) -> dict:
|
|
891
|
+
"""Serializes the RerankerConfig into a shallow dictionary of its immediate attributes."""
|
|
892
|
+
body = {}
|
|
893
|
+
if self.model is not None:
|
|
894
|
+
body["model"] = self.model
|
|
895
|
+
if self.parameters:
|
|
896
|
+
body["parameters"] = self.parameters
|
|
897
|
+
return body
|
|
898
|
+
|
|
899
|
+
@classmethod
|
|
900
|
+
def from_dict(cls, d: Dict[str, Any]) -> RerankerConfig:
|
|
901
|
+
"""Deserializes the RerankerConfig from a dictionary."""
|
|
902
|
+
return cls(model=d.get("model", None), parameters=_from_dict(d, "parameters", RerankerConfigRerankerParameters))
|
|
903
|
+
|
|
904
|
+
|
|
905
|
+
@dataclass
|
|
906
|
+
class RerankerConfigRerankerParameters:
|
|
907
|
+
columns_to_rerank: Optional[List[str]] = None
|
|
908
|
+
|
|
909
|
+
def as_dict(self) -> dict:
|
|
910
|
+
"""Serializes the RerankerConfigRerankerParameters into a dictionary suitable for use as a JSON request body."""
|
|
911
|
+
body = {}
|
|
912
|
+
if self.columns_to_rerank:
|
|
913
|
+
body["columns_to_rerank"] = [v for v in self.columns_to_rerank]
|
|
914
|
+
return body
|
|
915
|
+
|
|
916
|
+
def as_shallow_dict(self) -> dict:
|
|
917
|
+
"""Serializes the RerankerConfigRerankerParameters into a shallow dictionary of its immediate attributes."""
|
|
918
|
+
body = {}
|
|
919
|
+
if self.columns_to_rerank:
|
|
920
|
+
body["columns_to_rerank"] = self.columns_to_rerank
|
|
921
|
+
return body
|
|
922
|
+
|
|
923
|
+
@classmethod
|
|
924
|
+
def from_dict(cls, d: Dict[str, Any]) -> RerankerConfigRerankerParameters:
|
|
925
|
+
"""Deserializes the RerankerConfigRerankerParameters from a dictionary."""
|
|
926
|
+
return cls(columns_to_rerank=d.get("columns_to_rerank", None))
|
|
927
|
+
|
|
928
|
+
|
|
875
929
|
@dataclass
|
|
876
930
|
class ResultData:
|
|
877
931
|
"""Data returned in the query result."""
|
|
@@ -1468,7 +1522,8 @@ class VectorSearchEndpointsAPI:
|
|
|
1468
1522
|
:param endpoint_name: str
|
|
1469
1523
|
Name of the vector search endpoint
|
|
1470
1524
|
:param budget_policy_id: str
|
|
1471
|
-
The budget policy id to be applied
|
|
1525
|
+
The budget policy id to be applied (hima-sheth) TODO: remove this once we've migrated to usage
|
|
1526
|
+
policies
|
|
1472
1527
|
|
|
1473
1528
|
:returns: :class:`PatchEndpointBudgetPolicyResponse`
|
|
1474
1529
|
"""
|
|
@@ -1608,20 +1663,27 @@ class VectorSearchIndexesAPI:
|
|
|
1608
1663
|
|
|
1609
1664
|
self._api.do("DELETE", f"/api/2.0/vector-search/indexes/{index_name}", headers=headers)
|
|
1610
1665
|
|
|
1611
|
-
def get_index(self, index_name: str) -> VectorIndex:
|
|
1666
|
+
def get_index(self, index_name: str, *, ensure_reranker_compatible: Optional[bool] = None) -> VectorIndex:
|
|
1612
1667
|
"""Get an index.
|
|
1613
1668
|
|
|
1614
1669
|
:param index_name: str
|
|
1615
1670
|
Name of the index
|
|
1671
|
+
:param ensure_reranker_compatible: bool (optional)
|
|
1672
|
+
If true, the URL returned for the index is guaranteed to be compatible with the reranker. Currently
|
|
1673
|
+
this means we return the CP URL regardless of how the index is being accessed. If not set or set to
|
|
1674
|
+
false, the URL may still be compatible with the reranker depending on what URL we return.
|
|
1616
1675
|
|
|
1617
1676
|
:returns: :class:`VectorIndex`
|
|
1618
1677
|
"""
|
|
1619
1678
|
|
|
1679
|
+
query = {}
|
|
1680
|
+
if ensure_reranker_compatible is not None:
|
|
1681
|
+
query["ensure_reranker_compatible"] = ensure_reranker_compatible
|
|
1620
1682
|
headers = {
|
|
1621
1683
|
"Accept": "application/json",
|
|
1622
1684
|
}
|
|
1623
1685
|
|
|
1624
|
-
res = self._api.do("GET", f"/api/2.0/vector-search/indexes/{index_name}", headers=headers)
|
|
1686
|
+
res = self._api.do("GET", f"/api/2.0/vector-search/indexes/{index_name}", query=query, headers=headers)
|
|
1625
1687
|
return VectorIndex.from_dict(res)
|
|
1626
1688
|
|
|
1627
1689
|
def list_indexes(self, endpoint_name: str, *, page_token: Optional[str] = None) -> Iterator[MiniVectorIndex]:
|
|
@@ -1664,6 +1726,7 @@ class VectorSearchIndexesAPI:
|
|
|
1664
1726
|
query_text: Optional[str] = None,
|
|
1665
1727
|
query_type: Optional[str] = None,
|
|
1666
1728
|
query_vector: Optional[List[float]] = None,
|
|
1729
|
+
reranker: Optional[RerankerConfig] = None,
|
|
1667
1730
|
score_threshold: Optional[float] = None,
|
|
1668
1731
|
) -> QueryVectorIndexResponse:
|
|
1669
1732
|
"""Query the specified vector index.
|
|
@@ -1691,6 +1754,7 @@ class VectorSearchIndexesAPI:
|
|
|
1691
1754
|
:param query_vector: List[float] (optional)
|
|
1692
1755
|
Query vector. Required for Direct Vector Access Index and Delta Sync Index using self-managed
|
|
1693
1756
|
vectors.
|
|
1757
|
+
:param reranker: :class:`RerankerConfig` (optional)
|
|
1694
1758
|
:param score_threshold: float (optional)
|
|
1695
1759
|
Threshold for the approximate nearest neighbor search. Defaults to 0.0.
|
|
1696
1760
|
|
|
@@ -1711,6 +1775,8 @@ class VectorSearchIndexesAPI:
|
|
|
1711
1775
|
body["query_type"] = query_type
|
|
1712
1776
|
if query_vector is not None:
|
|
1713
1777
|
body["query_vector"] = [v for v in query_vector]
|
|
1778
|
+
if reranker is not None:
|
|
1779
|
+
body["reranker"] = reranker.as_dict()
|
|
1714
1780
|
if score_threshold is not None:
|
|
1715
1781
|
body["score_threshold"] = score_threshold
|
|
1716
1782
|
headers = {
|
databricks/sdk/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.
|
|
1
|
+
__version__ = "0.65.0"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: databricks-sdk
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.65.0
|
|
4
4
|
Summary: Databricks SDK for Python (Beta)
|
|
5
5
|
Project-URL: Documentation, https://databricks-sdk-py.readthedocs.io
|
|
6
6
|
Keywords: databricks,sdk
|
|
@@ -26,7 +26,7 @@ Requires-Dist: google-auth~=2.0
|
|
|
26
26
|
Provides-Extra: dev
|
|
27
27
|
Requires-Dist: pytest; extra == "dev"
|
|
28
28
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
29
|
-
Requires-Dist: pytest-xdist; extra == "dev"
|
|
29
|
+
Requires-Dist: pytest-xdist<4.0,>=3.6.1; extra == "dev"
|
|
30
30
|
Requires-Dist: pytest-mock; extra == "dev"
|
|
31
31
|
Requires-Dist: black; extra == "dev"
|
|
32
32
|
Requires-Dist: pycodestyle; extra == "dev"
|
|
@@ -17,7 +17,7 @@ databricks/sdk/oidc_token_supplier.py,sha256=QrO6J0QY4yFfcdQDL5h2OfxMxvBZJPtPmPe
|
|
|
17
17
|
databricks/sdk/py.typed,sha256=pSvaHpbY1UPNEXyVFUjlgBhjPFZMmVC_UNrPC7eMOHI,74
|
|
18
18
|
databricks/sdk/retries.py,sha256=7k2kEexGqGKXHNAWHbPFSZSugU8UIU0qtyly_hix22Q,2581
|
|
19
19
|
databricks/sdk/useragent.py,sha256=boEgzTv-Zmo6boipZKjSopNy0CXg4GShC1_lTKpJgqs,7361
|
|
20
|
-
databricks/sdk/version.py,sha256=
|
|
20
|
+
databricks/sdk/version.py,sha256=eauVKKmGRrPjcW6OLz78zXL8jRoYaQPOL0tbet7E8Vo,23
|
|
21
21
|
databricks/sdk/_widgets/__init__.py,sha256=VhI-VvLlr3rKUT1nbROslHJIbmZX_tPJ9rRhrdFsYUA,2811
|
|
22
22
|
databricks/sdk/_widgets/default_widgets_utils.py,sha256=_hwCbptLbRzWEmknco0H1wQNAYcuy2pjFO9NiRbvFeo,1127
|
|
23
23
|
databricks/sdk/_widgets/ipywidgets_utils.py,sha256=mg3rEPG9z76e0yVjGgcLybUvd_zSuN5ziGeKiZ-c8Ew,2927
|
|
@@ -38,7 +38,7 @@ databricks/sdk/mixins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
|
38
38
|
databricks/sdk/mixins/compute.py,sha256=76Fhc7cDQfOf2IHkPtHZpAnxNfrSLMKl9dbQ6KswXaM,11066
|
|
39
39
|
databricks/sdk/mixins/files.py,sha256=Y3IvOnB9Yogf6Ndr2uJ-HLGm57sHACoic4N3MXXmx38,57605
|
|
40
40
|
databricks/sdk/mixins/jobs.py,sha256=4ywi0dZ8mEN8KZWLmZBFfdbejTP6JATvf9wCCRkdJBw,11558
|
|
41
|
-
databricks/sdk/mixins/open_ai_client.py,sha256=
|
|
41
|
+
databricks/sdk/mixins/open_ai_client.py,sha256=Tur77AvlUJd-gDSfLb1mtMJhWuTwp1ufon9-7HGGOnQ,7969
|
|
42
42
|
databricks/sdk/mixins/workspace.py,sha256=sgahprJIPLAxTvikHd9Wq2ifBW1Mcc5qz9u6EB-qm7w,4958
|
|
43
43
|
databricks/sdk/runtime/__init__.py,sha256=6nthZxeYY1HjHieQcP7kXVLIId7w2yfHpZRXXtDLDAc,7333
|
|
44
44
|
databricks/sdk/runtime/dbutils_stub.py,sha256=S_pgWyGmwp3Ay-pMDEXccYsPwNVqCtz7MpD3fZVlHUA,11408
|
|
@@ -48,30 +48,30 @@ databricks/sdk/service/agentbricks.py,sha256=cGl_d1MEFG2XY48WN9veCJ4UgVMadC9KOsD
|
|
|
48
48
|
databricks/sdk/service/apps.py,sha256=RXuwG12MU62W9B855dP9N99R47hAZkNJlXcdmCNe5Jo,77562
|
|
49
49
|
databricks/sdk/service/billing.py,sha256=Y1tuA7x-wl720TCA98merqUqwrhA4KGd92oWCv679ps,90880
|
|
50
50
|
databricks/sdk/service/catalog.py,sha256=JjvVZdQ8my2JnYMrTgK55ixb8Bs6I2C0pALB0Kx_S0Y,657446
|
|
51
|
-
databricks/sdk/service/cleanrooms.py,sha256=
|
|
51
|
+
databricks/sdk/service/cleanrooms.py,sha256=EOsSMl103re7FJPGGvyrnAo-HLS1RUwL09yM7PyQaso,81148
|
|
52
52
|
databricks/sdk/service/compute.py,sha256=ZRCPSF2CkJaT5RNWb1YWSYVj8_EjQft13xPj0vDFQpc,468481
|
|
53
|
-
databricks/sdk/service/dashboards.py,sha256=
|
|
54
|
-
databricks/sdk/service/database.py,sha256=
|
|
53
|
+
databricks/sdk/service/dashboards.py,sha256=_sgmqKwSVShGJiKzD5eBrU6GkMDvF0OlrwIFTFCLs2I,97952
|
|
54
|
+
databricks/sdk/service/database.py,sha256=UAdYY0n0LADLRZW7bzB4EcAp8SgbOOgv8_8CGbEif8U,87319
|
|
55
55
|
databricks/sdk/service/files.py,sha256=k28gM20L9bw_RmKcIm8IcNFfHVtENCbakptM3p8bgbw,38403
|
|
56
|
-
databricks/sdk/service/iam.py,sha256=
|
|
57
|
-
databricks/sdk/service/jobs.py,sha256=
|
|
56
|
+
databricks/sdk/service/iam.py,sha256=seqnHS8P840m6bnx4Bp9ftArBQHb_e2IlI7dWE_FW7Y,165920
|
|
57
|
+
databricks/sdk/service/jobs.py,sha256=SkChfnKaGsV5kg1S7ZM8U313bApFqr0w0RscX92uSrw,432593
|
|
58
58
|
databricks/sdk/service/marketplace.py,sha256=8MpP8Y65R6bGyvuWW4ZU6b-6__a4WLZVcDScLh0to4g,153028
|
|
59
|
-
databricks/sdk/service/ml.py,sha256=
|
|
59
|
+
databricks/sdk/service/ml.py,sha256=7QyoeyT_FRNhwA3zD8faUlnOL6aKgkTo4tLg3oGw2EA,303866
|
|
60
60
|
databricks/sdk/service/oauth2.py,sha256=6yoa5zmpJ68lCIIFyqcrM3fiSaWvPtf7Pl1dNhXL9pU,75330
|
|
61
|
-
databricks/sdk/service/pipelines.py,sha256=
|
|
61
|
+
databricks/sdk/service/pipelines.py,sha256=4eMigB0xIVKX7nPZCHUbp8ymq3sOV3qqmVqJwoJHP84,159629
|
|
62
62
|
databricks/sdk/service/provisioning.py,sha256=zZm_4lDO_mhDAOcaNoMDDz4Die_MXoapNa4NuwLJYww,129980
|
|
63
63
|
databricks/sdk/service/qualitymonitorv2.py,sha256=82IUD7oTDNPwMcIDE_v59-nr2I3gpL65Ih7UfB5eInY,9202
|
|
64
64
|
databricks/sdk/service/serving.py,sha256=xDddrGyr7836whZCf2Cfr7dmWHye1-r7EZ3YorEgWlw,214037
|
|
65
|
-
databricks/sdk/service/settings.py,sha256=
|
|
65
|
+
databricks/sdk/service/settings.py,sha256=032ZhPMCCEA6fMnEdWWIg6qcsdC5Oc7pFBjvhvzT0ns,375492
|
|
66
66
|
databricks/sdk/service/settingsv2.py,sha256=l6uKjlMwXb8z4GX37cQceDvgug6hx1sjZTQVr3TTAzg,39673
|
|
67
67
|
databricks/sdk/service/sharing.py,sha256=7B4wnHx4bu6PqOCST2Q8GUcZH7yVInj0L645Z5RfGE8,142394
|
|
68
68
|
databricks/sdk/service/sql.py,sha256=C2OhRU9_z8K7Jr4po86rxGYAgMVEbyHp4IhlC4HNbQg,387360
|
|
69
69
|
databricks/sdk/service/tags.py,sha256=sx1sMAfBE9Y5yu2mBSWXZKW3l_NTA1ujPQ3oHEljc_E,7817
|
|
70
|
-
databricks/sdk/service/vectorsearch.py,sha256=
|
|
70
|
+
databricks/sdk/service/vectorsearch.py,sha256=y2GK_kgArrgPwf1gXtHfuIt3nn5GD9GapSmQTemdhYE,72592
|
|
71
71
|
databricks/sdk/service/workspace.py,sha256=iss6wuYvMDSMrgwks0FuRRBeJSZFmWNOCkPIMJAzMgY,111868
|
|
72
|
-
databricks_sdk-0.
|
|
73
|
-
databricks_sdk-0.
|
|
74
|
-
databricks_sdk-0.
|
|
75
|
-
databricks_sdk-0.
|
|
76
|
-
databricks_sdk-0.
|
|
77
|
-
databricks_sdk-0.
|
|
72
|
+
databricks_sdk-0.65.0.dist-info/licenses/LICENSE,sha256=afBgTZo-JsYqj4VOjnejBetMuHKcFR30YobDdpVFkqY,11411
|
|
73
|
+
databricks_sdk-0.65.0.dist-info/licenses/NOTICE,sha256=tkRcQYA1k68wDLcnOWbg2xJDsUOJw8G8DGBhb8dnI3w,1588
|
|
74
|
+
databricks_sdk-0.65.0.dist-info/METADATA,sha256=MMtxLGRv6dxA70T1shr1a-5CYOvuOlt8EQFaWUcketM,39409
|
|
75
|
+
databricks_sdk-0.65.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
76
|
+
databricks_sdk-0.65.0.dist-info/top_level.txt,sha256=7kRdatoSgU0EUurRQJ_3F1Nv4EOSHWAr6ng25tJOJKU,11
|
|
77
|
+
databricks_sdk-0.65.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|