Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Utilizzare l'endpoint proxy delle connessioni del catalogo Unity con l'SDK client del servizio esterno per invocare direttamente le API REST dal codice dell'agente. Puntare l'URL di base dell'SDK all'endpoint proxy e usare il token Azure Databricks come chiave API. Azure Databricks autentica la richiesta e inserisce automaticamente le credenziali del servizio esterno dalla connessione di Unity Catalog. Il codice non gestisce direttamente i token del servizio esterno.
Requisiti
- Python 3.12 e accesso allo spazio di lavoro.
- Una connessione HTTP di Unity Catalog per il servizio esterno. L'endpoint proxy utilizza questa connessione per autenticare e iniettare le credenziali del servizio.
-
USE CONNECTIONsull'oggetto di connessione.
OpenAI
Usare DatabricksOpenAI per instradare le chiamate esterne a OpenAI tramite il proxy di connessioni di Unity Catalog. Creare prima di tutto una connessione HTTP di Unity Catalog usando la chiave API OpenAI archiviata come segreto databricks:
CREATE CONNECTION openai_connection TYPE HTTP
OPTIONS (
host 'https://api.openai.com',
base_path '/v1',
bearer_token secret ('<secret-scope>', '<secret-key>')
);
Installare quindi il databricks-openai pacchetto e usare l'URL proxy e il client dell'area di lavoro nel codice dell'agente:
pip install --upgrade databricks-openai
from databricks_openai import DatabricksOpenAI
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
client = DatabricksOpenAI(
workspace_client=w,
base_url=f"{w.config.host}/api/2.0/unity-catalog/connections/openai_connection/proxy/",
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)
Slack
Configurare lo Slack SDK per instradare tramite il proxy delle connessioni di Unity Catalog. Crea una connessione HTTP Unity Catalog con host https://slack.com e percorso di base /api, poi usa l'URL proxy come URL base SDK. Nomina la connessione slack_connection e configura le credenziali del provider per la tua app Slack.
Installa le librerie:
pip install --upgrade slack-sdk databricks-sdk
Sostituisci <channel-id> con un canale dove la tua app Slack possa pubblicare. L'esecuzione di questo esempio invia un messaggio:
from slack_sdk import WebClient
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
client = WebClient(
token=w.config.authenticate()["Authorization"].split(" ")[1],
base_url=f"{w.config.host}/api/2.0/unity-catalog/connections/slack_connection/proxy/",
)
result = client.chat_postMessage(channel="<channel-id>", text="Hello from Databricks!")
print(result["message"]["text"])
HTTP generico
Per i servizi senza un SDK dedicato, usa direttamente la requests libreria con l'URL proxy. Sostituisci il nome della connessione, il percorso della risorsa e il corpo JSON con i valori della tua API.
pip install --upgrade requests databricks-sdk
import requests
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
response = requests.post(
f"{w.config.host}/api/2.0/unity-catalog/connections/my_connection/proxy/api/v1/resource",
headers={
**w.config.authenticate(),
"Content-Type": "application/json",
},
json={"key": "value"},
timeout=30,
)
response.raise_for_status()
print(response.text)
Per informazioni dettagliate sull'endpoint proxy, sui metodi di autenticazione supportati e sulla configurazione della connessione, vedere Inoltrare le richieste tramite il proxy di connessione HTTP.
Racchiudi http_request() in una funzione del Catalogo Unity (legacy)
Annotazioni
Azure Databricks raccomanda il proxy di connessioni mostrato sopra o MCP per collegare gli agenti a servizi esterni. Gli strumenti per funzioni di Unity Catalog che racchiudono http_request rimangono supportati, ma non sono più l'approccio consigliato.
Puoi anche creare una funzione di Unity Catalog che incapsula http_request() per richiamare servizi esterni, utile per le definizioni di strumenti basate su SQL. La funzione utilizza la stessa connessione HTTP di Unity Catalog utilizzata dall'approccio proxy, indicata per nome nel parametro conn.
L'esempio seguente utilizza l'elemento slack_connection sopra, il cui percorso base è /api. Sostituisci <channel-id> con il tuo ID canale Slack. La funzione pubblica un messaggio quando viene invocata:
CREATE OR REPLACE FUNCTION main.default.slack_post_message(
text STRING COMMENT 'message content'
)
RETURNS STRING
COMMENT 'Sends a Slack message by passing in the message and returns the response received from the external service.'
RETURN (http_request(
conn => 'slack_connection',
method => 'POST',
path => '/chat.postMessage',
json => to_json(named_struct(
'channel', '<channel-id>',
'text', text
))
)).text;
Vedere CREATE FUNCTION (SQL, Python, Scala e Java).
Annotazioni
L'accesso SQL con http_request è bloccato per i tipi di connessione User-to-Machine Per User e Registrazione Dinamica del Client. Usare invece Python Azure Databricks SDK.