Skip to content

Commit cee6faa

Browse files
authored
Merge branch 'main' into main
2 parents 7121a8c + 8d205cc commit cee6faa

21 files changed

Lines changed: 2884 additions & 105 deletions

.codegen/_openapi_sha

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3ae6f76120079424c8654263eafbc30ec0551854
1+
6701524136501ef070774942ef5d6e01cfaafb88

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ databricks/sdk/service/provisioning.py linguist-generated=true
2020
databricks/sdk/service/qualitymonitorv2.py linguist-generated=true
2121
databricks/sdk/service/serving.py linguist-generated=true
2222
databricks/sdk/service/settings.py linguist-generated=true
23+
databricks/sdk/service/settingsv2.py linguist-generated=true
2324
databricks/sdk/service/sharing.py linguist-generated=true
2425
databricks/sdk/service/sql.py linguist-generated=true
26+
databricks/sdk/service/tags.py linguist-generated=true
2527
databricks/sdk/service/vectorsearch.py linguist-generated=true
2628
databricks/sdk/service/workspace.py linguist-generated=true

.release_metadata.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"timestamp": "2025-08-13 08:59:01+0000"
2+
"timestamp": "2025-08-20 11:46:15+0000"
33
}

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,30 @@
11
# Version changelog
22

3+
## Release v0.64.0
4+
5+
### API Changes
6+
* Added `databricks.sdk.service.settingsv2` and `databricks.sdk.service.tags` packages.
7+
* Added [w.apps_settings](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/apps/apps_settings.html) workspace-level service.
8+
* Added [w.entity_tag_assignments](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/catalog/entity_tag_assignments.html) workspace-level service and [w.rfa](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/catalog/rfa.html) workspace-level service.
9+
* Added [a.account_settings_v2](https://databricks-sdk-py.readthedocs.io/en/latest/account/settingsv2/account_settings_v2.html) account-level service and [w.workspace_settings_v2](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/settingsv2/workspace_settings_v2.html) workspace-level service.
10+
* Added [w.tag_policies](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/tags/tag_policies.html) workspace-level service.
11+
* Added `delete_conversation_message()`, `list_conversation_messages()` and `send_message_feedback()` methods for [w.genie](https://databricks-sdk-py.readthedocs.io/en/latest/workspace/dashboards/genie.html) workspace-level service.
12+
* Added `include_all` field for `databricks.sdk.service.dashboards.GenieListConversationsRequest`.
13+
* Added `effective_usage_policy_id` field for `databricks.sdk.service.jobs.BaseJob`.
14+
* Added `effective_usage_policy_id` field for `databricks.sdk.service.jobs.BaseRun`.
15+
* Added `effective_usage_policy_id` field for `databricks.sdk.service.jobs.Job`.
16+
* Added `effective_usage_policy_id` field for `databricks.sdk.service.jobs.Run`.
17+
* Added `tokens` field for `databricks.sdk.service.serving.AiGatewayRateLimit`.
18+
* Added `usage_policy_id` field for `databricks.sdk.service.serving.ServingEndpoint`.
19+
* Added `effective_run_as` and `run_as` fields for `databricks.sdk.service.sql.AlertV2`.
20+
* Added `cache_query_id` field for `databricks.sdk.service.sql.QueryInfo`.
21+
* Added `model_endpoint_name_for_query` field for `databricks.sdk.service.vectorsearch.EmbeddingSourceColumn`.
22+
* [Breaking] Removed `environment_settings` field for `databricks.sdk.service.catalog.ConnectionInfo`.
23+
* [Breaking] Removed `environment_settings` field for `databricks.sdk.service.catalog.CreateConnection`.
24+
* [Breaking] Removed `environment_settings` field for `databricks.sdk.service.catalog.UpdateConnection`.
25+
* [Breaking] Removed `comment`, `display_name` and `tags` fields for `databricks.sdk.service.sharing.Share`.
26+
27+
328
## Release v0.63.0
429

530
### API Changes

NEXT_CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
# NEXT CHANGELOG
22

3-
## Release v0.64.0
3+
## Release v0.65.0
44

55
### New Features and Improvements
66

7+
* Added support for passing additional kwargs to `WorkspaceClient().serving_endpoints.get_open_ai_client()` ([#1025](https://github.com/databricks/databricks-sdk-py/pull/1025)). Users can now pass standard OpenAI client parameters like `timeout` and `max_retries` when creating an OpenAI client for Databricks Model Serving.
8+
79
### Bug Fixes
810

911
### Documentation

databricks/sdk/__init__.py

Lines changed: 45 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

databricks/sdk/mixins/open_ai_client.py

Lines changed: 55 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,68 @@ def auth_flow(self, request: httpx.Request) -> httpx.Request:
3131
http_client = httpx.Client(auth=databricks_token_auth)
3232
return http_client
3333

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+
"""
3569
try:
3670
from openai import OpenAI
3771
except Exception:
3872
raise ImportError(
3973
"Open AI is not installed. Please install the Databricks SDK with the following command `pip install databricks-sdk[openai]`"
4074
)
4175

42-
return OpenAI(
43-
base_url=self._api._cfg.host + "/serving-endpoints",
44-
api_key="no-token", # Passing in a placeholder to pass validations, this will not be used
45-
http_client=self._get_authorized_http_client(),
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)
4796

4897
def get_langchain_chat_open_ai_client(self, model):
4998
try:

databricks/sdk/service/agentbricks.py

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)