Appeler des APIs REST directement depuis le code de l’agent
Utilisez l'Endpoint proxy de connexions Unity Catalog avec le SDK client propre au service externe pour appeler directement des APIs REST à partir du code de l'agent. Pointez l'URL de base du SDK vers l'endpoint proxy et utilisez votre jeton Databricks comme clé d'API. Databricks authentifie la requête et injecte automatiquement les identifiants du service externe à partir de la connexion Unity Catalog. Votre code ne gère pas directement les jetons du service externe.
Exigences
- Une connexion HTTP Unity Catalog pour le service externe. L'Endpoint proxy utilise cette connexion pour s'authentifier et injecter les identifiants du service.
USE CONNECTIONsur l’objet de connexion.
OpenAI
Utilisez DatabricksOpenAI pour acheminer les appels vers OpenAI externe via le proxy des connexions Unity Catalog. Tout d'abord, créez une connexion HTTP Unity Catalog à 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>')
);
Ensuite, installez le package databricks-openai et utilisez l'URL de proxy et le client Workspace dans votre code d'agent :
pip install 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 qu'il soit acheminé via le proxy de connexions Unity Catalog. Créez une connexion HTTP Unity Catalog avec l'hôte https://slack.com et le chemin de base /api, puis utilisez l'URL proxy comme URL de base du SDK :
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="C123456", text="Hello from Databricks!")
print(result["message"]["text"])
HTTP générique
Pour les services sans SDK dédié, utilisez directement la bibliothèque requests avec l'URL proxy :
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"},
)
Pour plus de détails sur l’endpoint proxy, les méthodes d’authentification prises en charge et la configuration de la connexion, consultez Transférer les requêtes via le proxy de connexion HTTP.