Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Utilisez le point de terminaison proxy des connexions du catalogue Unity avec le SDK client propre au service externe pour effectuer des appels aux API REST directement depuis le code de l'agent. Pointez l’URL de base du Kit de développement logiciel (SDK) vers le point de terminaison proxy et utilisez votre jeton Azure Databricks comme clé API. Azure Databricks authentifie la requête et injecte automatiquement les informations d'identification du service externe à partir de la connexion du catalogue Unity. Votre code ne gère pas directement les jetons du service externe.
Exigences
- Python 3.12 et connexion à l’espace de travail.
- Une connexion HTTP du catalogue Unity pour le service externe. Le point de terminaison proxy utilise cette connexion pour authentifier et injecter les identifiants du service.
-
USE CONNECTIONsur l’objet de connexion.
OpenAI
Utilisez DatabricksOpenAI pour router les appels vers OpenAI externe à travers le proxy de connexions du catalogue Unity. Tout d’abord, créez une connexion HTTP du catalogue Unity à l’aide de votre clé API OpenAI stockée en tant que secret Databricks :
CREATE CONNECTION openai_connection TYPE HTTP
OPTIONS (
host 'https://api.openai.com',
base_path '/v1',
bearer_token secret ('<secret-scope>', '<secret-key>')
);
Installez ensuite le databricks-openai package et utilisez l’URL du proxy et le client d’espace de travail dans votre code d’agent :
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
Configurez le SDK Slack pour router via le proxy de connexions du Unity Catalog. Créez une connexion HTTP Unity Catalog avec l’hôte /api et le chemin de base https://slack.com, puis utilisez l’URL proxy comme URL de base du SDK. Nommez la connexion slack_connection et configurez les identifiants du fournisseur pour votre application Slack.
Installez les bibliothèques :
pip install --upgrade slack-sdk databricks-sdk
Remplacez <channel-id> par un canal où votre application Slack peut publier. L’exécution de cet exemple envoie un message :
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 générique
Pour les services sans SDK dédié, utilisez directement la requests bibliothèque avec l’URL proxy. Remplacez le nom de connexion, le chemin de la ressource et le corps JSON par des valeurs pour votre 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)
Pour plus d’informations sur le point de terminaison proxy, les méthodes d’authentification prises en charge et la configuration de la connexion, consultez Transfert de requêtes via le proxy de connexion HTTP.
Inclure dans un wrapper http_request() dans une fonction Unity Catalog (héritée)
Note
Azure Databricks recommande le proxy de connexions montré ci-dessus ou les MCP pour connecter les agents à des services externes. Les outils de fonction Unity Catalog qui encapsulent http_request restent pris en charge, mais ne constituent plus la méthode recommandée.
Vous pouvez aussi créer une fonction Unity Catalog qui s’enroule http_request() pour appeler des services externes, ce qui est utile pour les définitions d’outils basés sur SQL. La fonction utilise la même connexion HTTP du catalogue Unity que l’approche proxy, référencée par son nom dans le conn paramètre.
L’exemple suivant utilise ce slack_connection qui précède, dont le chemin de base est /api. Remplacez <channel-id> par l’identifiant de votre canal Slack. La fonction affiche un message lorsqu’elle est invoquée :
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;
Consultez CREATE FUNCTION (SQL, Python, Scala et Java).
Note
L’accès SQL avec http_request est bloqué pour les types de connexion User-to-Machine per User et Dynamic Client Registration. Utilisez plutôt le Kit de développement logiciel (SDK) Azure Databricks Python.