查看 Gemini 日志

本文档介绍了在使用 Google Cloud 专用 Gemini 时,如何启用收集和存储用户输入、情境信息和回答的功能。Gemini for Google Cloud 不会收集或发送用户与 Gemini for Google Cloud 可能进行的任何其他互动,包括书面反馈。收集的数据会发送到 Cloud Logging 进行存储。您可以搜索资源类型为 cloudaicompanion.googleapis.com/Instance 的日志条目,以查看此类数据。

此功能不会记录 Vertex AI 中 Gemini 中的提示或回答。如需在 Vertex AI 中为 Gemini 启用日志,请参阅启用数据访问审核日志

Identity and Access Management (IAM) 角色用于控制主账号访问日志的权限。您可以向主账号授予预定义角色,也可以创建自定义角色。如需详细了解所需权限,请参阅访问权限控制

默认情况下,Cloud Logging 会对以静态方式存储的客户内容进行加密。Logging 存储在日志分桶中的数据使用密钥加密密钥进行加密,此过程称为“信封加密”。访问日志记录数据需要访问这些密钥加密密钥,Google 会为您管理这些密钥,您无需执行任何操作。

您的组织可能具有我们的默认静态加密不提供的监管、合规性相关或高级加密要求。为满足贵组织的要求,您可以管理加密密钥,而不是由 Google 管理用于保护您的数据的加密密钥。

如需详细了解客户管理的加密密钥 (CMEK) 的使用(包括优点和限制),请参阅 CMEK

限制

Google Cloud 中的 Gemini 记录的日志数据不包括用户与以下产品的互动:
  • Gemini in BigQuery
  • Gemini in Looker
  • Google Security Operations 中的 Gemini
  • Google Cloud 控制台中适用于数据库中心的 Gemini 窗格

准备工作

为 Google Cloud 日志记录启用 Gemini

与 Google Cloud 支持团队或您的 Google Cloud 代表联系,并提供您要为其启用 Gemini 的 Google Cloud 日志记录的项目 ID。

查看 Gemini for Google Cloud 日志

如需查看 Gemini for Google Cloud 日志,请执行以下操作之一:

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,转到 Logs Explorer 页面。

    前往 Logs Explorer

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 在工具栏中,选择一个 Google Cloud 控制台项目。
  3. 在工具栏中,展开所有资源菜单,然后选择资源 Cloud AI 同伴实例

Google Cloud CLI

运行以下命令:

gcloud logging read "resource.type=cloudaicompanion.googleapis.com/Instance" --project PROJECT_ID  --limit 3

示例日志条目

LogEntry 是 Cloud Logging 中的数据基本单位。以下部分列出了 Gemini for Google Cloud 平台事件的 LogEntry 中找到的字段,例如用户请求Gemini for Google Cloud 响应

用户请求数量

下表列出了用户请求日志条目中包含的字段。

字段 值和备注
LogEntry.resource.type 适用于 Google Cloud 的 Gemini 的资源类型cloudaicompanion.googleapis.com/Instance
LogEntry.resource.labels.resource_container 使用 Gemini for Google Cloud 的资源容器的唯一 ID。
LogEntry.resource.labels.location 使用 Gemini for Google Cloud 的位置。
LogEntry.resource.labels.instance_id 使用 Gemini for Google Cloud 的资源的唯一 ID。
LogEntry.labels.method 可以是以下任一项,具体取决于调用了 logEntry 的操作:

CompleteTask:例如,来自 Gemini Code Assist 或其他 Gemini for Google Cloud 服务的聊天请求。

GenerateCode:例如,生成代码的请求,例如 Gemini Code Assist 中的代码转换请求。

CompleteCode:例如,在 IDE 中工作时补全代码的请求,例如 Gemini Code Assist 中的内嵌建议
LogEntry.labels.product Gemini for Google Cloud 服务名称。如果 Gemini for Google Cloud 产品为 Gemini Code Assist,则此值为 code_assist。否则,此值为 unknown
LogEntry.labels.request_id 用于将请求与响应日志条目相关联的唯一标识符。
LogEntry.labels.user_id 发起此请求的用户的标识符。
LogEntry.jsonPayload 日志条目的载荷。
LogEntry.logName 标识日志。

以下示例展示了聊天提示事件的日志条目示例。

