Gemini for Google Cloud Code Assist のログを表示する

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

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

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

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

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

始める前に

Gemini Code Assist ロギングを有効にする

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

Gemini Code Assist ログを表示する

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

Google Cloud コンソール

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

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

    検索バーを使用してこのページを検索する場合は、小見出しが「Logging」の結果を選択します。

  2. ツールバーで、Google Cloud コンソールのプロジェクトを選択します。
  3. メニューを使用して、リソースの [Cloud AI コンパニオン インスタンス] を選択します。

Google Cloud CLI

次のコマンドを実行します。

gcloud logging read 'resource.type=cloudaicompanion.googleapis.com/Instance jsonPayload.taskCompletionRequest.input.messages.content=~"SEARCH_TERM"' --project PROJECT_ID

サンプル ログエントリ

LogEntry は、Cloud Logging のデータの基本単位です。以下のセクションでは、Gemini プラットフォーム イベントの LogEntry に含まれるフィールド(ユーザー リクエストGemini レスポンスなど)のリストを示します。

ユーザー リクエスト

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

項目 値とメモ
LogEntry.resource.type Gemini のリソースタイプ: cloudaicompanion.googleapis.com/Instance
LogEntry.resource.labels.resource_container Gemini が使用されたリソース コンテナの一意の ID。
LogEntry.resource.labels.location Gemini が使用された場所。
LogEntry.resource.labels.resource_id Gemini が使用されたリソースの一意の ID。
LogEntry.labels.client_name Gemini へのアクセスに使用するサーフェスを識別します(VS Code や Google Cloud コンソールなど)。
LogEntry.labels.client_version Gemini へのアクセスに使用されたクライアント サーフェスのバージョン番号。
LogEntry.labels.product Gemini for Google Cloud サービス名。
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": {
    "client_name": "ConsoleChat",
    "client_version": ""
    "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 プロンプトチャットを使用して選択したコードを含む Gemini プロンプトインライン コード提案など)の RequestLog エントリの例を示しています。

{
  "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": {
    "client_name": "VSCode",
    "client_version": "v1.0.2",
    "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"
    "codeGenerationRequest":
      input: {
        prompt: "Generate some great Python for me."
      }
  }
  "logName": "projects/my-project-id/logs/cloudaicompanion.googleapis.com%2Frequest",
  "receiveTimestamp": "2023-11-03T23:27:31.255648319Z"
  "severity": "INFO"
}

Gemini のレスポンス

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

項目 値とメモ
LogEntry.resource.type Gemini のリソースタイプ: cloudaicompanion.googleapis.com/Instance
LogEntry.resource.labels.resource_container Gemini が使用されたプロジェクトの一意の ID。
LogEntry.resource.labels.location Gemini が使用された場所。
LogEntry.resource.labels.resource_id Gemini が使用されたリソースの一意の ID。
LogEntry.labels.responseId Gemini によるレスポンスの一意の ID。
LogEntry.labels.duetClient VS Code や Google Cloud コンソールなど、Gemini にアクセスするためのサーフェスを識別します。
LogEntry.labels.product Gemini for Google Cloud サービス名。
LogEntry.labels.request_id リクエストをレスポンス ログエントリに関連付けるための固有識別子。
LogEntry.labels.user_id このリクエストを開始したユーザーの ID。
LogEntry.jsonPayload ログエントリのペイロード。
LogEntry.logName ログを識別します。

次のステップ