Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Gebruik het proxy-eindpunt voor Unity Catalog-verbindingen met de eigen client-SDK van de externe service om REST API's rechtstreeks vanuit agentcode aan te roepen. Wijs de basis-URL van de SDK naar het proxy-eindpunt en gebruik uw Azure Databricks-token als de API-sleutel. Azure Databricks verifieert de aanvraag en injecteert automatisch de referenties van de externe service vanuit de Unity Catalog-verbinding. Uw code verwerkt de tokens van de externe service niet rechtstreeks.
Requirements
- Python 3.12 en inloggen in de werkruimte.
- Een Unity Catalog HTTP-verbinding voor de externe service. Het proxy-eindpunt gebruikt deze verbinding om de inloggegevens van de dienst te authenticeren en te injecteren.
-
USE CONNECTIONop het verbindingsobject.
OpenAI
Gebruik DatabricksOpenAI om oproepen naar externe OpenAI te routeren via de Unity Catalog-verbindingen proxy. Maak eerst een UNITY Catalog HTTP-verbinding met behulp van uw OpenAI API-sleutel die is opgeslagen als een Databricks-geheim:
CREATE CONNECTION openai_connection TYPE HTTP
OPTIONS (
host 'https://api.openai.com',
base_path '/v1',
bearer_token secret ('<secret-scope>', '<secret-key>')
);
Installeer vervolgens het databricks-openai pakket en gebruik de proxy-URL en werkruimteclient in uw agentcode:
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
Configureer de Slack SDK om te routeren via de Unity Catalog-verbindingenproxy. Maak een Unity Catalog HTTP-verbinding aan met host https://slack.com en basispad /api, en gebruik vervolgens de proxy-URL als SDK-basis-URL. Geef de verbinding slack_connection een naam en configureer de provider-inloggegevens voor je Slack-app.
Installeer de bibliotheken:
pip install --upgrade slack-sdk databricks-sdk
Vervang <channel-id> door een kanaal waar je Slack-app berichten kan plaatsen. Het uitvoeren van dit voorbeeld geeft een bericht:
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"])
Algemene HTTP
Voor diensten zonder een speciale SDK gebruik je direct de requests bibliotheek met de proxy-URL. Vervang de verbindingsnaam, het resource path en de JSON-body door waarden voor je 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)
Zie Aanvragen doorsturen via de HTTP-verbindingsproxy voor meer informatie over het proxy-eindpunt, ondersteunde verificatiemethoden en het instellen van verbindingen.
Verpak http_request() in een Unity Catalog-functie (legacy)
Note
Azure Databricks raadt de hierboven getoonde verbindingsproxy of MCP's aan voor het verbinden van agenten met externe diensten. Unity Catalog functietools die wrappen http_request blijven ondersteund, maar zijn niet langer de aanbevolen aanpak.
Je kunt ook een Unity Catalog-functie maken die wraps http_request() om externe services aan te roepen, wat handig is voor SQL-gebaseerde tooldefinities. De functie gebruikt dezelfde Unity Catalog HTTP-verbinding als de proxy-benadering, aangeduid met naam in de conn parameter.
Het volgende voorbeeld gebruikt het bovenstaande slack_connection, met als basispad /api. Vervang <channel-id> door je Slack-kanaal-ID. De functie plaatst een bericht wanneer deze wordt aangeroepen:
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;
Zie CREATE FUNCTION (SQL, Python, Scala en Java).
Note
SQL-toegang met http_request is geblokkeerd voor de verbindingstypen gebruikers-naar-machine per gebruiker en dynamische clientregistratie. Gebruik in plaats daarvan de Python Azure Databricks SDK.