このドキュメントでは、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 ログを表示するために必要な権限を取得するには、プロジェクトに対するログビューア(
roles/logging.viewer
)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理をご覧ください。 Gemini ロギングを有効にする前に、Cloud Logging の料金と Gemini for Google Cloud Code Assist の料金を確認してください。
Gemini Code Assist ロギングを有効にする
Gemini Code Assist ロギングを有効にするプロジェクト ID を Google Cloud サポートまたは Google Cloud の担当者に連絡してください。
Gemini Code Assist ログを表示する
Gemini Code Assist ログを表示するには、次のいずれかを行います。
Google Cloud コンソール
-
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが「Logging」の結果を選択します。
- ツールバーで、Google Cloud コンソールのプロジェクトを選択します。
- メニューを使用して、リソースの [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 |
ログを識別します。 |
次のステップ
- Google Cloud でログを表示、分析、モニタリングする方法を学習します。