1- import logging
21import os
32from typing import Any , Generator
43from urllib .parse import urlparse
1110from openai .resources .responses import AsyncResponses , Responses
1211from typing_extensions import override
1312
14- logger = logging .getLogger (__name__ )
15-
1613# Prefix for routing requests to Databricks Apps
1714_APPS_ENDPOINT_PREFIX = "apps/"
1815# Domain pattern indicating a Databricks App URL
@@ -117,28 +114,19 @@ def _get_ai_gateway_base_url(
117114 Returns None if gateway is not available.
118115 """
119116 try :
120- url = f"{ host } /api/ai-gateway/v2/endpoints"
121- logger .debug ("Probing AI Gateway V2 at %s" , url )
122- response = http_client .get (url )
117+ response = http_client .get (f"{ host } /api/ai-gateway/v2/endpoints" )
123118 if response .status_code != 200 :
124- logger .debug ("AI Gateway V2 probe returned status %s" , response .status_code )
125119 return None
126120 data = response .json ()
127121 endpoints = data .get ("endpoints" , [])
128122 if not endpoints :
129- logger .debug ("AI Gateway V2 returned no endpoints" )
130123 return None
131- # Extract gateway base URL from the first endpoint's ai_gateway_url
132124 gateway_url = endpoints [0 ].get ("ai_gateway_url" )
133125 if not gateway_url :
134- logger .debug ("AI Gateway V2 endpoint missing ai_gateway_url field" )
135126 return None
136127 parsed = urlparse (gateway_url )
137- base_url = f"{ parsed .scheme } ://{ parsed .netloc } /mlflow/v1"
138- logger .info ("AI Gateway V2 detected, using base URL: %s" , base_url )
139- return base_url
128+ return f"{ parsed .scheme } ://{ parsed .netloc } /mlflow/v1"
140129 except Exception :
141- logger .debug ("AI Gateway V2 check failed, falling back to serving endpoints" , exc_info = True )
142130 return None
143131
144132
@@ -159,6 +147,10 @@ def _resolve_base_url(
159147 gateway_url = _get_ai_gateway_base_url (http_client , workspace_client .config .host )
160148 if gateway_url :
161149 return gateway_url
150+ raise ValueError (
151+ "use_ai_gateway=True but AI Gateway V2 is not available for this workspace. "
152+ "Set use_ai_gateway=False to use serving endpoints directly."
153+ )
162154
163155 # Fallback to using serving endpoints
164156 return f"{ workspace_client .config .host } /serving-endpoints"
0 commit comments