コードの問題を解決するためのガイダンスを提供する。
プロジェクトのコードを生成する。
コーディング時にインラインの候補を受け取る。
Gemini for Google Cloud がデータを使用する方法とタイミングに関する説明をご覧ください。
コードに関するライセンス要件を遵守するために、Gemini Code Assist では、提案が特定のソースから詳細に直接引用を行っている場合、ソースの引用が提供されます。Gemini がソースを引用する方法とタイミングについて詳しくは、Gemini によるコードの生成とソースの引用方法をご覧ください。コード カスタマイズを使用すると、組織のプライベート コードベースに基づいて、Gemini Code Assist から直接コード候補を取得できます。コードのカスタマイズを構成する方法をご確認ください。
このドキュメントは、全スキルレベルのデベロッパーを対象としています。Cloud Workstations に関する実践的な知識があり、 Google Cloudの深い知識があることを前提としています。また、必要に応じて、Gemini Code Assist は、VS Code、IntelliJ、Cloud Shell エディタでも利用できます。
始める前に
-
ワークステーション構成を作成できるように、プロジェクトに Cloud Workstations 管理者の IAM ロールがあることを確認します。
まだ設定していない場合はワークステーションを設定します。必ず構成では Base Editor(Code-OSS)を選択してください。
- コードファイルで Gemini Code Assist の機能をテストする前に、ファイルのコーディング言語がサポートされていることを確認してください。サポートされているコーディング言語の詳細については、サポートされているコーディング言語をご覧ください。
Google Cloud に接続してプロジェクトを選択する
このセクションでは、 Google Cloud に接続し、ワークステーションで Gemini for Google Cloud API が有効になっているGoogle Cloud プロジェクトを選択します。
Gemini for Google Cloud API を有効にせずに Google Cloud プロジェクトを選択すると、IDE から API を有効にするオプションを示す通知が届きます。通知ウィンドウで [API を有効にする] を選択して、プロジェクトに対してこの API を有効にします。詳細については、プロジェクトに Gemini Code Assist を設定するをご覧ください。
ワークステーションで Google Cloud に接続する手順は次のとおりです。
Google Cloud コンソールで、ワークステーションを起動します。
ワークステーションのアクティビティ バーで、spark [Gemini Code Assist] をクリックします。
まだログインしていない場合は、プロンプトに沿って Gemini Code Assist にログインします。
Cloud Workstations で外部のウェブサイトを開くように求められたら、[開く] をクリックします。
アカウントにログインするには、プロンプトに従います。
このアプリを Google からダウンロードしたことを確認するメッセージが表示されたら、[ログイン] をクリックします。
ブラウザで新しいタブが開き、Cloud Code にログインするための確認コードが表示されます。
確認コードをコピーして、「認証コードを入力してください」と表示されたターミナルに貼り付け、Enter(Windows および Linux の場合)または Return(macOS の場合)を押します。
これで、 Google Cloudに接続されました。Gemini を使用できるようになりました。
Gemini Code Assist とチャットする
このセクションでは、[Gemini Code Assist] ペインを開き、Gemini Code Assist とチャットしてコードの説明を取得する方法について学習します。
Gemini とチャットを開始するには、次の手順を行います。
ソースファイルを開きます。
ワークステーションのアクティビティ バーで、spark [Gemini Code Assist] をクリックします。
[Gemini Code Assist] ペインで、プロンプト「
Explain this code to me」を入力し、send(送信)をクリックします。Gemini は、ファイルをプロンプトのコンテキストとして使用し、コードの説明を返します。
特定のコードブロックに焦点を当てるには、プロンプトを入力する前に、開いているファイルでそのブロックを選択します。
チャット履歴をリセットする
Gemini Code Assist は、プロンプトへの応答時に、追加のコンテキストとしてチャット履歴を使用します。
チャットの履歴と、実現しようとしていることとの関連性がなくなった場合は、チャット履歴をリセットできます([Gemini Code Assist] ペインで、delete [Chat のリセット] をクリックします)。
プロンプトを使用してコードを生成する
以下のセクションでは、Gemini Code Assist を使用して、ファイル内のサンプル プロンプト Function to create a Cloud Storage
bucket でコードを生成する方法について説明します。また、コーディング中には、コードの一部を選択して、チャット機能で Gemini Code Assist にサポートを求め、コードの候補から取捨選択することも可能です。
ファイルで Gemini Code Assist をプロンプト表示する
ソースファイルの新しい行でコメント「
Function to create a Cloud Storage bucket」を入力し、Enter(Windows および Linux の場合)または Return(macOS の場合)を押します。コードを生成するには、Control+Enter(Windows および Linux)や Ctrl+Return(macOS の場合)を押します。
コードは、Gemini Code Assist がファイルのプロンプト テキストの横に、ゴースト テキスト形式で生成します。
省略可: 生成されたコードを受け入れるには、Tab を押します。
省略可: コードを生成するためのキーボード ショートカットを変更します
前のセクションで説明したように、コードを生成するためのデフォルトのキーボード ショートカットが動作しない場合は、次の手順でキーボード ショートカットを変更できます。
ワークステーションで、menu [メニュー] をクリックし、[ファイル] > [設定] > [キーボード ショートカット] に移動します。
キーボード ショートカットのリストで、[Cloud Code: コードを生成] を検索します。
[Cloud Code: コードを生成] をクリックし、edit [キーバインドを変更] をクリックします。
表示されるダイアログで、独自のショートカットを入力します。
Enter(Windows および Linux の場合)または Return(macOS の場合)を押します。
新しく割り当てたキーボード ショートカットを使用して、Gemini でコードを生成できるようになりました。
選択したコードを使用してチャットで Gemini Code Assist に指示する
Gemini Code Assist は、選択したコードに基づいてタスクを実行したり、質問に回答したりすることが可能です。選択したコードとプロンプトに基づいて生成されたコードを取得するには、次の手順を行います。
アクティビティ バーで、spark [Gemini Code Assist] をクリックして [Gemini Code Assist] チャット ペインを開きます。
ソースファイルで、コードのブロックを選択します。
[Gemini Code Assist] チャットのテキスト フィールドに、選択したコードに対するプロンプトを入力します。
たとえば、コード内の関数を選択し、プロンプト「
Write a unit test for this function」を入力します。Gemini は、選択したコードをリファレンスとして使用し、プロンプトに応答します。
コーディング中にインライン候補を表示する
Gemini Code Assist は、コードの記述時に、インライン コードの候補を作成します。ユーザーはこれを取捨選択できます。この機能を試すには、次の手順を行います。
ソースファイルの新しい行で、関数の作成を開始します。たとえば、Python ファイルの場合は、「
def」と記述します。Gemini は、ゴースト テキスト形式でコードの候補を表示します。Gemini Code Assist からのコード候補を受け入れるには、Tab を押します。それ以外で、提案を無視するには、Esc を押すか、引き続きコードを記述します。
省略可: インライン候補を無効にする
Gemini Code Assist でインライン候補を無効にするには、次の手順に従います。
ワークステーションで、menu [メニュー] を選択し、[ファイル] > [設定] > [設定] に移動します。
[設定] ダイアログの [ユーザー] タブで、[拡張機能] > [Cloud Code] に移動します。
[Cloudcode: Gemini Code Assist: Inline Suggestions: Enable Auto] リストが表示されるまでスクロールして、[Off] を選択します。
これで、インライン候補は無効になります。インライン候補は、Control+Enter(Windows および Linux の場合)や Ctrl+Return(macOS の場合)を押すことで、引き続き手動で起動できます。
省略可: .aiexclude ファイルを使用してコンテキストからファイルを除外する
.aiexclude ファイルを作成すると、Gemini Code Assist がコンテキストとして検討する対象からファイルを除外できます。.aiexclude ファイルの構文は .gitignore ファイルと類似していますが、次の点が異なります。
- 空または存在しない
.aiexcludeファイルは、そのディレクトリとすべてのサブディレクトリ内のファイルをブロックしません。 .aiexcludeファイルは、パターンの前に感嘆符(!)を付ける否定演算をサポートしていません。.aiexcludeファイルは*文字に貪欲に一致します。これにより、ディレクトリとファイルが無差別に一致します。この.aiexcludeファイルは、フォルダまたはファイルに関して**と*を区別しません。
現在サポートされているのは 1 つの .aiexclude ファイルのみです。.aiexclude ファイルを構成するには、ワークスペース フォルダのルートに .aiexclude というタイトルのファイルを作成します。このファイルをワークスペースのルートの外に配置する場合や、ファイルの名前を変更する場合は、VS Code の設定の「Context Exclusion File」でパスを設定できます。この設定で指定されたパス値は、開いているワークスペースのルートフォルダを基準として解決されます。
例
次の例は、.aiexclude ファイルを構成する方法を示しています。
ワークスペース ディレクトリまたはディレクトリの下にある
apikeys.txtという名前のすべてのファイルをブロックします。apikeys.txtワークスペース ディレクトリまたはディレクトリの下にある
.keyファイル拡張子を持つすべてのファイルをブロックします。*.key.aiexcludeファイルと同じディレクトリにある apikeys.txt ファイルのみをブロックし、サブディレクトリはブロックしません。/apikeys.txtディレクトリ
my/sensitive/dirとすべてのサブディレクトリ内のすべてのファイルをブロックします。パスは、ワークスペースのルート ディレクトリを基準とした相対パスにする必要があります。my/sensitive/dir/*
引用されたソースに一致するコードの候補を無効にする
一般公開されているソースコードなど、別のソースから詳細に直接引用する際、Gemini が引用情報を提供します。詳細については、Gemini によるソースの引用方法とタイミングをご覧ください。
引用されたソースに一致するコードが提案されないようにするには、settings.json ファイルの geminicodeassist.recitation.maxCitedLength 設定を 0 に変更します。
"geminicodeassist.recitation.maxCitedLength": 0
スマート アクションを使用する
コンテキストの切り替えを最小限に抑えながら生産性を向上させるため、Gemini Code Assist では、AI を活用したスマート アクションをソースコード エディタに直接備えています。エディタでコードを選択すると、コンテキストに関連するアクションのリストを表示して選択できます。
スマート アクションを使用する手順は次のとおりです。
ソースファイルで、コードのブロックを選択します。
選択したコードブロックの横にある lightbulb [コード アクションを表示] をクリックします。
[Generate unit tests] などのアクションを選択します。
Gemini は、選択したアクションに基づいて回答を生成します。
コード変換を使用する
Gemini Code Assist には、コード変換が用意されています。これにより、ファイル内のコードの一部を選択し、インライン テキスト ボックスを使用して自然言語のプロンプトで既存のコードの変更をリクエストできます。
コード変換を使用すると、次のことができます。
- コードを文書化するためのコメント行を生成する
- 問題のあるコードのトラブルシューティング
- コードの可読性を高める
- コードを効率化する
生成されたレスポンスのコンテキスト ソースは、[Gemini: チャット] ペインで表示することもできます。
インライン テキスト ボックスで Gemini Code Assist をプロンプト表示する
インライン テキスト ボックスでは、コード内で Gemini Code Assist を直接操作できます。
インラインテキストボックスを開いて Gemini をプロンプト表示するには、次の手順に従います。
ソースファイルで、Ctrl+I(Windows および Linux の場合)または Command+I(macOS の場合)を押します。
プロンプト(
Write a function to create a Cloud Storage bucketなど)を入力して、Enter (Windows と Linux の場合)または Return(macOS の場合)を押します。Gemini Code Assist は、プロンプトに基づいてコードを生成します。
リファクタリングされたコードの差分を表示する
インライン テキスト ボックスに組み込まれた差分ビューでは、Gemini が提案する変更と元のコードを確認できます。その後、提案された変更を受け入れることも、破棄することもできます。
インラインテキストボックスからリファクタリングされたコードの差分を表示するには、次の手順を行います。
ソースファイルで関数を選択し、Ctrl+I(Windows および Linux の場合)または Command+I(macOS の場合)を押してインライン テキスト ボックスを開きます。
「
Add comments」などのプロンプトを入力して、Enter(Windows と Linux の場合)または Return(macOS の場合)を押します。選択した関数に対するコードの変更が Gemini によって生成されると、差分ビューが表示されます。
変更を承認または破棄するには、[承認] または [破棄] をクリックします。
生成された回答のコンテキスト ソースを表示する
コンテキスト表示機能では、プロンプトへのレスポンスの生成への参照として使用されたプロジェクト ファイル(コンテキスト ソース)が一覧表示されます。どのファイルが参照として使用されたかを知ることで、プロンプトを絞り込み、より具体的なレスポンスを得ることができます。コンテキスト ソースは、Gemini とのチャットを使用するたびに表示されます。
生成されたレスポンスのコンテキスト ソースを表示するには、[Gemini: チャット] ペインで、[Context Sources] スニペットが表示されるまでスクロールします。スニペットを展開すると、すべてのコンテキスト ソースが表示されます。
Smart Commands を使用する
Smart Commands は、インライン テキスト ボックスで使用でき、コードに対して特定のアクションを実行するコマンドです。
/explain Smart Commands を使用してソースファイル全体の説明を取得する手順は次のとおりです。
ファイルで、Ctrl+I(Windows および Linux の場合)または Command+I(macOS の場合)を押してインライン テキスト ボックスを開きます。
/ を押すと、スマート コマンドとその説明のリストが表示されます。
[
/explain] を選択します。Gemini によって、ファイル全体の説明がインライン テキスト ボックスに生成されます。
省略可: 生成された回答を [Gemini: チャット] ペインに表示する場合は、[チャットで表示] をクリックします。
プロンプト履歴を表示する
プロンプトの履歴にアクセスすると、大きいソースファイルでプロンプトを再利用する場合に時間を節約できます。
プロンプトの履歴にアクセスするには、ファイルで Ctrl+I(Windows および Linux の場合)または command+I(macOS の場合)を押してインライン テキスト ボックスを開きます。Ctrl+上矢印(Windows および Linux)または Command+上矢印(macOS の場合)を押します。これにより、古いプロンプトを順番に処理し、必要に応じて再利用できます。
英語を母国語としないユーザー向けにコードの読みやすさを向上させる
翻訳アプリケーションに依存している非ネイティブの英語話者の場合は、インライン テキスト ボックスを使用して他の言語でコメントを生成できます。
英語のコメントを別の言語に変換したり、別の言語で新しいコメントを追加したりするには、次の手順を行います。
ソースファイルで、コメントを追加するコードを選択します。
Ctrl+I(Windows と Linux の場合)または Command+I(macOS の場合)を押して、インライン テキスト ボックスを開きます。
「
Add spanish comments」などのプロンプトを入力して、Enter(Windows と Linux の場合)または Return(macOS の場合)を押します。Gemini によって、プロンプトで指定した言語でコメントが生成され、これらの提案の差分が表示されます。
コードの変更を承認または破棄するには、[承認] または [破棄] をクリックします。
他のサンプル プロンプトをテストする
このドキュメントのプロンプトを使用してコードを生成するセクションを読み終えたら、次のプロンプト例をいくつか試してください。
コードの説明を取得する
- ソースファイルで、説明対象の関数を選択します。
[Gemini Code Assist] ペインで、プロンプト「
Explain this code to me」を入力します。Gemini は、選択したコードをリファレンスとして使用し、選択した関数の説明を返します。
テスト計画を生成する
- ソースファイルで、単体テストを追加するコードを選択します。
- [Gemini Code Assist] ペインで、プロンプト「
Write unit tests for my code」を入力します。
デバッグコードでヘルプを受ける
- ソースファイルで、デバッグするコードを選択します。
- [Gemini Code Assist] ペインで、プロンプト「
Help me debug my code」を入力します。
コードを読みやすくする
- ソースファイルで、読みやすくするコードを選択します。
[Gemini Code Assist] ペインで、プロンプト「
Make my code more readable」を入力します。コードの特定の部分に焦点を当てるには、Gemini のプロンプトを表示する前にコードの目的の箇所を選択します。
既知の問題
以降のセクションでは、Gemini Code Assist の既知の問題について説明します。
ライセンスの引用に関する警告がセッションをまたいで維持されない
ライセンスの引用に関する警告がセッションをまたいで維持されない場合は、永続ログをご覧ください。
menu [メニュー] > [表示] > [出力] の順にクリックします。
[Gemini Code Assist- 引用] を選択します。
Gemini Code Assist の出力ウィンドウにおける接続の問題
Gemini Code Assist の出力ウィンドウに接続エラーなどの接続の問題が表示される場合は、次のことをお試しください。
oauth2.googleapis.comとcloudaicompanion.googleapis.comへのアクセスを許可するようにファイアウォールを構成する。gRPC が使用する HTTP/2 経由の通信を許可するようにファイアウォールを構成する。
grpc-health-probe ツールを使用して接続をテストできます。テストで問題がない場合は、次の出力が表示されます。
$ grpc-health-probe -addr cloudaicompanion.googleapis.com:443 -tls
error: this server does not implement the grpc health protocol
(grpc.health.v1.Health): GRPC target method can't be resolved
テストで問題があった場合は、次の出力が表示されます。
timeout: failed to connect service "cloudaicompanion.googleapis.com:443" within 1s
詳細を取得するには、「grpc-health-probe」の前に次のコマンドを実行します。
export GRPC_GO_LOG_SEVERITY_LEVEL=info
Gemini Code Assist と JetBrains Gateway
Gemini Code Assist は JetBrains Gateway を介して実行されません。そのため、JetBrains Gateway を介して接続する必要がある Cloud Workstations IDE では、Gemini Code Assist は実行されません。
Gemini Code Assist プロジェクトを選択した後も、[Gemini Code Assist を有効にする] が表示される
このガイドの手順に沿ってプロジェクトを選択し、Gemini for Google Cloud API を有効にした場合は、LS サーバーに問題が生じる可能性があります。
問題の詳細を確認するには、次の操作を行います。
ステータスバーで、spark [Gemini Code Assist] をクリックしてから、[フィードバックを送信] を選択します。
いずれかのログファイルの [表示] をクリックすると、詳細が表示され、問題のトラブルシューティングを実行できます。
フィードバックを送信
体験へのフィードバックを残すには、次の手順に従います。
ステータスバーで [Gemini Code Assist] をクリックし、クイック選択メニューで [フィードバックを送信] を選択します。
フォームの [Title] と [Comment] のフィールドに記入します。
Skaffold または AI Companion のログを共有するには、[Skaffold ログを送信する] または [AI Companion ログを送信する] のオプションを選択します。
[フィードバックを送信する] をクリックします。
次のステップ
- より良いプロンプトを作成する方法を確認する。