Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Använd proxyslutpunkten för Unity Catalog-anslutningar med den externa tjänstens egen klient-SDK för att anropa REST-API:er direkt från agentkoden. Peka SDK:ns bas-URL till proxyslutpunkten och använd din Azure Databricks-token som API-nyckel. Azure Databricks autentiserar begäran och matar automatiskt in den externa tjänstens autentiseringsuppgifter från Unity Catalog-anslutningen. Koden hanterar inte den externa tjänstens token direkt.
Requirements
- Python 3.12 och inloggning till arbetsytan.
- En HTTP-anslutning i Unity Catalog för den externa tjänsten. Proxy-endpointen använder denna anslutning för att autentisera och injicera tjänstens inloggningsuppgifter.
-
USE CONNECTIONi anslutningsobjektet.
OpenAI
Använd DatabricksOpenAI för att dirigera anrop till extern OpenAI via proxyn för Unity Catalog-anslutningar. Skapa först en HTTP-anslutning för Unity Catalog med hjälp av din OpenAI API-nyckel som lagras som en Databricks-hemlighet:
CREATE CONNECTION openai_connection TYPE HTTP
OPTIONS (
host 'https://api.openai.com',
base_path '/v1',
bearer_token secret ('<secret-scope>', '<secret-key>')
);
Installera sedan databricks-openai-paketet och använd proxy-URL:en och arbetsyte-klienten i agentkoden.
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
Konfigurera Slack SDK så att det dirigeras via unity catalog-anslutningsproxyn. Skapa en HTTP-anslutning i Unity Catalog med värdnamn https://slack.com och bassökväg /api, och använd sedan proxy-URL:en som SDK:s bas-URL. Namnge anslutningen slack_connection och konfigurera leverantörsuppgifterna för din Slack-app.
Installera biblioteken:
pip install --upgrade slack-sdk databricks-sdk
Ersätt <channel-id> med en kanal där din Slack-app kan posta. Att köra detta exempel skickar ett meddelande:
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"])
Generisk HTTP
För tjänster utan dedikerat SDK, använd requests-biblioteket med proxy-URL:en direkt. Byt ut anslutningsnamnet, resursvägen och JSON-kroppen med värden för ditt 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)
Mer information om proxyslutpunkten, autentiseringsmetoder som stöds och anslutningskonfiguration finns i Vidarebefordra begäranden via HTTP-anslutningsproxyn.
Omslut http_request() i en Unity Catalog-funktion (legacy)
Anmärkning
Azure Databricks rekommenderar anslutningsproxyn som visas ovan eller MCP för att koppla agenter till externa tjänster. Unity Catalog-funktionsverktyg som wrappar http_request stöds fortfarande men är inte längre den rekommenderade metoden.
Du kan också skapa en Unity Catalog-funktion som omsluter http_request() för att anropa externa tjänster, vilket är användbart för SQL-baserade verktygsdefinitioner. Funktionen använder samma HTTP-anslutning i Unity Catalog som proxy-metoden, refererad med namn i parametern conn .
Följande exempel använder ovanstående slack_connection , vars basväg är /api. Byt ut <channel-id> med ditt Slack-kanal-ID. Funktionen skickar ett meddelande när den anropas:
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;
Se CREATE FUNCTION (SQL, Python, Scala och Java).
Anmärkning
SQL-åtkomst med http_request blockeras för anslutningstyperna Användare till dator per användare och Dynamisk klientregistrering. Använd Python Azure Databricks SDK i stället.