Gemini Code Assist によるコード

このドキュメントでは、Google Cloud の AI を活用したコラボレーターである Gemini Code Assist を使用し、Cloud Workstations のベースエディタで次のことを行う方法について説明します。

  • コードの問題を解決するためのガイダンスを提供する。

  • プロジェクトのコードを生成する。

  • コーディング時にインラインの候補を受け取る。

Gemini がプロンプトやそのレスポンスをデータとして使用してモデルをトレーニングすることはありせん。詳細については、Google Cloud の Gemini がデータを使用する方法をご覧ください。

コードに関するライセンス要件を遵守するために、Gemini Code Assist は、提案が特定のソースから直接長い流用を行っている場合、ソースの引用を明示します。Gemini がソースを引用する方法とタイミングについて詳しくは、Gemini によるコードの生成とソースの引用方法をご覧ください。

このドキュメントは、全スキルレベルのデベロッパーを対象としています。Cloud Workstations に関する実践的な知識があり、Google Cloud の深い知識があることを前提としています。また、必要に応じて、Gemini Code Assist は、Cloud Code for VS CodeCloud Code for IntelliJCloud Shell エディタでも利用できます。

始める前に

  1. ワークステーション構成を作成できるように、プロジェクトに Cloud Workstations 管理者の IAM ロールがあることを確認します。

    IAM に移動

  2. まだ設定していない場合はワークステーションを設定します。必ず構成では Base Editor(Code-OSS)を選択してください。

Google Cloud に接続してプロジェクトを選択する

このセクションでは、Google Cloud に接続し、ワークステーションで Cloud AI Companion API が有効になっている Google Cloud プロジェクトを選択します。

Cloud AI Companion API を有効にせずに Google Cloud プロジェクトを選択すると、エラー通知が表示され、管理者に問い合わせるように指示されます。詳細については、プロジェクトに Gemini Code Assist を設定するをご覧ください。

ワークステーションで Google Cloud に接続するには、次の手順を実施します。

  1. Google Cloud コンソールで、ワークステーションを起動します。

    ワークステーションを起動する

  2. ステータスバーで [Cloud Code] - [ログイン] をクリックします。

    Cloud Code - ステータスバーの [Sign In] ボタン。

  3. ログインを促されたら、[ログインに進む] をクリックします。

  4. Google Cloud ログインフローを立ち上げるには、Control(Windows および Linux の場合)または Command(macOS の場合)を押して、コンソールの URL をクリックします。

  5. アカウントにログインするには、プロンプトに従います。

    Google Cloud SDK に Google アカウントへのアクセスを許可し、利用規約に同意するよう求められたら、[許可] をクリックします。

    ブラウザに新しいタブが開き、Google Cloud CLI にログインするための確認コードが表示されます。

  6. 確認コードをコピーして、「認証コードを入力してください」と表示されたターミナルに貼り付け、Enter(Windows および Linux の場合)または Return(macOS の場合)を押します。

    これで Google Cloud に接続されました。

次に、Cloud AI Companion API が有効になっている Google Cloud プロジェクトを選択する手順は次のとおりです。

  1. [Gemini コード アシスタンス] ステータスバーで [Gemini コード アシスタンス] をクリックします。

    Gemini ステータスバーを利用できます。

  2. [Gemini コード アシスタンス] メニューで、[Select Gemini Code Assist project] を選択します。

  3. Cloud AI Companion API が有効になっている Google Cloud プロジェクトを選択します。

    Gemini を使用する準備が整いました。

    ステータスバーの Gemini アイコンは標準に設定されています。

Gemini Code Assist の機能をテストするには、アプリケーションを開くか、次のセクションでサンプル アプリケーションを作成します。

省略可: サンプル アプリケーションを作成する

既存のアプリケーションを使用して Gemini Code Assist の機能をテストする場合は、このセクションをスキップしてください。スキップしない場合は、次の手順でサンプル アプリケーションを作成します。

  1. ワークステーションでコマンド パレットを開きます。Ctrl+Shift+P(Windows および Linux の場合)または Command+Shift+P(macOS の場合)を押してから、Cloud Code: 新しいアプリケーションを実行します。

  2. [Kubernetes アプリケーション] を選択します。

  3. [Python (Flask): Guestbook] アプリケーション テンプレートを選択します。

  4. サンプル アプリケーションの名前を入力し、[OK] をクリックして保存します。

    アプリケーションが作成されたことを確認する通知が表示され、アプリケーションが読み込まれた状態で新しいウィンドウが開きます。

Gemini Code Assist とチャットする

このセクションでは、[Gemini コード アシスタンス] ペインを開き、Gemini コード アシスタンスとチャットして、既存のコードの説明を取得する方法について学習します。

