Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Use el Punto de conexión del proxy de conexiones del Unity Catalog con el SDK de cliente propio del servicio externo para llamar a las API REST directamente desde el código del agente. Apunte la dirección URL base del SDK al punto de conexión de proxy y use el token de Azure Databricks como clave de API. Azure Databricks autentica la solicitud e inserta automáticamente las credenciales del servicio externo desde la conexión del catálogo de Unity. Tu código no gestiona directamente los tokens del servicio externo.
Requisitos
- Python 3.12 y inicio de sesión en espacios de trabajo.
- Una conexión HTTP de Unity Catalog para el servicio externo. El punto final del proxy utiliza esta conexión para autenticar e inyectar las credenciales del servicio.
-
USE CONNECTIONen el objeto de conexión.
OpenAI
Use DatabricksOpenAI para dirigir las llamadas a OpenAI externo a través del proxy de conexiones de Unity Catalog. En primer lugar, cree una conexión HTTP de Unity Catalog con la clave de API de OpenAI almacenada como secreto de Databricks:
CREATE CONNECTION openai_connection TYPE HTTP
OPTIONS (
host 'https://api.openai.com',
base_path '/v1',
bearer_token secret ('<secret-scope>', '<secret-key>')
);
A continuación, instale el paquete databricks-openai y use el URL del proxy y el cliente de área de trabajo en el código del 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
Configura el SDK de Slack para enrutar a través del proxy de conexiones del Unity Catalog. Crea una conexión HTTP de Unity Catalog con el host /api y la ruta base https://slack.com, y luego usa la URL proxy como la URL base del SDK. Nombra la conexión slack_connection y configura las credenciales del proveedor para tu app de Slack.
Instala las librerías:
pip install --upgrade slack-sdk databricks-sdk
Sustituye <channel-id> por un canal donde tu app de Slack pueda publicar. Ejecutar este ejemplo envía un mensaje:
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 genérico
Para servicios sin un SDK dedicado, utiliza directamente la requests biblioteca con la URL proxy. Sustituye el nombre de la conexión, la ruta del recurso y el cuerpo del JSON por valores de tu 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)
Para más información sobre el punto de conexión de proxy, los métodos de autenticación admitidos y la configuración de conexión, consulte Reenvío de solicitudes a través del proxy de conexión HTTP.
Encapsular http_request() en una función de Unity Catalog (heredado)
Note
Azure Databricks recomienda el proxy de conexiones mostrado arriba o MCPs para conectar agentes a servicios externos. Las herramientas de función de Unity Catalog que encapsulan http_request siguen siendo compatibles, pero ya no son la opción recomendada.
También puedes crear una función de Unity Catalog que se envuelve http_request() para llamar a servicios externos, lo cual es útil para definiciones de herramientas basadas en SQL. La función utiliza la misma conexión HTTP de Unity Catalog que el enfoque de proxy, indicada por su nombre en el parámetro conn.
En el ejemplo siguiente se utiliza la slack_connection anterior, cuya ruta de acceso base es /api. Sustituye <channel-id> por el ID de tu canal de Slack. La función publica un mensaje cuando se invoca:
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;
Consulte CREATE FUNCTION (SQL, Python, Scala y Java).
Note
El acceso SQL con http_request está bloqueado para los tipos de conexión User-to-Machine Per User y Dynamic Client Registration. Use el SDK de Python Azure Databricks en su lugar.