Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Интеграция агента программирования Azure Databricks позволяет маршрутизировать трафик от агентов программирования, таких как Cursor, Gemini CLI и Codex CLI через службы моделей в шлюзе ИИ Unity. Это обеспечивает ограничение скорости, отслеживание использования и таблицы вывода со всеми элементами управления, настроенными на уровне модели, пользователя или группы.
Features
- Доступ: прямой доступ к различным средствам и моделям программирования, все по одному счету.
- Наблюдаемость. Единая унифицированная панель мониторинга для отслеживания использования, расходов и метрик во всех средствах программирования.
- Единое управление: администраторы могут управлять разрешениями модели и ограничениями скорости с помощью шлюза ИИ Unity на уровне модели, пользователя или группы.
Requirements
- Рабочая область Azure Databricks в поддерживаемом регионе Unity AI Gateway.
- В рабочей области включён каталог Unity. См. Включение рабочей области для каталога Unity.
Setup
Самый быстрый способ начать работу с ucode, интерфейс командной строки из Azure Databricks, который устанавливает, проверяет подлинность и настраивает поддерживаемые агенты кодирования с помощью шлюза ИИ Unity в одной команде.
Использование ucode (рекомендуется)
ucode (CLI для программирования Unity AI Gateway) — это единая точка входа для запуска агентов программирования через Unity AI Gateway. Он обрабатывает OAuth, записывает файл конфигурации каждого агента и направляет трафик через любой зарегистрированный сервер LLM или MCP. Поддерживаемые агенты:
- Codex CLI
- Интерфейс командной строки Gemini
- OpenCode
- интерфейс командной строки GitHub Copilot
- Pi
- и многое другое
Шаг 1. Установка ucode
uv tool install git+https://github.com/databricks/ucode
Требуется Python 3.12 или более поздней версии и uv.
Шаг 2. Открытие агента программирования
Запустите нужный агент. При первом запуске ucode запрашивает URL-адрес рабочей области Azure Databricks, выполняет проверку подлинности и записывает файл конфигурации агента автоматически. Последующие запуски сразу направляются агенту.
ucode codex # OpenAI Codex
ucode gemini # Gemini CLI
ucode opencode # OpenCode
ucode copilot # GitHub Copilot CLI
ucode pi # Pi
ucode Передает флаги после имени агента в базовое средство, например:
ucode codex --full-auto
Чтобы настроить несколько агентов программирования одновременно, выполните следующую команду:
ucode configure
Чтобы зарегистрировать серверы MCP Azure Databricks (функции Unity Catalog, AI Search, хранилища SQL и обнаруженные внешние подключения) для агентов с поддержкой MCP:
ucode configure mcp
Чтобы просмотреть сводку по использованию шлюза искусственного интеллекта Unity за последние 7 дней:
ucode usage
Для полной ссылки на команду выполните следующую команду:
ucode --help
Dashboard
После отслеживания использования агента программирования с помощью шлюза искусственного интеллекта Unity можно просматривать и отслеживать метрики на встроенной панели мониторинга.
Чтобы открыть панель мониторинга, щелкните "Управление" в правом верхнем углу страницы шлюза ИИ Unity, а затем нажмите кнопку "Панель мониторинга использования". Встроенная панель мониторинга использования включает вкладку "Агенты кодирования " с графами для использования средства кодирования.
Настройка вручную
Если вы предпочитаете самостоятельно настраивать агенты, следуйте инструкциям.
Интегрированная среда разработки курсора
Чтобы настроить Cursor для использования служб моделей в шлюзе ИИ Unity, выполните следующие действия.
Шаг 1. Настройка базового URL-адреса и ключа API
Откройте курсор и перейдите к Параметры>Параметры курсора>Модели>Ключи API.
Включите переопределение базового URL-адреса OpenAI и введите URL-адрес:
https://<workspace-url>/ai-gateway/cursor/v1Замените
<workspace-url>URL-адресом рабочей области Azure Databricks.Вставьте личный токен доступа Azure Databricks в поле Ключ API OpenAI.
Шаг 2. Добавление пользовательских моделей
- Нажмите кнопку +Добавить настраиваемую модель в параметрах курсора.
- Добавьте имя службы вашей модели (например,
system.ai.databricks-claude-opus-4-6) и включите переключатель.
Замечание
В настоящее время поддерживаются только службы модели, предоставляемые Azure Databricks.
Шаг 3. Тестирование интеграции
- Откройте режим ask с помощью
Cmd+L(macOS) илиCtrl+L(Windows/Linux) и выберите модель. - Отправьте сообщение. Все запросы теперь направляются через Azure Databricks.
Codex CLI
Шаг 1. Установка или обновление Codex CLI
Установите или обновите интерфейс командной строки Codex версии 0.118 или более поздней:
npm install -g @openai/codex@latest
Шаг 2. Создание или обновление файла конфигурации Codex
Создайте или измените файл конфигурации Codex по адресу ~/.codex/config.toml:
profile = "default"
[profiles.default]
model_provider = "Databricks"
[model_providers.Databricks]
name = "Databricks :re[ai-gateway]"
base_url = "<workspace-url>/ai-gateway/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
Замените <workspace-url> URL-адресом рабочей области Azure Databricks.
Шаг 3. Проверка подлинности в рабочей области
Замечание
Это необходимо сделать только один раз. При каждом запуске Codex не требуется повторно выполнять проверку подлинности.
Сначала убедитесь, что установлен Azure Databricks CLI. Инструкции см. в статье об установке или обновлении интерфейса командной строки Databricks .
Затем выполните проверку подлинности:
databricks auth login --host <workspace-url>
Замените <workspace-url> URL-адресом рабочей области Azure Databricks.
Шаг 4. Запуск codex
codex
Чтобы изменить модель, используйте /model.
Интерфейс командной строки Gemini
Шаг 1. Установка последней версии интерфейса командной строки Gemini
npm install -g @google/gemini-cli@nightly
Шаг 2. Настройка переменных среды
Создайте файл ~/.gemini/.env и добавьте следующую конфигурацию. Дополнительные сведения см. в документации по проверке подлинности Cli Gemini .
GEMINI_MODEL=databricks-gemini-2-5-flash
GOOGLE_GEMINI_BASE_URL=https://<workspace-url>/ai-gateway/gemini
GEMINI_API_KEY_AUTH_MECHANISM="bearer"
GEMINI_API_KEY=<databricks_pat_token>
Замените <workspace-url> URL-адресом рабочей области Azure Databricks и <databricks_pat_token> личным маркером доступа.
Используйте модели с открытым исходным кодом с агентами кодирования
Azure Databricks поддерживает интеграцию моделей с открытым исходным кодом (OSS), таких как glm-5-2, с агентами для программирования.
В дополнение к вышеуказанным требованиям , ваше рабочее пространство также должно иметь доступ к целевой модели OSS.
OpenCode
Настройте ucode, как описано в Используйте ucode (рекомендуется), затем выберите system.ai.glm-5-2 в качестве модели.
Ручная настройка
В качестве альтернативы можно установить OpenCode, как описано в документации OpenCode, а затем создать или отредактировать ~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"model": "databricks-oss/<open source model service name>",
"provider": {
"databricks-oss": {
"npm": "@ai-sdk/openai",
"options": {
"baseURL": "<workspace-url>/ai-gateway/mlflow/v1",
"apiKey": "<databricks_pat_token>"
},
"models": {
"<open source model service name>": {}
}
}
}
}
Замените следующее:
-
<workspace-url>с URL-адресом рабочей области Azure Databricks. -
<databricks_pat_token>с вашим личным токеном доступа. -
<открытый код model service name>с целевым сервисом модели OSS, напримерsystem.ai.glm-5-2.
Затем начните OpenCode:
opencode
Кодекс
Codex подключается к моделям с открытым исходным кодом через API Open Responses , который поддерживает Codex.
Настройте ucode так, как описано в статье «Использовать ucode (рекомендовано), затем запустить:
ucode codex --model <open source model service name>
Например, чтобы использовать GLM 5.2 с Codex, выполните:
ucode codex --model system.ai.glm-5-2
Ручная настройка
В качестве альтернативы можно установить Codex CLI, как описано в Codex CLI, а затем создать или отредактировать ~/.codex/config.toml:
model = "<open source model service name>"
model_provider = "Databricks"
[model_providers.Databricks]
name = "Databricks :re[ai-gateway]"
base_url = "<workspace-url>/ai-gateway/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'"]
# Re-run the token command periodically so long sessions don't fail when the
# short-lived Databricks token expires.
timeout_ms = 5000
refresh_interval_ms = 1800000
Замените <workspace-url> на URL вашего рабочего пространства Azure Databricks и <открытый код model service name> на целевой сервис модели OSS, напримерsystem.ai.glm-5-2.
Затем запустите Codex:
codex
Настройка сбора данных OpenTelemetry
Azure Databricks поддерживает экспорт метрик и журналов OpenTelemetry из агентов кодирования в управляемые таблицы Delta каталога Unity. Все метрики являются данными временных рядов, экспортируемыми с помощью протокола стандартных метрик OpenTelemetry, а журналы экспортируются с помощью протокола журналов OpenTelemetry.
Requirements
- Включена предварительная версия OpenTelemetry в Azure Databricks. См. статью "Управление предварительными версиями Azure Databricks".
Шаг 1. Создание таблиц OpenTelemetry в каталоге Unity
Создание управляемых таблиц каталога Unity, предварительно настроенных с помощью метрик и схем журналов 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"
}
Шаг 3. Запуск агента программирования.
Ваши данные должны синхронизироваться с таблицами каталога Unity и это займет не более 5 минут.