Partager via


Intégrer avec des agents de codage

Important

Cette fonctionnalité est en version bêta. Les administrateurs de compte peuvent contrôler l’accès à cette fonctionnalité à partir de la page Aperçus de la console de compte. Consultez Gérer les préversions d’Azure Databricks.

Avec l’intégration de l’agent de codage Azure Databricks, vous pouvez gérer l’accès et l’utilisation pour les agents de codage tels que Cursor, Gemini CLI et Codex CLI. Basé sur la passerelle IA, il fournit des tables de limitation de débit, de suivi de l’utilisation et d’inférence pour vos outils de codage.

Fonctionnalités

  • Accès : accès direct à différents outils et modèles de codage, tous sous une seule facture.
  • Observabilité : tableau de bord unifié unique pour suivre l’utilisation, les dépenses et les métriques dans tous vos outils de codage.
  • Gouvernance unifiée : les administrateurs peuvent gérer les autorisations de modèle et les limites de débit directement par le biais de la passerelle IA.

Spécifications

Agents pris en charge

Les agents de codage suivants sont pris en charge :

Configuration

Cursor

Pour configurer Cursor afin d’utiliser des points de terminaison de passerelle AI :

Étape 1 : Configurer l’URL de base et la clé API

  1. Ouvrez le curseur et accédez aux Paramètres>Paramètres du curseur>Modèles>Clés API.

  2. Activez Remplacer l’URL de base OpenAI et entrez l’URL :

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

    Remplacez <ai-gateway-url> par votre URL de point de terminaison de passerelle AI.

  3. Collez votre jeton d’accès personnel Azure Databricks dans le champ Clé API OpenAI .

Étape 2 : Ajouter des modèles personnalisés

  1. Cliquez sur + Ajouter un modèle personnalisé dans les paramètres du curseur.
  2. Ajoutez le nom de votre point de terminaison de passerelle IA et activez le bouton bascule.

Note

Actuellement, seuls les points de terminaison de modèle de base créés par Azure Databricks sont pris en charge.

Étape 3 : Tester l’intégration

  1. Ouvrez le mode Ask avec Cmd+L (macOS) ou Ctrl+L (Windows/Linux) et sélectionnez votre modèle.
  2. Envoyez un message. Toutes les demandes sont désormais acheminées via Azure Databricks.

Codex CLI

Étape 1 : Définir la variable d’environnement DATABRICKS_TOKEN

export DATABRICKS_TOKEN=<databricks_pat_token>

Étape 2 : Configurer le client Codex

Créez ou modifiez le fichier de configuration du Codex à l’adresse ~/.codex/config.toml:

profile = "default"

[profiles.default]
model_provider = "proxy"
model = "databricks-gpt-5-2"

[model_providers.proxy]
name = "Databricks Proxy"
base_url = "https://<ai-gateway-url>/openai/v1"
env_key = "DATABRICKS_TOKEN"
wire_api = "responses"

Remplacez <ai-gateway-url> par votre URL de point de terminaison de passerelle AI.

Gemini CLI

Étape 1 : Installer la dernière version de Gemini CLI

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

Étape 2 : Configurer des variables d’environnement

Créez un fichier ~/.gemini/.env et ajoutez la configuration suivante. Pour plus d’informations, consultez les documents d’authentification 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>

Remplacez <ai-gateway-url> par votre URL de point de terminaison DE passerelle IA et <databricks_pat_token> par votre jeton d’accès personnel.

Tableau de bord

Une fois que l’utilisation de l’agent de codage est suivie via la passerelle IA, vous pouvez afficher et surveiller vos indicateurs de performance dans le tableau de bord prêt à l’emploi.

Pour accéder au tableau de bord, sélectionnez Afficher le tableau de bord dans la page passerelle IA. Cela crée un tableau de bord préconfiguré avec des graphiques pour l’utilisation de l’outil de codage.

Bouton Afficher le tableau de bord

Tableau de bord de l’agent de codage

Configurer la collecte de données OpenTelemetry

Azure Databricks prend en charge l’exportation des métriques et journaux OpenTelemetry des agents de programmation vers des tables Delta gérées par Unity Catalog. Toutes les métriques sont des données de série chronologique exportées à l’aide du protocole de métriques standard OpenTelemetry, et les journaux d’activité sont exportés à l’aide du protocole des journaux OpenTelemetry.

Spécifications

Étape 1 : Créer des tables OpenTelemetry dans le catalogue Unity

Créez des tables gérées Unity Catalogue préconfigurées avec les métriques et les schémas de journaux OpenTelemetry.

Table des métriques

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

Table Journaux d’activité

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

Étape 2 : Mettre à jour les vars env dans votre agent de codage

Dans n’importe quel agent de codage avec la prise en charge des métriques OpenTelemetry activée, configurez les variables d’environnement suivantes.

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

Étape 3 : Exécuter votre agent de codage.

Vos données doivent se propager aux tables du catalogue Unity dans les 5 minutes.

Prochaines étapes