配置 Gemini Code Assist Standard 和 Enterprise 日志记录

本文档介绍了如何使用 Google API 控制台或 API 为项目配置 Gemini Code Assist Standard 和 Enterprise 日志记录。

Google Cloud 中的 Gemini Standard 和 Enterprise 日志数据记录仅限于用户在 IDE 中与 Gemini Code Assist 的互动。

此外,如果用户关闭了 VS Code 遥测,Gemini for Google Cloud 不会记录 Gemini Code Assist Standard 和 Enterprise 的数据。

准备工作

验证您的 Google Cloud 项目是否已关联结算账号。

验证 IAM 权限

如需配置 Gemini Code Assist Standard 和 Enterprise 日志记录,您可以授予 Gemini for Google Cloud Settings Admin (roles/cloudaicompanion.settingsAdmin) Identity and Access Management 预定义角色,该角色包含使用所有 Gemini for Google Cloud 管理员设置所需的所有权限。

或者,您也可以更新任何自定义 IAM 角色。您必须拥有特定 IAM 权限,以下部分将详细介绍这些权限。

配置 Gemini Code Assist 日志记录

以下部分介绍了在 Cloud Logging 中启用 Gemini Code Assist Standard 和 Enterprise 活动的收集和存储所需的步骤,包括:

  • Gemini Code Assist Standard 和 Enterprise 提示和回答日志,例如用户输入、上下文信息和回答。

  • Gemini Code Assist Standard 和 Enterprise 元数据日志,例如用户接受的遥测元数据和代码行。

如需详细了解这两种类型的日志,请参阅查看 Gemini 日志

为 Gemini Code Assist 启用日志记录

从下列选项中选择一项:

控制台API
  1. 验证您是否已在项目中启用 Cloud Logging API。

  2. 验证您是否在拥有订阅的项目中拥有以下 IAM 权限:

    • instance.queryEffectiveSetting
    • instance.queryEffectiveSettingBindings
    • 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 for Google Cloud

    系统会加载 Gemini for Google Cloud 页面。

  4. 点击左侧导航菜单中的设置

    系统会加载设置页面。

  5. (可选)点击 Code Assist 元数据的日志记录,以记录项目中的 Gemini Code Assist Standard 和 Enterprise 用户生成的元数据。

  6. (可选)点击 Code Assist 提示和回答的日志记录,以记录项目中的 Gemini Code Assist Standard 和 Enterprise 用户生成的提示和回答。

  7. 点击保存更改

如需为 Gemini Code Assist Standard 和 Enterprise 启用日志记录,请使用 loggingSettings 资源定义所需的日志记录设置,并使用 loggingSettings.settingBindings 资源将设置绑定到项目:

  1. 验证您是否已在项目中启用 Cloud Logging API。

  2. 验证您是否在拥有订阅的项目中拥有以下 IAM 权限:

    • instance.queryEffectiveSetting
    • instance.queryEffectiveSettingBindings
    • 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 日志。用户日志和元数据日志分别通过 log_prompts_and_responseslog_metadata 字段进行启用。如果您不想启用某个字段,请将其从请求中排除。

    1. 运行以下命令以创建设置:

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

      替换以下内容:

      • CONTAINER_PROJECT_NAME:输入在其中存储绑定资源的项目的项目 ID。这是绑定的父级项目。
      • LOGS_SETTING_ID:输入唯一的设置名称,例如 gcalm

      如果命令成功,则会返回一个响应正文,其中显示 log_prompts_and_responseslog_metadata 设置为 true

      {
        "name": "projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings/LOGS_SETTING_ID",
        "createTime": "2025-01-23T15:22:49.717166932Z",
        "updateTime": "2025-01-23T15:22:49.717166932Z",
        "log_prompts_and_responses": true,
        "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/LOGS_SETTING_ID/settingBindings?setting_binding_id=LOGS_BINDING_ID"
      

    替换以下内容:

    • TARGET_PROJECT_NAME:输入绑定的目标项目。这通常与容器项目相同。不过,您可以将某项设置绑定到多个项目,以便不必复制设置资源。
    • LOGS_BINDING_ID:使用与创建设置时相同的 LOGS_SETTING_ID,但在其后附加 b1。例如,使用 gcalmb1

    如果命令成功,则会采用以下格式返回操作元数据:

    {
      "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>LOGS_SETTING_ID</var>/settingBindings/<var>LOGS_BINDING_ID</var>",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

为 Gemini Code Assist 停用日志记录

从下列选项中选择一项:

控制台API
  1. 验证您是否在拥有订阅的项目中拥有以下 IAM 权限:

    • instance.queryEffectiveSetting
    • instance.queryEffectiveSettingBindings
    • 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 for Google Cloud

    系统会加载 Gemini for Google Cloud 页面。

  3. 点击左侧导航菜单中的设置

    系统会加载设置页面。

  4. 点击 Code Assist 元数据的日志记录,以停止记录此项目中对 Gemini Code Assist Standard 和 Enterprise 的使用所生成的元数据。

  5. 点击保存更改

如需为 Gemini Code Assist Standard 和 Enterprise 停用日志记录,请使用 loggingSetting 方法。

  1. 验证您是否在拥有订阅的项目中拥有以下 IAM 权限:

    • instance.queryEffectiveSetting
    • instance.queryEffectiveSettingBindings
    • 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_prompts_and_responses": false,
          "log_metadata": false,
          } ' \
        "https://cloudaicompanion.googleapis.com/v1/projects/CONTAINER_PROJECT_NAME/locations/global/loggingSettings?logging_metadata_id=LOGS_SETTING_ID"
    

    替换以下内容:

    • CONTAINER_PROJECT_NAME:输入父项目 ID。
    • LOGS_SETTING_ID:输入现有设置名称,例如 gcalm

      如果命令成功,则会返回一个响应正文,其中显示 log_prompts_and_responseslog_metadata 设置为 false

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

后续步骤