{
  "insertId": "654581e30003b19e340bbd96",
  "resource": {
    "type": "cloudaicompanion.googleapis.com/Instance",
    "labels": {
        instance_id: "default"
        location: "global"
        resource_container: "my-project-id"
     }
  },
  "timestamp": "2023-11-03T23:27:31.242078Z",
  "labels": {
    "product": "code_assist",
    "request_id": "4ea1e265-ea5d-4d11-b3c8-39bad9c96326"
    "user_id": "my-user@example.com"
  },
  "jsonPayload" : {
    @type: "type.googleapis.com/google.cloud.cloudaicompanion.logging.v1.RequestLog"
    "taskCompletionRequest":
      input: {
        messages: [{
          author: "USER"
          content: "What are some best practices to save cost on my Google Cloud bill?"
        }]
        preamble: ""
      }
  }
  "logName": "projects/my-project-id/logs/cloudaicompanion.googleapis.com%2Frequest",
  "receiveTimestamp": "2023-11-03T23:27:31.255648319Z"
  "severity": "INFO"
}

以下示例展示了自动内嵌代码建议提示和在代码文件中提示 Gemini for Google Cloud 的示例 RequestLog 条目。

内嵌代码建议的提示数据使用 codeCompletionRequest 对象(如以下示例所示),而手动触发的生成使用 codeGenerationRequest

{
  "insertId": "654581e30003b19e340bbd96",
  "resource": {
    "type": "cloudaicompanion.googleapis.com/Instance",
    "labels": {
        instance_id: "default"
        location: "global"
        resource_container: "my-project-id"
     }
  },
  "timestamp": "2023-11-03T23:27:31.242078Z",
  "labels": {
    "product": "code_assist",
    "request_id": "4ea1e265-ea5d-4d11-b3c8-39bad9c96326"
    "user_id": "my-user@example.com"
  },
  "jsonPayload" : {
    @type: "type.googleapis.com/google.cloud.cloudaicompanion.logging.v1.RequestLog"
    "codeCompletionRequest": {
      "input_data_context": {
        "additional_context": {
          "files": [
            {
              "path": "{/path/to/../current-file.go",
              "segments": [
                {
                  "content": "...Prefix Text..."
                },
                {
                  "content": "...Suffix Text..."
                }
              ],
              "state": ["EDITED"]
            },
            {
              "path": "/path/to/../recent-file.go",
              "segments": [
                {
                  "content": "...File Text..."
                }
              ],
              "state": ["RECENTLY_OPENED"]
            }
          ]
        }
      }
    }
  }
  "logName": "projects/my-project-id/logs/cloudaicompanion.googleapis.com%2Frequest",
  "receiveTimestamp": "2023-11-03T23:27:31.255648319Z"
  "severity": "INFO"
}

Gemini for Google Cloud 回答

下表显示了 Gemini for Google Cloud 响应字段和说明。

字段 值和备注
LogEntry.resource.type 适用于 Google Cloud 的 Gemini 的资源类型cloudaicompanion.googleapis.com/Instance
LogEntry.resource.labels.resource_container 使用 Gemini for Google Cloud 的资源容器的唯一 ID。
LogEntry.resource.labels.location 使用 Gemini for Google Cloud 的位置。
LogEntry.resource.labels.instance_id 使用 Gemini for Google Cloud 的资源的唯一 ID。
LogEntry.labels.method 可以是以下任一项,具体取决于调用了 logEntry 的操作:

CompleteTask:例如,来自 Gemini Code Assist 或其他 Gemini for Google Cloud 服务的聊天请求。

GenerateCode:例如,生成代码的请求,例如 Gemini Code Assist 中的代码转换请求。

CompleteCode:例如,在 IDE 中工作时补全代码的请求,例如 Gemini Code Assist 中的内嵌建议
LogEntry.labels.product Gemini for Google Cloud 服务名称。如果 Gemini for Google Cloud 产品为 Gemini Code Assist,则此值为 code_assist。否则,此值为 unknown
LogEntry.labels.request_id 用于将请求与响应日志条目相关联的唯一标识符。
LogEntry.labels.user_id 发起此请求的用户的标识符。
LogEntry.jsonPayload 日志条目的载荷。用于生成回答的所有来源引文都作为 attribution_context 包含在此对象中。
LogEntry.logName 标识日志。

后续步骤