エージェントコードから直接 REST APIs を呼び出す
外部サービスのクライアントSDKを使用してUnity Catalog接続プロキシEndpointを使用し、エージェントコードから直接REST APIsを呼び出します。SDKのベースURLをプロキシEndpointに向け、DatabricksトークンをAPIキーとして使用します。Databricks はリクエストを認証し、Unity Catalog 接続から外部サービス の認証情報を自動的に挿入します。お客様のコードは、外部サービスのトークンを直接処理しません。
要件
- 外部サービス用のUnity Catalog HTTP接続。プロキシEndpointは、この接続を使用して認証を行い、サービスの認証情報を挿入します。
USE CONNECTION接続オブジェクト上。
OpenAI
DatabricksOpenAIを使用して、Unity Catalog接続プロキシを介して外部OpenAIへの呼び出しをルーティングします。まず、Databricksシークレットとして保存されているOpenAI APIキーを使用してUnity Catalog HTTP接続を作成します。
SQL
CREATE CONNECTION openai_connection TYPE HTTP
OPTIONS (
host 'https://api.openai.com',
base_path '/v1',
bearer_token secret ('<secret-scope>', '<secret-key>')
);
次に、databricks-openaiパッケージをインストールし、エージェントコードでプロキシURLとワークスペースクライアントを使用します。
Bash
pip install databricks-openai
Python
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
Slack SDKを、Unity Catalog接続プロキシ経由でルーティングするように構成します。ホストhttps://slack.comとベースパス/apiを使用してUnity Catalog HTTP接続を作成し、プロキシURLをSDKベースURLとして使用します:
Python
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
専用のSDKがないサービスの場合、プロキシURLを直接使用してrequestsライブラリを使用してください。
Python
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"},
)
プロキシEndpoint、サポートされている認証方法、および接続設定の詳細については、HTTP接続プロキシ経由でリクエストを転送するを参照してください。