Gemini とチャットを開始するには、次の手順を行います。

  1. 新しいコードファイルを作成するか、既存のコードファイルを使用します。Python(Flask)サンプルを使用している場合は、front.py ファイルでこのタスクを行えます(front.py ファイルは、[Explorer] > [src] > [フロントエンド] に移動して開きます)。

  2. ワークステーションのアクティビティ バーで、chat_spark [Gemini コード アシスタンス] をクリックします。

  3. [Gemini コード アシスタンス] ペインで、プロンプト「Explain this code to me」を入力し、send [送信] をクリックします。

    Gemini は、コードファイル内のコードをプロンプトへの参照として使用し、コードの説明を返します。

    ファイル内のすべてのコードではなく、特定のコードブロックを参照するには、コードファイル内のブロックを選択して、Gemini に指示します。

チャット履歴をリセットする

Gemini コード アシスタンスは、プロンプトへの応答時に、追加のコンテキストとしてチャット履歴を使用します。

チャットの履歴と、実現しようとしていることとの関連性がなくなった場合は、チャット履歴をリセットできます([Gemini コード アシスタンス] ペインでdelete [Chat のリセット] をクリックします)。

プロンプトを使用してコードを生成する

以降のセクションでは、Gemini Code Assist を使用して、Python ファイル内のサンプル プロンプト # Function to create a Cloud Storage bucket でコードを生成する方法を説明します。また、コーディング中には、コードの一部を選択して、チャット機能で Gemini Code Assist にサポートを求め、コードの候補から取捨選択することも可能です。

コードファイルでの Gemini Code Assist をプロンプト表示する

  1. 新しいコードファイルを作成するか、既存のコードファイルを使用します。Python(Flask)サンプルを使用している場合は、これを front.py ファイルで行えます(front.py ファイルは、[Explorer] > [src] > [フロントエンド] に移動して開きます)。

  2. コードファイルの新しい行で「# Function to create a Cloud Storage bucket」と入力し、Enter(Windows および Linux の場合)または Return(macOS の場合)を押します。

  3. コードを生成するには、Control+Enter(Windows および Linux)や Ctrl+Return(macOS の場合)を押します。

    コードは、Gemini Code Assist が Python ファイルのプロンプト テキストの横に、ゴースト テキスト形式で生成します。

  4. 省略可: 生成されたコードを受け入れるには、Tab を押します。

省略可: コードを生成するためのキーボード ショートカットを変更します

前のセクションで説明したように、コードを生成するためのデフォルトのキーボード ショートカットが動作しない場合は、次の手順でキーボード ショートカットを変更できます。

  1. ワークステーションで、[メニュー] [メニュー] をクリックし、[ファイル] > [設定] > [キーボード ショートカット] に移動します。

  2. キーボード ショートカットのリストで、[Cloud Code: コードを生成] を検索します。

  3. [Cloud Code: コードを生成] をクリックし、[編集] [キーバインドを変更] をクリックします。

  4. 表示されるダイアログで、独自のショートカットを入力します。

  5. Enter(Windows および Linux の場合)または Return(macOS の場合)を押します。

    新しく割り当てたキーボード ショートカットを使用して、Gemini でコードを生成できるようになりました。

選択したコードでチャットを使用して Gemini Code Assist をプロンプト表示する

Gemini Code Assist は、選択したコードに基づいてタスクを実行することや、質問に回答することが可能です。選択したコードとプロンプトに基づいて生成されたコードをするには、次の手順を行います。

  1. ワークステーションで、コードを含むプロジェクト内のファイルを開くか、前の手順で使用した同じコードファイルを使用します。

  2. アクティビティ バーで、chat_spark [Gemini コード アシスタンス] をクリックして [Gemini コード アシスタンス] ペインを開きます。

  3. コードファイルで、コードのブロックを選択します。

  4. [Gemini コード アシスタンス] ペインのテキスト フィールドに、選択したコードに対するプロンプトを入力します。

    たとえば、コード内の関数を選択し、プロンプト「Write a unit test for this function」を入力します。

    Gemini は、選択した関数の単体テストを作成します。

    Gemini は、選択したコードをリファレンスとして使用し、プロンプトに応答します。

コーディング中にインライン候補を表示する

Gemini Code Assist は、コードの記述時に、インライン コードの候補を作成します。ユーザーはこれを取捨選択できます。この機能を試すには、次の手順を行います。

  1. 新しいコードファイルを作成するか、既存のコードファイルを使用します。Python(Flask)サンプルを使用している場合は、これを front.py ファイルで行えます(front.py ファイルは、[Explorer] > [src] > [フロントエンド] に移動して開きます)。

  2. コードファイルの新しい行で、関数の作成を開始します。たとえば、Python ファイルの場合は、「def」と記述します。

    Gemini は、ゴースト テキスト形式でコードの候補を表示します。

  3. Gemini Code Assist のコード候補を受け入れるには、Tab を押します。それ以外で、提案を無視するには、Esc を押すか、引き続きコードを記述します。

