Pular para o conteúdo principal

Chamar APIs REST diretamente do código do agente

Use o Endpoint proxy de conexões do Unity Catalog com o SDK de cliente próprio do serviço externo para chamar APIs REST diretamente do código do agente. Aponte a URL base do SDK para o Endpoint proxy e use seu token Databricks como a chave da API. O Databricks autentica a solicitação e injeta automaticamente as credenciais do serviço externo da conexão do Unity Catalog. Seu código não lida diretamente com os tokens do serviço externo.

Requisitos

  • Uma conexão HTTP do Unity Catalog para o serviço externo. O endpoint de proxy usa essa conexão para autenticar e injetar as credenciais do serviço.
  • USE CONNECTION no objeto de conexão.

OpenAI

Use DatabricksOpenAI para rotear chamadas para o OpenAI externo por meio do proxy de conexões do Unity Catalog. Primeiro, crie uma conexão HTTP do Unity Catalog usando sua chave de API do OpenAI armazenada como um segredo do Databricks:

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

Em seguida, instale o pacote databricks-openai e use a URL de proxy e o cliente do workspace no código do seu agente:

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

Configure o SDK do Slack para rotear através do proxy de conexões do Unity Catalog. Crie uma conexão HTTP do Unity Catalog com host https://slack.com e caminho base /api; em seguida, use a URL de proxy como a URL base do SDK:

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 genérico

Para serviços sem um SDK dedicado, use a biblioteca requests diretamente com a URL de proxy:

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

Para obter detalhes sobre o endpoint de proxy, métodos de autenticação compatíveis e configuração de conexão, consulte Encaminhar solicitações por meio do proxy de conexão HTTP.