配置 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 日志记录,您必须拥有特定的 Identity and Access Management (IAM) 权限,这些权限在以下部分中进行了详细说明。请确保将这些权限添加到自定义 IAM 角色

或者,您也可以授予 Gemini for Google Cloud 设置管理员 (roles/cloudaicompanion.settingsAdmin) IAM 预定义角色,该角色包含处理所有 Gemini for Google Cloud 管理员设置所需的所有权限。

(可选)将权限绑定到设置和目标

如果您在 Google API 控制台中配置 Gemini Code Assist Standard 和 Enterprise 管理员设置,则可以跳过本部分。

如需使用 Gemini for Google Cloud API 配置 Gemini Code Assist Standard 和 Enterprise 管理员设置,您必须先创建设置,然后创建绑定,以便将这些设置和目标(例如实例、主题或项目)“绑定”到特定产品(例如 Gemini Cloud Assist 或 Gemini Code Assist)。

创建和更新设置所需的所有权限,均需在项目级别授予。

配置 Gemini Code Assist 日志记录

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

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

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

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

为 Gemini Code Assist 启用日志记录

选择以下某个选项:

控制台

  1. 确保您已在项目中启用 Cloud Logging API。

  2. 确保您在拥有订阅的项目中拥有以下 Identity and Access Management (IAM) 权限:

    • 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. (可选)点击 Logging for Code Assist metadata(为 Code Assist 元数据记录日志),以记录项目中 Gemini Code Assist Standard 和 Enterprise 用户生成的元数据。

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

  7. 点击保存更改

API

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

  1. 确保您已在项目中启用 Cloud Logging API。

  2. 确保您在拥有订阅的项目中拥有以下 Identity and Access Management (IAM) 权限:

    • 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:输入父项目 ID。
      • 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。例如,对于 Gemini Code Assist log metadata,使用 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>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:输入父项目 ID。
      • 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。例如,对于 Gemini Code Assist prompts and responses,使用 gcaparb1

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

    {
      "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. 确保您在拥有订阅的项目中拥有以下 Identity and Access Management (IAM) 权限:

    • 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. 点击保存更改

API

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

  1. 确保您在拥有订阅的项目中拥有以下 Identity and Access Management (IAM) 权限:

    • 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:输入父项目 ID。
    • 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:输入父项目 ID。
    • 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
      }
      

后续步骤