省略可: インライン候補を無効にする

Gemini Code Assist でインライン候補を無効にするには、次の手順を行います。

  1. ワークステーションで、メニュー メニューに移動し、ファイル > 設定 > 設定を選択します。

  2. [設定] ダイアログの [ユーザー] タブで、[拡張機能] > [Cloud Code] に移動します。

  3. [Cloudcode: Gemini Code Assist: Inline Suggestions: Enable Auto] リストが表示されるまでスクロールして、[Off] を選択します。

    これで、インライン候補は無効になります。インライン候補は、Control+Enter(Windows および Linux の場合)や Ctrl+Return(macOS の場合)を押すことで、引き続き手動で起動できます。

引用されたソースに一致するコードの候補を無効にする

既存のオープンソース コードなど、別のソースから詳細に直接引用する際、Gemini が引用情報を提供します。詳細については、Gemini によるソースの引用方法とタイミングをご覧ください。

引用されたソースに一致するコードが提案されないようにするには、settings.json ファイルの cloudcode.duetAI.recitation.maxCitedLength 設定を 0 に変更します。

"cloudcode.duetAI.recitation.maxCitedLength": 0

スマート アクションを使用する

コンテキストの切り替えを最小限に抑えながら生産性を向上させるため、Gemini Code Assist では、AI を活用したスマート アクションをコードエディタに直接備えています。コードエディタでコードを選択すると、コンテキストに関連するアクションのリストを表示して選択できます。

コードでスマート アクションを使用するには、次の手順を行います。

  1. コードファイルで、コードのブロックを選択します。

  2. 選択したコードブロックの横にある電球アイコン [コード アクションを表示] をクリックします。

    シェルとワークステーションでコードブロックを選択すると、スマート アクションの電球アイコンが表示されます。

  3. [Generate unit tests] などのアクションを選択します。

    Gemini は、選択したアクションに基づいてレスポンスを生成します。

プレビュー: コード変換を使用する

Gemini Code Assist はコード変換を提供します。これにより、インライン テキスト ボックスを使用して、コードファイルの一部を選択し、自然言語のプロンプトを通じて既存のコードの変更をリクエストできます。

コード変換を使用すると、次のことができます。

  • コードを文書化するためのコメント行を生成します。
  • 問題のあるコードのトラブルシューティング
  • コードの読みやすさを向上させる
  • コードを効率化する

生成されたレスポンスのコンテキスト ソースは、[Gemini: Chat] ペインで表示することもできます。

インライン テキスト ボックスで Gemini コード アシストをプロンプト表示する

インライン テキスト ボックスを使用すると、コードファイル内で Gemini Code Assist を直接操作できます。

インライン テキスト ボックスを開いて Gemini のプロンプトを表示するには、次の操作を行います。

  1. コードファイルで、Ctrl+I(Windows および Linux の場合)または Command+I(macOS の場合)を押します。

  2. Write a function to create a Cloud Storage bucket などのプロンプトを入力し、Enter(Windows および Linux の場合)または Return(macOS の場合)を押します。

    Gemini Code Assist は、プロンプトに基づいてコードを生成します。

リファクタリングされたコードの差分を表示する

インライン テキスト ボックスには差分ビューが組み込まれているので、Gemini が提案する変更と元のコードを確認できます。その後、提案された変更を承認または破棄できます。

インライン テキスト ボックスからリファクタリングされたコードの差分を表示するには、次の手順を行います。

  1. コードファイルで関数を選択し、Ctrl+I(Windows および Linux の場合)または Command+I(macOS の場合)を押してインライン テキスト ボックスを開きます。

  2. Add comments などのプロンプトを入力して、Enter(Windows および Linux の場合)または Return(macOS の場合)を押します。

    選択した関数のコード変更が Gemini で生成されると、[差分] ビューが表示されます。

    Gemini の [Chat] ペインに表示されるコンテキスト ソース。

  3. 変更を承認するか破棄するには、[承認] または [破棄] をクリックします。

生成されたレスポンスのコンテキスト ソースを表示する

コンテキスト表示機能では、プロンプトへのレスポンスの生成への参照として使用されたプロジェクト ファイル(コンテキスト ソース)が一覧表示されます。どのファイルが参照として使用されたかを知ることで、プロンプトを絞り込み、より具体的なレスポンスを得ることができます。コンテキスト ソースは、Gemini チャットを使用するたびに表示されます。

生成されたレスポンスのコンテキスト ソースを表示するには、[Gemini: Chat] ペインで、[Context Sources] スニペットが表示されるまでスクロールします。スニペットを展開すると、すべてのコンテキスト ソースが表示されます。

