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