Настройка ведения журнала Gemini Code Assist Standard и Enterprise

В этом документе описывается, как настроить ведение журнала Gemini Code Assist Standard и Enterprise для проекта с помощью Google API Console или API.

Ограничения

Запись данных журнала Gemini Standard и Enterprise в Google Cloud ограничивается взаимодействием пользователя с Gemini Code Assist в среде IDE.

Кроме того, Gemini для Google Cloud не регистрирует данные для Gemini Code Assist Standard и Enterprise, если телеметрия VS Code отключена пользователем.

Прежде чем начать

Убедитесь, что ваш проект Google Cloud привязан к платежному аккаунту.

(Необязательно) Предоставьте разрешения IAM

Для настройки ведения журнала Gemini Code Assist Standard и Enterprise у вас должны быть определенные разрешения Identity and Access Management, которые подробно описаны в следующих разделах. Убедитесь, что эти разрешения добавлены в пользовательские роли IAM .

В качестве альтернативы вы можете предоставить администратору настроек Gemini для Google Cloud ( roles/cloudaicompanion.settingsAdmin ) предопределенную роль IAM, которая включает все требуемые разрешения, необходимые для работы со всеми настройками администратора Gemini для Google Cloud.

(Необязательно) Привязка разрешений к настройкам и целям

Если вы настраиваете параметры администратора Gemini Code Assist Standard и Enterprise в консоли Google API, то вы можете пропустить этот раздел.

Чтобы настроить параметры администратора Gemini Code Assist Standard и Enterprise с помощью API Gemini для Google Cloud , необходимо сначала создать параметры, а затем создать привязки для «связывания» этих параметров и целей (например, экземпляра, темы или проектов) для определенных продуктов (например, Gemini Cloud Assist или Gemini Code Assist).

Все разрешения на создание и обновление настроек находятся на уровне проекта.

Настройка ведения журнала Gemini Code Assist

В следующих разделах приведены шаги, необходимые для включения сбора и хранения активности Gemini Code Assist Standard и Enterprise в Cloud Logging, в том числе:

  • Журналы запросов и ответов Gemini Code Assist Standard и Enterprise, такие как пользовательский ввод, контекстная информация и ответы.

  • Журналы метаданных Gemini Code Assist Standard и Enterprise, такие как метаданные телеметрии и строки кода, принятые пользователем.

Более подробную информацию об обоих типах журналов см. в разделе Просмотр журналов Gemini .

Включить ведение журнала для Gemini Code Assist

Выберите один из следующих вариантов:

Консоль

  1. Убедитесь, что в проекте включен API облачного ведения журнала .

  2. Убедитесь, что у вас есть следующие разрешения на управление идентификацией и доступом в проекте, которому принадлежит подписка:

    • loggingSettings.create
    • loggingSettings.list
    • loggingSettings.update
    • loggingSettings.get
    • cloudaicompanion.instances.loggingSettings.use
    • cloudaicompanion.instances.queryEffectiveSetting
    • settingBindings.loggingSettingsList
    • settingBindings.loggingSettingsGet
    • settingBindings.loggingSettingsUpdate
    • settingBindings.loggingSettingsCreate
    • cloudaicompanion.settingBindings.loggingSettingsUse
    • cloudaicompanion.instances.queryEffectiveSettingBindings
  3. В консоли API перейдите на страницу «Администрирование Gemini» .

    Перейти к Gemini для Google Cloud

    Загрузится страница Gemini для Google Cloud .

  4. Нажмите «Настройки» в левом навигационном меню.

    Загрузится страница настроек .

  5. (Необязательно) Нажмите «Ведение журнала для метаданных Code Assist», чтобы записывать метаданные, созданные пользователями Gemini Code Assist Standard и Enterprise в проекте.

  6. (Необязательно) Щелкните «Ведение журнала запросов и ответов Code Assist», чтобы регистрировать запросы и ответы, сгенерированные пользователями Gemini Code Assist Standard и Enterprise в проекте.

  7. Нажмите Сохранить изменения .

API