Gemini の [Chat] ペインに表示されるコンテキスト ソース。

Smart Commands を使用する

スマート コマンドは、コードに対して特定のアクションを実行するためにインライン テキスト ボックスで使用できるコマンドです。

/explain スマート コマンドでコードファイル全体の説明を取得する手順は次のとおりです。

  1. コードファイルで、Ctrl+I(Windows および Linux の場合)または Command+I(macOS の場合)を押してインライン テキスト ボックスを開きます。

  2. / キーを押すと、スマート コマンドとその説明のリストが表示されます。

  3. [/explain] を選択します。

    Gemini では、インライン テキスト ボックスにコードファイル全体の説明を生成します。

  4. 省略可: 生成された回答を [Gemini: Chat] ペインに表示する場合は、[Chat で表示] をクリックします。

プロンプトの履歴を表示する

プロンプト履歴にアクセスすると、大規模なコードファイルに同じプロンプトを入力する必要がある場合に時間を節約できます。

プロンプトの履歴にアクセスするには、コードファイルで Ctrl+I(Windows および Linux の場合)または command+I(macOS の場合)を押してインライン テキスト ボックスを開きます。Ctrl+↑(Windows および Linux)または Command+↑(macOS の場合)を押します。これにより、古いプロンプトを循環し、必要に応じて再利用できます。

非ネイティブの英語話者に対してコードの読みやすさを向上させる

翻訳アプリケーションに依存している、母語以外の英語を話すユーザーの場合、インライン テキスト ボックスを使用して他の言語でコメントを生成できます。

英語のコメントを別の言語に変換する、または別の言語で新しいコメントを追加するには、次の手順を行います。

  1. コードファイルで、コメントを追加するコードを選択します。

  2. Ctrl+I(Windows および Linux)または Command+I(macOS の場合)を押して、インライン テキスト ボックスを開きます。

  3. Add spanish comments などのプロンプトを入力して、Enter(Windows および Linux の場合)または Return(macOS の場合)を押します。

    Gemini は、プロンプトで指定した言語でコメントを生成し、これらの候補の差分を表示します。

  4. コードへの変更を承認または破棄するには、[承認] または [破棄] をクリックします。

他のサンプル プロンプトをテストする

このドキュメントのプロンプトを使用してコードを生成するセクションを読み終えたら、次のプロンプト例をいくつか試してください。

コードの説明を取得する

  1. コードファイルで、説明対象の関数を選択します。
  2. [Gemini コード アシスタンス] ペインで、プロンプト「Explain this code to me」を入力します。

    Gemini は、選択したコードをリファレンスとして使用し、選択した関数の説明を返します。

テスト計画を生成する

  1. コードファイルで、単体テストを追加するコードを選択します。
  2. [Gemini コード アシスタンス] ペインで、プロンプト「Write unit tests for my code」を入力します。

デバッグコードでヘルプを受ける

  1. コードファイルで、デバッグするコードを選択します。
  2. [Gemini コード アシスタンス] ペインで、プロンプト「Help me debug my code」を入力します。

コードを読みやすくする

  1. コードファイルで、読みやすくするコードを選択します。
  2. [Gemini コード アシスタンス] ペインで、プロンプト「Make my code more readable」を入力します。

    コードの特定の部分に焦点を当てるには、Gemini のプロンプトを表示する前にコードの目的の箇所を選択します。

既知の問題

以降のセクションでは、Gemini Code Assist の既知の問題について説明します。

ライセンスの引用に関する警告がセッションをまたいで維持されない

ライセンスの引用に関する警告がセッションをまたいで維持されない場合は、永続ログをご覧ください。

  1. メニュー メニュー > [表示] > [出力] の順にクリックします。

  2. [Gemini コード アシスタンス- 引用] を選択します。

Gemini コード アシスタンスの出力ウィンドウにおける接続の問題

Gemini Code Assist の出力ウィンドウに接続エラーなどの接続の問題が表示される場合は、次のことをお試しください。

  • oauth2.googleapis.comcloudaicompanion.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 を介して実行されません。その結果、Gemini Code Assist は、JetBrains Gateway の接続を必要とする Cloud Workstations IDE では実行されません。

フィードバック

体験へのフィードバックを残すには、次の手順に従います。

  1. ステータスバーで [Gemini コード アシスタンス] をクリックし、[クイックピック] メニューで [フィードバックの送信] を選択します。

  2. フォームの [Title] と [Comment] のフィールドに記入します。

  3. Skaffold または AI Companion のログを共有したい場合は、[Skaffold ログを送信する] または [AI Companion ログを送信する] のオプションを選択してください。

  4. [フィードバックを送信する] をクリックします。

次のステップ