メインコンテンツまでスキップ

エージェントコードから直接 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(),
&quot;Content-Type&quot;: &quot;application/json&quot;,
},
json={&quot;key&quot;: &quot;value&quot;},
)

プロキシEndpoint、サポートされている認証方法、および接続設定の詳細については、HTTP接続プロキシ経由でリクエストを転送するを参照してください。

このページの見出し