Rufen Sie REST-APIs direkt aus dem Agentencode auf

Verwenden Sie den Unity Catalog Connections-Proxyendpunkt mit dem eigenen Client-SDK des externen Diensts, um REST-APIs direkt aus dem Agentcode aufzurufen. Verweisen Sie die Basis-URL des SDK auf den Proxyendpunkt, und verwenden Sie Ihr Azure Databricks-Token als API-Schlüssel. Azure Databricks authentifiziert die Anforderung und fügt automatisch die Anmeldeinformationen des externen Diensts aus der Unity-Katalogverbindung ein. Ihr Code behandelt die Token des externen Diensts nicht direkt.

Anforderungen

  • Eine Unity Catalog HTTP-Verbindung für den externen Dienst. Der Proxy-Endpunkt nutzt diese Verbindung, um die Zugangsdaten des Dienstes zu authentifizieren und einzuschleusen.
  • USE CONNECTION für das Verbindungsobjekt.

OpenAI

Verwenden Sie DatabricksOpenAI, um Anrufe an externe OpenAI über den Unity Catalog-Verbindungsproxy weiterzuleiten. Erstellen Sie zunächst eine Unity-Katalog-HTTP-Verbindung mit Ihrem OpenAI-API-Schlüssel, der als Databricks-Schlüssel gespeichert ist:

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

Installieren Sie dann das databricks-openai Paket, und verwenden Sie den Proxy-URL- und Arbeitsbereichsclient in Ihrem Agentcode:

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

Konfigurieren Sie das Slack-SDK, um den Unity Catalog-Verbindungsproxy zu durchlaufen. Erstellen Sie eine Unity-Katalog-HTTP-Verbindung mit Host https://slack.com und Basispfad /api, und verwenden Sie dann die Proxy-URL als SDK-Basis-URL:

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"])

Generisches HTTP

Verwenden Sie für Dienste ohne dediziertes SDK die requests Bibliothek mit der Proxy-URL direkt:

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"},
)

Ausführliche Informationen zum Proxyendpunkt, unterstützten Authentifizierungsmethoden und Verbindungseinrichtung finden Sie unter Weiterleitungsanforderungen über den HTTP-Verbindungsproxy.