Freigeben über


Integration mit Coding-Agenten

Von Bedeutung

Dieses Feature befindet sich in der Betaversion. Kontoadministratoren können den Zugriff auf dieses Feature über die Seite " Vorschau" der Kontokonsole steuern. Siehe Manage Azure Databricks Previews.

Mit der Azure Databricks Codierungs-Agent-Integration können Sie den Zugriff und die Verwendung für Codierungs-Agents wie Cursor, Gemini CLI und Codex CLI verwalten. Basierend auf dem KI-Gateway bietet es Ratenbegrenzung, Nutzungsnachverfolgung und Inference-Tabellen für Ihre Codetools.

Features

  • Zugriff: Direkter Zugriff auf verschiedene Codierungstools und Modelle, alle unter einer Rechnung.
  • Observability: Ein einzelnes einheitliches Dashboard zum Nachverfolgen von Nutzung, Ausgaben und Metriken in allen Ihren Codierungstools.
  • Einheitliche Governance: Administratoren können Modellberechtigungen und Geschwindigkeitsbeschränkungen direkt über das AI-Gateway verwalten.

Anforderungen

Unterstützte Agents

Die folgenden Codierungs-Agents werden unterstützt, und andere Integrationen, die in der KI-Gateway-Benutzeroberfläche aufgeführt sind:

Konfiguration

Mauszeiger

So konfigurieren Sie Cursor für die Verwendung von AI-Gateway-Endpunkten:

Schritt 1: Konfigurieren der Basis-URL und des API-Schlüssels

  1. Öffnen Sie den Cursor und navigieren Sie zuEinstellungen>Cursoreinstellungen>Modelle>API-Schlüssel.

  2. Aktivieren Sie OpenAI-Basis-URL überschreiben und geben Sie die URL ein:

    https://<ai-gateway-url>/cursor/v1
    

    Ersetzen Sie sie <ai-gateway-url> durch Ihre AI-Gateway-Endpunkt-URL.

  3. Fügen Sie Ihr Azure Databricks persönliches Zugriffstoken in das Feld OpenAI-API-Schlüssel ein.

Schritt 2: Hinzufügen von benutzerdefinierten Modellen

  1. Klicken Sie in den Cursoreinstellungen auf +Benutzerdefiniertes Modell hinzufügen .
  2. Fügen Sie Ihren AI-Gateway-Endpunktnamen hinzu, und aktivieren Sie den Umschalter.

Hinweis

Derzeit werden nur Azure Databricks erstellten Foundationmodellendpunkte unterstützt.

Schritt 3: Testen der Integration

  1. Öffnen Sie den Ask-Modus mit Cmd+L (macOS) oder Ctrl+L (Windows/Linux), und wählen Sie Ihr Modell aus.
  2. Senden sie eine Nachricht. Alle Anforderungen leiten jetzt Azure Databricks weiter.

Codex CLI

Schritt 1: Installieren oder Aktualisieren der Codex CLI

Installieren oder aktualisieren Sie codex CLI, Version 0.118 oder höher:

npm install -g @openai/codex@latest

Schritt 2: Erstellen oder Aktualisieren der Codex-Konfigurationsdatei

Erstellen oder Bearbeiten der Codex-Konfigurationsdatei unter ~/.codex/config.toml:

profile = "default"

[profiles.default]
model_provider = "Databricks"

[model_providers.Databricks]
name = "Databricks 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

Ersetzen Sie Folgendes:

  • <ai-gateway-url> in base_url mit der URL Ihres AI-Gateway-Endpunkts.
  • <workspace-url> im Feld args mit der URL des Azure Databricks Arbeitsbereichs.

Schritt 3: Authentifizieren bei Ihrem Arbeitsbereich

Hinweis

Dies muss nur einmal erfolgen. Sie müssen sich nicht jedes Mal erneut authentifizieren, wenn Sie Codex starten.

Stellen Sie zunächst sicher, dass die Azure Databricks CLI installiert ist. Anweisungen finden Sie unter Installieren oder Aktualisieren der Databricks CLI .

Authentifizieren Sie sich dann:

databricks auth login --host <workspace-url>

Ersetzen Sie <workspace-url> durch Ihre Azure Databricks Arbeitsbereichs-URL.

Schritt 4: Codex starten

codex

Um das Modell zu ändern, verwenden Sie /model.

Gemini CLI

Schritt 1: Installieren der neuesten Version von Gemini CLI

npm install -g @google/gemini-cli@nightly

Schritt 2: Konfigurieren von Umgebungsvariablen

Erstellen Sie eine Datei ~/.gemini/.env , und fügen Sie die folgende Konfiguration hinzu. Weitere Details finden Sie in den Dokumentationen zur Gemini CLI-Authentifizierung .

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>

Ersetzen Sie sie <ai-gateway-url> durch Ihre AI-Gateway-Endpunkt-URL und <databricks_pat_token> durch Ihr persönliches Zugriffstoken.

Dashboard

Sobald die Nutzung des Codierungsagenten über das AI-Gateway nachverfolgt wird, können Sie Ihre Metriken im vorinstallierten Dashboard anzeigen und überwachen.

Um auf das Dashboard zuzugreifen, wählen Sie auf der SEITE "AI-Gateway" die Option "Dashboard anzeigen " aus. Dadurch wird ein vorkonfiguriertes Dashboard mit Diagrammen für die Verwendung von Codierungstools erstellt.

Schaltfläche

Codierungs-Agent-Dashboard

Einrichten der OpenTelemetry-Datensammlung

Azure Databricks unterstützt das Exportieren von OpenTelemetry-Metriken und -Protokollen von Code-Agenten in im Unity-Katalog verwaltete Delta-Tabellen. Alle Metriken sind Zeitreihendaten, die mithilfe des OpenTelemetry-Standardmetrikenprotokolls exportiert werden, und Protokolle werden mithilfe des OpenTelemetry-Protokollprotokolls exportiert.

Anforderungen

Schritt 1: Erstellen von OpenTelemetry-Tabellen im Unity-Katalog

Erstellen Sie verwaltete Tabellen im Unity-Katalog, die mit den OpenTelemetry-Metriken und Protokollschemas vorkonfiguriert sind.

Metriktabelle

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'
)

Protokolltabelle

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'
)

Schritt 2: Aktualisieren von env vars in Ihrem Codierungs-Agent

Konfigurieren Sie in jedem Codierungs-Agent mit aktivierter OpenTelemetry-Metrikunterstützung die folgenden Umgebungsvariablen.

{
  "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"
}

Schritt 3: Führen Sie Ihren Codierungs-Agent aus.

Ihre Daten sollten innerhalb von 5 Minuten an die Unity-Katalogtabellen weitergegeben werden.

Nächste Schritte