Gemini ログを表示する

このドキュメントでは、Google Cloudで Gemini を使用するときに、ユーザー入力、コンテキスト情報、レスポンスを収集して保存する方法について説明します。 Google Cloud の Gemini は、 Google Cloudの Gemini でユーザーが行った他のユーザー操作(書面によるフィードバックなど)を収集または Cloud Logging に送信しません。収集されたデータは、保存のために Cloud Logging に送信されます。このデータを確認するには、リソースタイプが cloudaicompanion.googleapis.com/Instance のログエントリを検索します。

この機能は、Vertex AI の Gemini 内でプロンプトやレスポンスをロギングしません。Vertex AI で Gemini のログを有効にするには、データアクセス監査ログを有効にするをご覧ください。

Identity and Access Management(IAM)のロールは、プリンシパルがログにアクセスする機能を制御します。プリンシパルに事前定義ロールを付与することも、カスタムロールを作成することもできます。必要な権限の詳細については、アクセス制御をご覧ください。

Cloud Logging では、お客様のコンテンツを保存時に暗号化するのがデフォルトの動作です。Logging によってログバケットに保存されたデータは、暗号鍵を使用して暗号化されます。これはエンベロープ暗号化と呼ばれるプロセスです。ロギングデータにアクセスするには、これらの鍵暗号鍵にアクセスする必要があります。この鍵は Google がお客様の代わりに管理します。

お客様の組織には、デフォルトの保存時の暗号化で提供されない規制、コンプライアンス関連の暗号化、高度な暗号化要件がある場合があります。組織の要件を満たすため、データを保護する暗号鍵を Google が管理するのではなく、お客様が鍵を管理できます。

顧客管理の暗号鍵(CMEK)の使用状況に関する具体的な情報(利点や制限など)については、顧客管理の暗号鍵をご覧ください。

制限事項

Google Cloud で Gemini によって記録されるログデータには、次のプロダクトでのユーザー操作は含まれません。
  • Gemini in BigQuery
  • Gemini in Looker
  • Google Security Operations における Gemini
  • Google Cloud コンソールの Database Center の Gemini ペイン

始める前に

Google Cloud ロギング用に Gemini を有効にする

Google Cloud のロギングで Gemini を有効にするプロジェクト ID を Google Cloud サポートまたは Google Cloud の担当者に連絡します。

Google Cloud の Gemini ログを表示する

Google Cloud の Gemini ログを表示するには、次のいずれかを行います。

Google Cloud コンソール

  1. Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [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 レスポンスなど、Gemini for Google Cloud プラットフォーム イベントの LogEntry にあるフィールドの一覧を示します。

ユーザー リクエスト

次の表に、ユーザー リクエスト ログエントリに含まれるフィールドのリストを示します。

フィールド 値とメモ
LogEntry.resource.type Google Cloudの Gemini のリソースタイプ: cloudaicompanion.googleapis.com/Instance
LogEntry.resource.labels.resource_container Google Cloud の Gemini が使用されたリソース コンテナの一意の ID。
LogEntry.resource.labels.location Google Cloud の Gemini が使用されたロケーション。
LogEntry.resource.labels.instance_id Google Cloud の Gemini が使用されたリソースの一意の 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 Google Cloud の Gemini サービス名。 Google Cloud の Gemini プロダクトが Gemini Code Assist の場合、この値は code_assist です。 Google Cloud の Gemini プロダクトが Gemini Cloud Assist の場合、この値は cloud_assist です。そうでない場合、この値は unknown です。
LogEntry.labels.request_id リクエストをレスポンス ログエントリに関連付けるための固有識別子。
LogEntry.labels.user_id このリクエストを開始したユーザーの 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"
}

次のサンプルは、自動インライン コード提案プロンプトと、コード ファイル内の Google Cloud の Gemini プロンプト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": [
            {
              "language": "go",
              "path": "{/path/to/../current-file.go",
              "segments": [
                {
                  "content": "...Prefix Text..."
                },
                {
                  "content": "...Suffix Text..."
                }
              ],
              "state": ["EDITED"]
            },
            {
              "language": "go",
              "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"
}

Google Cloud レスポンス用の Gemini

次の表に、 Google Cloud の Gemini レスポンス フィールドと説明を示します。

フィールド 値とメモ
LogEntry.resource.type Google Cloudの Gemini のリソースタイプ: cloudaicompanion.googleapis.com/Instance
LogEntry.resource.labels.resource_container Google Cloud の Gemini が使用されたリソース コンテナの一意の ID。
LogEntry.resource.labels.location Google Cloud の Gemini が使用されたロケーション。
LogEntry.resource.labels.instance_id Google Cloud の Gemini が使用されたリソースの一意の 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 Google Cloud の Gemini サービス名。 Google Cloud の Gemini プロダクトが Gemini Code Assist の場合、この値は code_assist です。 Google Cloud の Gemini プロダクトが Gemini Cloud Assist の場合、この値は cloud_assist です。そうでない場合、この値は unknown です。
LogEntry.labels.request_id リクエストをレスポンス ログエントリに関連付けるための固有識別子。
LogEntry.labels.user_id このリクエストを開始したユーザーの ID。
LogEntry.jsonPayload ログエントリのペイロード。回答の生成に使用されたソースの引用は、このオブジェクトに attribution_context として含まれます。
LogEntry.logName ログを識別します。

次のステップ