このドキュメントでは、Gemini for Google Cloud を使用するときに、ユーザー入力、コンテキスト情報、レスポンスを収集して保存する方法について説明します。Gemini for Google Cloud は、ユーザーが Gemini for Google Cloud で行った他のユーザー操作(書面によるフィードバックなど)を収集または 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
- Database Center の Google Cloud コンソールの Gemini ペイン
始める前に
-
Gemini for Google Cloud ログを表示するために必要な権限を取得するには、プロジェクトに対するログ閲覧者 (
roles/logging.viewer
)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。 Gemini for Google Cloud のロギングを有効にする前に、Cloud Logging の料金と Gemini for Google Cloud の料金を確認します。
Gemini for Google Cloud のロギングを有効にする
Gemini for Google Cloud ロギングを有効にするプロジェクト ID を Google Cloud サポートまたは Google Cloud の担当者に連絡してください。
Gemini for Google Cloud のログを表示する
Gemini for Google Cloud のログを表示するには、次のいずれかを行います。
Google Cloud コンソール
-
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが「Logging」の結果を選択します。
- ツールバーで、Google Cloud コンソール プロジェクトを選択します。
- ツールバーで [すべてのリソース] メニューを開き、リソース [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 |
Gemini for Google Cloud のリソースタイプ: 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 |
このリクエストを開始したユーザーの 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": [
{
"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 |
Gemini for Google Cloud のリソースタイプ: 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 |
このリクエストを開始したユーザーの ID。 |
LogEntry.jsonPayload |
ログエントリのペイロード。回答の生成に使用されたソースの引用は、このオブジェクトに attribution_context として含まれます。 |
LogEntry.logName |
ログを識別します。 |
次のステップ
- Google Cloud でログを表示、分析、モニタリングする方法を学習します。
- 詳しくは、Gemini for Google Cloud の使用状況のモニタリングをご覧ください。