Wywoływanie API REST bezpośrednio z kodu agenta

Użyj punktu końcowego proxy połączeń Unity Catalog wraz z własnym klientem SDK usługi zewnętrznej, aby bezpośrednio z kodu agenta korzystać z interfejsów API REST. Wskaż podstawowy adres URL zestawu SDK na punkt końcowy serwera proxy i użyj swojego tokenu Azure Databricks jako klucza API. Azure Databricks uwierzytelnia żądanie i automatycznie wprowadza dane uwierzytelniające zewnętrznej usługi z połączenia Unity Catalog. Kod nie obsługuje tokenów usługi zewnętrznej bezpośrednio.

Requirements

  • Połączenie HTTP w Unity Catalog dla usługi zewnętrznej. Punkt końcowy proxy wykorzystuje to połączenie do uwierzytelniania i wstrzykiwania poświadczeń usługi.
  • USE CONNECTION na obiekcie połączenia.

OpenAI

Użyj DatabricksOpenAI do przekierowywania wywołań do zewnętrznego OpenAI za pośrednictwem proxy połączeń Unity Catalog. Najpierw utwórz połączenie HTTP Unity Catalog przy użyciu klucza interfejsu API OpenAI przechowywanego jako sekret Databricks:\

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

Następnie zainstaluj databricks-openai pakiet i użyj adresu URL serwera proxy i klienta obszaru roboczego w kodzie agenta:

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

Skonfiguruj SDK Slack, aby kierować przez serwer proxy połączeń w katalogu Unity. Utwórz połączenie HTTP katalogu Unity z hostem https://slack.com i podstawową ścieżką /api, a następnie użyj adresu URL serwera proxy jako bazowego adresu URL 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"])

Standardowe HTTP

W przypadku usług bez dedykowanego zestawu SDK użyj requests biblioteki bezpośrednio z adresem URL serwera 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"},
)

Aby uzyskać szczegółowe informacje na temat punktu końcowego serwera proxy, obsługiwanych metod uwierzytelniania i konfiguracji połączenia, zobacz Przekazywanie żądań za pośrednictwem serwera proxy połączenia HTTP.