Чтобы включить ведение журнала для Gemini Code Assist Standard и Enterprise, используйте метод loggingSetting .

  1. Убедитесь, что в проекте включен API облачного ведения журнала .

  2. Убедитесь, что у вас есть следующие разрешения на управление идентификацией и доступом в проекте, которому принадлежит подписка:

    • loggingSettings.create
    • loggingSettings.list
    • loggingSettings.update
    • loggingSettings.get
    • cloudaicompanion.instances.loggingSettings.use
    • cloudaicompanion.instances.queryEffectiveSetting
    • settingBindings.loggingSettingsList
    • settingBindings.loggingSettingsGet
    • settingBindings.loggingSettingsUpdate
    • settingBindings.loggingSettingsCreate
    • cloudaicompanion.settingBindings.loggingSettingsUse
    • cloudaicompanion.instances.queryEffectiveSettingBindings
  3. Создайте настройку и значение, специфичное для настройки:

    1. Получить токен:

      TOKEN=$(gcloud auth print-access-token)
      
  4. Включите журналы метаданных Gemini Code Assist Standard и Enterprise.

    1. Чтобы создать настройку, выполните следующую команду:

      curl -X POST \
        -H "Authorization: Bearer $TOKEN" \
        -H 'Content-Type: application/json' \
        -d '{
          "log_metadata": true,
          } ' \
        "https://cloudaicompanion.googleapis.com/v1/projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings?logging_setting_id=SETTING_ID"
      

      Заменить следующее:

      • CONTAINER_PROJECT_NAME : введите идентификатор родительского проекта.
      • SETTING_ID : введите уникальное имя настройки, например gcalm1 для Gemini Code Assist log metadata .

      Если команда выполнена успешно, она возвращает тело ответа, в котором показано, что log_metadata имеет значение true :

      {
        "name": "projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings/SETTING_ID",
        "createTime": "2025-01-23T15:22:49.717166932Z",
        "updateTime": "2025-01-23T15:22:49.717166932Z",
        "log_metadata": true
      }
      
    2. Выполните следующую команду, чтобы создать привязку параметров журналов метаданных Gemini Code Assist Standard и Enterprise:

      curl -X POST \
        -H "Authorization: Bearer $TOKEN" \
        -H 'Content-Type: application/json' \
        -d '{
          "target": "projects/TARGET_PROJECT_NAME"
          }' \
        "https://cloudaicompanion.googleapis.com/v1/projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings/SETTING_ID/settingBindings?setting_binding_id=BINDING_ID"
      

    Заменить следующее:

    • TARGET_PROJECT_NAME : введите целевой проект, к которому следует применить настройку.
    • SETTING_ID : Используйте тот же SETTING_ID, который вы создали при создании настройки, но добавьте к нему b1 . Например, используйте gcalmb1 для Gemini Code Assist log metadata .

    Если команда выполнена успешно, она возвращает метаданные операции в следующем формате:

    {
      "name": "projects/<var>CONTAINER_PROJECT_NAME</var>/locations/global/operations/operation-1737646069712-62c6140bb04bb-49261230-43701daf",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.cloudaicompanion.v1.OperationMetadata",
        "createTime": "2025-01-23T15:27:50.076075570Z",
        "target": "projects/<var>TARGET_PROJECT_NAME</var>/locations/global/loggingSettings/<var>SETTING_ID</var>/settingBindings/<var>BINDING_ID</var>",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    
  5. Включите журналы пользователей Gemini Code Assist Standard и Enterprise.

    1. Чтобы создать настройку, выполните следующую команду:

      curl -X POST \
        -H "Authorization: Bearer $TOKEN" \
        -H 'Content-Type: application/json' \
        -d '{
          "log_prompts_and_responses": true,
          } ' \
        "https://cloudaicompanion.googleapis.com/v1/projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings?logging_setting_id=SETTING_ID"
      

      Заменить следующее:

      • CONTAINER_PROJECT_NAME : введите идентификатор родительского проекта.
      • SETTING_ID : введите уникальное имя настройки, например gcapar1 , для Gemini Code Assist prompts and responses .

      Если команда выполнена успешно, она возвращает тело ответа, в котором log_prompts_and_responses установлен в true :

      {
        "name": "projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings/SETTING_ID",
        "createTime": "2025-01-23T15:22:49.717166932Z",
        "updateTime": "2025-01-23T15:22:49.717166932Z",
        "log_prompts_and_responses": true
      }
      
    2. Выполните следующую команду, чтобы создать привязку параметров журналов пользователей Gemini Code Assist Standard и Enterprise:

      curl \
        -H "Authorization: Bearer $TOKEN" \
        -H 'Content-Type: application/json' \
        -d '{
          "target": "projects/TARGET_PROJECT_NAME"
          }' \
        "https://cloudaicompanion.googleapis.com/v1/projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings/SETTING_ID/settingBindings?setting_binding_id=BINDING_ID"
      

    Заменить следующее:

    • TARGET_PROJECT_NAME : введите целевой проект, к которому следует применить настройку.
    • SETTING_ID : Используйте тот же SETTING_ID, который вы создали при создании настройки, но добавьте к нему b1 . Например, используйте gcaparb1 для Gemini Code Assist prompts and responses .

    Если команда выполнена успешно, она возвращает метаданные операции в следующем формате:

    {
      "name": "projects/<var>CONTAINER_PROJECT_NAME</var>/locations/global/operations/operation-1737646069712-62c6140bb04bb-49261230-43701daf",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.cloudaicompanion.v1.OperationMetadata",
        "createTime": "2025-01-23T15:27:50.076075570Z",
        "target": "projects/<var>TARGET_PROJECT_NAME</var>/locations/global/loggingSettings/<var>SETTING_ID</var>/settingBindings/<var>BINDING_ID</var>",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

Отключить ведение журнала для Gemini Code Assist

Выберите один из следующих вариантов:

Консоль

  1. Убедитесь, что у вас есть следующие разрешения на управление идентификацией и доступом в проекте, которому принадлежит подписка:

    • loggingSettings.delete
    • loggingSettings.list
    • loggingSettings.update
    • loggingSettings.get
    • cloudaicompanion.instances.loggingSettings.use
    • cloudaicompanion.instances.queryEffectiveSetting
    • settingBindings.loggingSettingsList
    • settingBindings.loggingSettingsGet
    • settingBindings.loggingSettingsUpdate
    • settingBindings.loggingSettingsDelete
    • cloudaicompanion.settingBindings.loggingSettingsUse
    • cloudaicompanion.instances.queryEffectiveSettingBindings
  2. В консоли API перейдите на страницу «Администрирование Gemini» .

    Перейти к Gemini для Google Cloud

    Загрузится страница Gemini для Google Cloud .

  3. Нажмите «Настройки» в левом навигационном меню.

    Загрузится страница настроек .

  4. Нажмите «Ведение журнала для метаданных Code Assist» , чтобы отключить запись метаданных об использовании Gemini Code Assist Standard и Enterprise в проекте.

  5. Нажмите Сохранить изменения .

API

Чтобы включить ведение журнала для Gemini Code Assist Standard и Enterprise, используйте метод loggingSetting .

  1. Убедитесь, что у вас есть следующие разрешения на управление идентификацией и доступом в проекте, которому принадлежит подписка:

    • loggingSettings.create
    • loggingSettings.list
    • loggingSettings.update
    • loggingSettings.get
    • cloudaicompanion.instances.loggingSettings.use
    • cloudaicompanion.instances.queryEffectiveSetting
    • settingBindings.loggingSettingsList
    • settingBindings.loggingSettingsGet
    • settingBindings.loggingSettingsUpdate
    • settingBindings.loggingSettingsCreate
    • serviceusage.services.enable
  2. Создайте настройку и значение, специфичное для настройки:

    1. Получить токен:

      TOKEN=$(gcloud auth print-access-token)
      
  3. Чтобы отключить настройку журналов метаданных Gemini Code Assist Standard и Enterprise, выполните следующую команду:

      curl -X POST \
        -H "Authorization: Bearer $TOKEN" \
        -H 'Content-Type: application/json' \
        -d '{
          "log_metadata": false,
          } ' \
        "https://cloudaicompanion.googleapis.com/v1/projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings?logging_metadata_id=SETTING_ID"
    

    Заменить следующее:

    • CONTAINER_PROJECT_NAME : введите идентификатор родительского проекта.
    • SETTING_ID : введите существующее имя настройки, например gcalm1 для Gemini Code Assist log metadata .

      Если команда выполнена успешно, она возвращает тело ответа, в котором log_metadata установлен в false :

      {
        "name": "projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings/SETTING_ID",
        "createTime": "2025-01-23T15:22:49.717166932Z",
        "updateTime": "2025-01-23T15:22:49.717166932Z",
        "log_metadata": false
      }
      
  4. Чтобы отключить настройку журналов пользователей Gemini Code Assist Standard и Enterprise, выполните следующую команду:

      curl -X POST \
        -H "Authorization: Bearer $TOKEN" \
        -H 'Content-Type: application/json' \
        -d '{
          "log_prompts_and_responses": false,
          } ' \
        "https://cloudaicompanion.googleapis.com/v1/projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings?logging_setting_id=SETTING_ID"
    

    Заменить следующее:

    • CONTAINER_PROJECT_NAME : введите идентификатор родительского проекта.
    • SETTING_ID : введите существующее имя настройки, например gcapar1 , для Gemini Code Assist prompts and responses .

      Если команда выполнена успешно, она возвращает тело ответа, в котором log_prompts_and_responses установлен в значение false :

      {
        "name": "projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings/SETTING_ID",
        "createTime": "2025-01-23T15:22:49.717166932Z",
        "updateTime": "2025-01-23T15:22:49.717166932Z",
        "log_prompts_and_responses": false
      }
      

Что дальше?