這很重要
這項功能位於 測試版 (Beta) 中。 帳號管理員可從帳號主控台 預覽頁面控制 此功能的存取權限。 請參見 管理Azure Databricks預覽。
透過 Azure Databricks 編碼代理程式整合,您可以管理像 Cursor、Gemini CLI 和 Codex CLI 等編碼代理程式的存取與使用情況。 它建立在 Unity AI Gateway 之上,提供速率限制、使用追蹤及推論表,適用於你的程式工具。
Features
- 存取:直接存取各種編碼工具與模型,全部集中於一張發票之下。
- 可觀察性:一個統一的儀表板,追蹤所有程式工具的使用、支出與指標。
- 統一治理:管理員可透過 Unity AI Gateway 直接管理模型權限與速率限制。
需求
- 啟用了您帳戶的 Unity AI Gateway 預覽。 請參見 管理Azure Databricks預覽。
- 位於Unity AI Gateway 支援區域的 Azure Databricks 工作區。
- 已為您的工作區啟用了 Unity Catalog。 請參閱 為 Unity Catalog 啟用工作區。
支援的代理程式
支援以下編碼代理程式,以及 AI Gateway UI 中列出的其他整合功能:
設定
Cursor
要將游標配置為使用 Unity AI Gateway 端點:
步驟 1:設定基礎 URL 與 API 金鑰
打開游標並導覽到 設定>、游標設定、模型>、>API 金鑰。
啟用 Override OpenAI 基礎網址 並輸入網址:
https://<ai-gateway-url>/cursor/v1用你的 Unity AI Gateway 端點網址取代
<ai-gateway-url>。將你的Azure Databricks個人存取權杖貼到 OpenAI API Key欄位。
步驟二:新增自訂模型
- 在游標設定中點擊 + 新增自訂模型 。
- 新增你的 Unity AI Gateway 端點名稱並啟用切換開關。
備註
目前僅支援 Azure Databricks 建立的基礎模型端點。
步驟三:測試整合
- 開啟詢問模式,使用
Cmd+L(macOS)或Ctrl+L(Windows/Linux)選擇你的型號。 - 傳達訊息。 所有請求現在都經過 Azure Databricks。
Codex CLI
步驟 1:安裝或更新 Codex CLI
安裝或更新至 Codex CLI 版本 0.118 或更新:
npm install -g @openai/codex@latest
步驟 2:建立或更新 Codex 設定檔
請於以下 ~/.codex/config.toml處建立或編輯Codex配置檔:
profile = "default"
[profiles.default]
model_provider = "Databricks"
[model_providers.Databricks]
name = "Databricks :re[ai-gateway]"
base_url = "<ai-gateway-url>/codex/v1"
wire_api = "responses"
[model_providers.Databricks.auth]
command = "sh"
args = ["-c", "databricks auth token --host <workspace-url> --output json | jq -r '.access_token'"]
timeout_ms = 5000
refresh_interval_ms = 1800000
取代下列項目:
-
<ai-gateway-url>替換為你的 Unity AI Gateway 端點 URLbase_url。 -
<workspace-url>在args欄位中填入你的 Azure Databricks 工作區網址。
步驟 3:驗證你的工作區
備註
這只需要完成一次。 你不需要每次啟動 Codex 都重新認證。
首先,確保你安裝了 Azure Databricks CLI。 如需指示,請參閱 安裝或更新 Databricks CLI 。
然後驗證:
databricks auth login --host <workspace-url>
將 <workspace-url> 替換成你的 Azure Databricks 工作區網址。
步驟四:開始編寫法典
codex
要更改模型,請使用 /model。
Gemini CLI
步驟 1:安裝最新版本的 Gemini CLI
npm install -g @google/gemini-cli@nightly
步驟 2:設定環境變數
建立一個檔案 ~/.gemini/.env 並新增以下設定。 更多細節請參閱 Gemini CLI 認證文件 。
GEMINI_MODEL=databricks-gemini-2-5-flash
GOOGLE_GEMINI_BASE_URL=https://<ai-gateway-url>/gemini
GEMINI_API_KEY_AUTH_MECHANISM="bearer"
GEMINI_API_KEY=<databricks_pat_token>
將<ai-gateway-url>替換為你的 Unity AI Gateway 端點網址,並將<databricks_pat_token>替換為你的個人存取權杖。
Dashboard
一旦透過 Unity AI Gateway 追蹤程式碼代理的使用狀況,你就能在預設的儀表板中查看並監控你的系統指標。
要進入儀表板,請從 AI Gateway 頁面選擇 「檢視儀表板 」。 這會建立一個預先設定的儀表板,並附上圖表以供程式工具使用。
建立 OpenTelemetry 資料收集
Azure Databricks 支援將 OpenTelemetry 的指標與日誌從編碼代理匯出至 Unity Catalog 管理的 Delta 表格。 所有指標皆為使用 OpenTelemetry 標準指標協定匯出的時間序列資料,日誌則使用 OpenTelemetry 日誌協定匯出。
需求
- Azure Databricks 的 OpenTelemetry 預覽版已啟用。 請參見 管理Azure Databricks預覽。
步驟 1:在 Unity 目錄中建立 OpenTelemetry 表格
建立 Unity Catalog 管理的表格,預先配置 OpenTelemetry 的指標和日誌架構。
指標表
CREATE TABLE <catalog>.<schema>.<table_prefix>_otel_metrics (
name STRING,
description STRING,
unit STRING,
metric_type STRING,
gauge STRUCT<
start_time_unix_nano: LONG,
time_unix_nano: LONG,
value: DOUBLE,
exemplars: ARRAY<STRUCT<
time_unix_nano: LONG,
value: DOUBLE,
span_id: STRING,
trace_id: STRING,
filtered_attributes: MAP<STRING, STRING>
>>,
attributes: MAP<STRING, STRING>,
flags: INT
>,
sum STRUCT<
start_time_unix_nano: LONG,
time_unix_nano: LONG,
value: DOUBLE,
exemplars: ARRAY<STRUCT<
time_unix_nano: LONG,
value: DOUBLE,
span_id: STRING,
trace_id: STRING,
filtered_attributes: MAP<STRING, STRING>
>>,
attributes: MAP<STRING, STRING>,
flags: INT,
aggregation_temporality: STRING,
is_monotonic: BOOLEAN
>,
histogram STRUCT<
start_time_unix_nano: LONG,
time_unix_nano: LONG,
count: LONG,
sum: DOUBLE,
bucket_counts: ARRAY<LONG>,
explicit_bounds: ARRAY<DOUBLE>,
exemplars: ARRAY<STRUCT<
time_unix_nano: LONG,
value: DOUBLE,
span_id: STRING,
trace_id: STRING,
filtered_attributes: MAP<STRING, STRING>
>>,
attributes: MAP<STRING, STRING>,
flags: INT,
min: DOUBLE,
max: DOUBLE,
aggregation_temporality: STRING
>,
exponential_histogram STRUCT<
attributes: MAP<STRING, STRING>,
start_time_unix_nano: LONG,
time_unix_nano: LONG,
count: LONG,
sum: DOUBLE,
scale: INT,
zero_count: LONG,
positive_bucket: STRUCT<
offset: INT,
bucket_counts: ARRAY<LONG>
>,
negative_bucket: STRUCT<
offset: INT,
bucket_counts: ARRAY<LONG>
>,
flags: INT,
exemplars: ARRAY<STRUCT<
time_unix_nano: LONG,
value: DOUBLE,
span_id: STRING,
trace_id: STRING,
filtered_attributes: MAP<STRING, STRING>
>>,
min: DOUBLE,
max: DOUBLE,
zero_threshold: DOUBLE,
aggregation_temporality: STRING
>,
summary STRUCT<
start_time_unix_nano: LONG,
time_unix_nano: LONG,
count: LONG,
sum: DOUBLE,
quantile_values: ARRAY<STRUCT<
quantile: DOUBLE,
value: DOUBLE
>>,
attributes: MAP<STRING, STRING>,
flags: INT
>,
metadata MAP<STRING, STRING>,
resource STRUCT<
attributes: MAP<STRING, STRING>,
dropped_attributes_count: INT
>,
resource_schema_url STRING,
instrumentation_scope STRUCT<
name: STRING,
version: STRING,
attributes: MAP<STRING, STRING>,
dropped_attributes_count: INT
>,
metric_schema_url STRING
) USING DELTA
TBLPROPERTIES (
'otel.schemaVersion' = 'v1'
)
日誌表格
CREATE TABLE <catalog>.<schema>.<table_prefix>_otel_logs (
event_name STRING,
trace_id STRING,
span_id STRING,
time_unix_nano LONG,
observed_time_unix_nano LONG,
severity_number STRING,
severity_text STRING,
body STRING,
attributes MAP<STRING, STRING>,
dropped_attributes_count INT,
flags INT,
resource STRUCT<
attributes: MAP<STRING, STRING>,
dropped_attributes_count: INT
>,
resource_schema_url STRING,
instrumentation_scope STRUCT<
name: STRING,
version: STRING,
attributes: MAP<STRING, STRING>,
dropped_attributes_count: INT
>,
log_schema_url STRING
) USING DELTA
TBLPROPERTIES (
'otel.schemaVersion' = 'v1'
)
步驟 2:更新你的代碼代理中的環境變數
在任何啟用 OpenTelemetry 指標支援的編碼代理程式中,請設定以下環境變數。
{
"OTEL_METRICS_EXPORTER": "otlp",
"OTEL_EXPORTER_OTLP_METRICS_PROTOCOL": "http/protobuf",
"OTEL_EXPORTER_OTLP_METRICS_ENDPOINT": "https://<workspace-url>/api/2.0/otel/v1/metrics",
"OTEL_EXPORTER_OTLP_METRICS_HEADERS": "content-type=application/x-protobuf,Authorization=Bearer <databricks_pat_token>,X-Databricks-UC-Table-Name=<catalog>.<schema>.<table_prefix>_otel_metrics",
"OTEL_METRIC_EXPORT_INTERVAL": "10000",
"OTEL_LOGS_EXPORTER": "otlp",
"OTEL_EXPORTER_OTLP_LOGS_PROTOCOL": "http/protobuf",
"OTEL_EXPORTER_OTLP_LOGS_ENDPOINT": "https://<workspace-url>/api/2.0/otel/v1/logs",
"OTEL_EXPORTER_OTLP_LOGS_HEADERS": "content-type=application/x-protobuf,Authorization=Bearer <databricks_pat_token>,X-Databricks-UC-Table-Name=<catalog>.<schema>.<table_prefix>_otel_logs",
"OTEL_LOGS_EXPORT_INTERVAL": "5000"
}
步驟三:執行你的編碼代理程式。
你的資料應該會在 5 分鐘內傳送到 Unity 目錄資料表。