Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
REST API'lerini doğrudan agent kodundan çağırmak için Unity Kataloğu bağlantıları proxy uç noktasını dış hizmetin kendi istemci SDK'sı ile kullanın. SDK'nın temel URL'sini ara sunucu uç noktasına işaret edin ve API anahtarı olarak Azure Databricks belirtecinizi kullanın. Azure Databricks isteğin kimliğini doğrular ve Unity Kataloğu bağlantısından dış hizmetin kimlik bilgilerini otomatik olarak ekler. Kodunuz dış hizmetin belirteçlerini doğrudan işlemez.
Requirements
- Dış hizmet için bir Unity Catalog HTTP bağlantısı. Proxy uç noktası, bu bağlantıyı servisin kimlik bilgilerini doğrulamak ve enjekte etmek için kullanır.
-
USE CONNECTIONbağlantı nesnesi üzerinde.
OpenAI
OpenAI'ye harici çağrıları yönlendirmek için Unity Kataloğu bağlantılarının ara sunucusunu DatabricksOpenAI kullanarak kullanın. İlk olarak, Databricks "secret" olarak saklanan OpenAI API anahtarınızı kullanarak bir Unity Catalog HTTP bağlantısı oluşturun:
CREATE CONNECTION openai_connection TYPE HTTP
OPTIONS (
host 'https://api.openai.com',
base_path '/v1',
bearer_token secret ('<secret-scope>', '<secret-key>')
);
Ardından paketi yükleyin databricks-openai ve aracı kodunuzda proxy URL'sini ve çalışma alanı istemcisini kullanın:
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
Slack SDK'sını Unity Kataloğu bağlantıları ara sunucusu üzerinden yönlendirecek şekilde yapılandırın. Ana bilgisayar https://slack.com ve temel dizin /api ile bir Unity Catalog HTTP bağlantısı oluşturun ve ardından SDK temel URL'si olarak proxy URL'sini kullanın.
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"])
Genel HTTP
Ayrılmış SDK'sı olmayan hizmetler için requests kitaplığını doğrudan proxy URL'si ile kullanın.
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"},
)
Ara sunucu uç noktası, desteklenen kimlik doğrulama yöntemleri ve bağlantı kurulumuyla ilgili ayrıntılar için bkz. İstekleri HTTP bağlantı ara sunucusu aracılığıyla iletme.
http_request() öğesini bir Unity Catalog işlevi içinde sarmalayın
Note
Azure Databricks, yukarıda gösterilen bağlantılar proxy'sini veya ajanları dış servislere bağlamak için MCP Services'i önerir. Unity Kataloğu'nun wrap http_request fonksiyon araçları desteklenmeye devam ediyor ancak artık önerilen yaklaşım değil.
Ayrıca, SQL tabanlı araç tanımları için yararlı olan, harici hizmetleri çağırmak üzere http_request() öğesini saran bir Unity Catalog işlevi oluşturabilirsiniz. Fonksiyon, proxy yaklaşımıyla aynı Unity Catalog HTTP bağlantısını kullanır ve parametrede conn isimle referans verilir.
Aşağıdaki örnek, Slack'e bir ileti gönderebilen bir Unity Kataloğu işlev aracı oluşturur:
CREATE OR REPLACE FUNCTION main.default.slack_post_message(
text STRING COMMENT 'message content'
)
RETURNS STRING
COMMENT 'Sends a Slack message by passing in the message and returns the response received from the external service.'
RETURN (http_request(
conn => 'test_sql_slack',
method => 'POST',
path => '/api/chat.postMessage',
json => to_json(named_struct(
'channel', "C032G2DAH3",
'text', text
))
)).text
Bkz.CREATE FUNCTION (SQL, Python, Scala ve Java).
Note
http_request ile SQL erişimi, Kullanıcıdan Makineye Kullanıcı Başına ve Dinamik İstemci Kaydı bağlantı türleri için engellenmiştir. Bunun yerine Python Azure Databricks SDK'sını kullanın.