Chiama le API REST direttamente dal codice dell'agente

Utilizzare l'endpoint proxy delle connessioni del catalogo Unity con l'SDK client del servizio esterno per invocare direttamente le API REST dal codice dell'agente. Puntare l'URL di base dell'SDK all'endpoint proxy e usare il token Azure Databricks come chiave API. Azure Databricks autentica la richiesta e inserisce automaticamente le credenziali del servizio esterno dalla connessione di Unity Catalog. Il codice non gestisce direttamente i token del servizio esterno.

Requisiti

  • Una connessione HTTP Unity Catalog per il servizio esterno. L'endpoint proxy utilizza questa connessione per autenticare e iniettare le credenziali del servizio.
  • USE CONNECTION sull'oggetto connessione.

OpenAI

Usare DatabricksOpenAI per instradare le chiamate esterne a OpenAI tramite il proxy di connessioni di Unity Catalog. Creare prima di tutto una connessione HTTP di Unity Catalog usando la chiave API OpenAI archiviata come segreto databricks:

CREATE CONNECTION openai_connection TYPE HTTP
OPTIONS (
  host 'https://api.openai.com',
  base_path '/v1',
  bearer_token secret ('<secret-scope>', '<secret-key>')
);

Installare quindi il databricks-openai pacchetto e usare l'URL proxy e il client dell'area di lavoro nel codice dell'agente:

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

Configurare lo Slack SDK per instradare tramite il proxy delle connessioni di Unity Catalog. Creare una connessione HTTP del catalogo Unity con host https://slack.com e percorso /apidi base, quindi usare l'URL proxy come URL di base dell'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 generico

Per i servizi senza un SDK dedicato, usare direttamente la requests libreria con l'URL del 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"},
)

Per informazioni dettagliate sull'endpoint proxy, sui metodi di autenticazione supportati e sulla configurazione della connessione, vedere Inoltrare le richieste tramite il proxy di connessione HTTP.