コードの問題を解決するためのガイダンスを提供する。
プロジェクトのコードを生成する。
コーディング時にインラインの候補を受け取る。
Gemini for Google Cloud がデータを使用する方法とタイミングについての説明をご確認ください。
コードに関するライセンス要件を遵守するために、Gemini Code Assist では、提案が特定のソースから詳細に直接引用を行っている場合、ソースの引用が提供されます。Gemini がソースを引用する方法とタイミングについて詳しくは、Gemini によるコードの生成とソースの引用方法をご覧ください。コード カスタマイズを使用すると、組織のプライベート コードベースに基づいて、Gemini Code Assist から直接コード候補を取得できます。コードのカスタマイズを構成する方法を学習する。
このドキュメントは、全スキルレベルのデベロッパーを対象としています。VS Code の実践的な知識があり、Google Cloud を使い慣れていることを前提としています。必要に応じて Gemini Code Assist を、Cloud Workstations、Cloud Code for IntelliJ、Cloud Shell Editor で試用することもできます。
始める前に
コードファイルで Gemini Code Assist の機能をテストする前に、ファイルのコーディング言語がサポートされていることを確認してください。サポートされているコーディング言語の詳細については、サポートされているコーディング言語をご覧ください。
Gemini Code Assist + Cloud Code 拡張機能がまだインストールされていない場合は、インストールします。Cloud Code は、IDE の Gemini Code Assist と統合されています。
プロキシの背後で IDE を使用する場合は、Visual Studio Code のネットワーク接続をご覧ください。
Google Cloud に接続してプロジェクトを選択する
このセクションでは、Google Cloud に接続し、IDE で Gemini for Google Cloud API が有効になっている Google Cloud プロジェクトを選択します。
Gemini for Google Cloud API を有効にせずに Google Cloud プロジェクトを選択すると、IDE から API を有効にするオプションを示す通知が届きます。通知ウィンドウで [API を有効にする] を選択して、プロジェクトに対してこの API を有効にします。詳細については、プロジェクトに Gemini Code Assist を設定するをご覧ください。
IDE で直接 Code with Gemini Code Assist のチュートリアルに沿う場合は、[Launch VS Code] をクリックし、そのチュートリアルの手順に沿って Google Cloud に接続し、Gemini Code Assist を有効にしてください。
それ以外の場合は、次の手順を行います。
IDE を起動します。
ステータスバーで [Cloud Code] - [ログイン] をクリックします。
Cloud Code で外部のウェブサイトを開くように求められたら、[開く] をクリックします。
画面の指示に沿って Google アカウントにログインします。
Cloud Code を Google からダウンロードしたことを確認するメッセージが表示されたら、[ログイン] をクリックします。
これで Google Cloud に接続されました。
次に、Gemini for Google Cloud API が有効になっている Google Cloud プロジェクトを選択するには、次の手順に沿って操作します。
[Gemini Code Assist] ステータスバーで [Gemini Code Assist] をクリックします。
[Gemini Code Assist] メニューで、[Gemini Code プロジェクトを選択] を選択します。
Gemini for Google Cloud API が有効になっている Google Cloud プロジェクトを選択します。
Gemini を使用する準備ができました。
Gemini Code Assist とチャットする
このセクションでは、[Gemini Code Assist] ペインを開き、Gemini Code Assist とチャットして、既存のコードの説明を取得する方法について学習します。
Gemini とチャットを開始するには、次の手順を行います。
コードファイルを開きます。
IDE のアクティビティ バーで、spark [Gemini コード アシスタンス] をクリックします。
[Gemini Code Assist] ペインで、プロンプト「
Explain this code to me
」を入力し、send [送信] をクリックします。Gemini は、コードファイル内のコードをプロンプトへの参照として使用し、コードの説明を返します。
ファイル内のすべてのコードではなく、特定のコードブロックを参照するには、コードファイル内のブロックを選択して、Gemini に指示します。
チャット履歴をリセットする
Gemini Code Assist は、プロンプトへの応答時に、追加のコンテキストとしてチャット履歴を使用します。
チャットの履歴と、実現しようとしていることとの関連性がなくなった場合は、チャット履歴をリセットできます([Gemini コード アシスタンス] ペインで、delete [Chat のリセット] をクリックします)。
プロンプトを使用してコードを生成する
以降のセクションでは、Gemini Code Assist を使用して、クイック選択バーを使用して function to create a Cloud Storage
bucket
などのコード変換を行う方法について説明します。
コード変換を使用すると、クイック選択バーでコマンドまたは自然言語プロンプトを使用してコードの変更をリクエストできます。また、コードの保留中の変更を示す差分ビューも提供されます。
また、コーディング中には、コードの一部を選択して、[Gemini Code Assist] ペインで Gemini Code Assist にサポートを求め、コードの候補から取捨選択することも可能です。
コード変換で Gemini Code Assist をプロンプトする
コードファイルの新しい行で、Ctrl+I(Windows および Linux の場合)または Command+I(macOS の場合)を押して、Gemini Code Assist クイック選択バーを開きます。
メニューで
/generate
コマンドを使用して「/generate function to create a Cloud Storage bucket
」と入力し、Enter(Windows と Linux の場合)または Return(macOS の場合)を押します。Gemini Code Assist は、差分ビューでプロンプトに基づいてコードを生成します。
省略可: これらの変更を承認するには、[承認] をクリックします。
省略可: コードファイルでコメントを使用して 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 を押します。
省略可: コードを生成するためのキーボード ショートカットを変更します
前のセクションで説明したように、コードを生成するためのデフォルトのキーボード ショートカットが動作しない場合は、次の手順でキーボード ショートカットを変更できます。
IDE で、[ファイル](Windows および Linux の場合)または [コード](macOS の場合)をクリックして [設定] > [キーボード ショートカット] に移動します。
キーボード ショートカットのリストで、[Cloud Code: コードを生成] が表示されるまでスクロールします。
[Cloud Code: コードを生成] をクリックし、edit [キーバインドを変更] をクリックします。
表示されるダイアログで、独自のショートカットを入力します。
Enter(Windows および Linux の場合)または Return(macOS の場合)を押します。
新しく割り当てたキーボード ショートカットを使用して、Gemini Code Assist でコードを生成できるようになりました。
IDE におけるショートカット変更の詳細については、Visual Studio Code のキーバインドをご覧ください。
選択したコードを使用してチャットで Gemini Code Assist に指示する
Gemini Code Assist は、選択したコードに基づいてタスクを実行したり、質問に回答したりすることが可能です。選択したコードとプロンプトに基づいて生成されたコードを取得するには、次の手順を行います。
アクティビティ バーで spark [Gemini コード アシスタンス] をクリックして、[Gemini コード アシスタンス] ペインを開きます。
コードファイルで、コードのブロックを選択します。
[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 でインライン候補を無効にするには、次の手順に従います。
IDE で、[コード](macOS の場合)または [ファイル](Windows と Linux の場合)を選択して、[設定] > [設定] に移動します。
[設定] ダイアログの [ユーザー] タブで、[拡張機能] > [Cloud Code] に移動します。
[Cloudcode: Gemini Code Assist: Inline Suggestions: Enable Auto] リストが表示されるまでスクロールして、[Off] を選択します。
これで、インライン候補は無効になります。インライン候補は、Control+Enter(Windows および Linux の場合)や Ctrl+Return(macOS の場合)を押すことで、引き続き手動で起動できます。
コード変換のクイック修正を使用する
コードにエラーがある場合は、Gemini Code Assist でコード変換を使用してエラーにクイック修正を適用できます。
コードファイルにクイック修正を適用する手順は次のとおりです。
コードファイルで、波線付きのエラー行の上にポインタを置いて [クイック修正]、[/fix] の順に選択します。
クイック修正が適用されると、差分ビューが表示されます。これらの変更を承認するには、[承認] をクリックします。
ローカル コードベースを認識したワークスペース内の特定のファイルをプロンプトする
ローカル コードベースの認識は、Gemini Code Assist がコンテキストとして使用するファイルを指定すると、コードベースの広範なコンテキスト内で構文的に正しく、意味的に意味のある高品質なコードの候補を提案するのに役立ちます。
チャット プロンプトでファイルを指定するには、「@」と入力して、指定するファイルを選択します。
コードベース内の 2 つのファイルの違いを説明するには、次の操作を行います。
アクティビティ バーで、spark [Gemini コード アシスタンス] をクリックします。
[Gemini Code Assist] ペインでプロンプト「
Explain the difference between @YOUR_FILE_NAME_1 and @YOUR_FILE_NAME_2
」を入力し、Enter(Windows と Linux の場合)または Return(macOS の場合)または Tab を押します。リスト内のファイル名をクリックして、ファイルを選択することもできます。ファイル名をクリックすると、ファイルがプロンプト コンテキストに追加され、IDE で開きます。Gemini Code Assist は、コンテキストとして指定した 2 つのファイルを使用しながら、プロンプトに応答します。Gemini Code Assist には、[コンテキスト ソース] で指定したファイルも含まれます。
これらのファイルを指定すると、ファイルを再度指定しなくても、同じチャット履歴で追加の質問やプロンプトを続行できます。
たとえば、[Gemini Code Assist] ペインでプロンプト How can I
improve YOUR_FILE_NAME_1?
(@ 記号なし)を入力し、Enter(Windows と Linux の場合)または Return(macOS の場合)を押します。
Gemini Code Assist は、プロンプトで指定したファイルに関するお問い合わせに回答します。
省略可: .aiexclude ファイルを使用してファイルをコンテキストから除外する
.aiexclude
ファイルを作成すると、Gemini Code Assist がコンテキストとして検討するファイルを除外できます。.aiexclude
ファイルは .gitignore
ファイルと同様ですが、次の点が異なります。
- 空の
.aiexclude
ファイルまたは存在しない.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
ファイルの cloudcode.duetAI.recitation.maxCitedLength
設定を 0
に変更します。
"cloudcode.duetAI.recitation.maxCitedLength": 0
スマート アクションを使用する
コンテキストの切り替えを最小限に抑えながら生産性を向上させるため、Gemini Code Assist では、AI を活用したスマート アクションをコードエディタに直接備えています。コードエディタでコードを選択すると、コンテキストに関連するアクションのリストを表示して選択できます。
コードでスマート アクションを使用するには、次の手順を行います。
コードファイルで、コードのブロックを選択します。
選択したコードブロックの横にある lightbulb [コード アクションを表示] をクリックします。
[Generate unit tests] などのアクションを選択します。
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 の既知の問題について説明します。
大きなオープン ファイルの更新バージョンが含まれている場合、チャットの回答が切り捨てられることがある
この問題を回避するには、コードの小さな部分を選択して、チャット プロンプトに追加のディレクティブ(only output the selected
code.
など)を含めます。
Vim: 挿入モード以外で、コード生成候補を承認または拒否することができない
通常モードで Vim プラグインを使用する場合は、コードの候補を承認または拒否することはできません。
この問題を回避するには、i キーを押して挿入モードに移行し、Tab キーを押して候補を承認します。
Vim: Esc キーを押して候補を拒否するときの動作が一貫しない
Esc キーを押すと、IDE と Gemini の両方の候補が拒否されます。この動作は、Esc キーを押すと Gemini が再トリガーされる Vim 以外の動作とは異なります。
ログイン試行が常にタイムアウトになる
ログイン試行が常にタイムアウトになる場合は、settings.json
ファイルに cloudcode.beta.forceOobLogin
設定を追加してください。
"cloudcode.beta.forceOobLogin": true
ライセンスの引用に関する警告がセッションをまたいで維持されない
ライセンスの引用に関する警告がセッションをまたいで維持されない場合は、永続ログをご覧ください。
[表示] > [出力] をクリックします。
[Gemini コード アシスタンス- 引用] を選択します。
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 プロジェクトを選択した後も、[Gemini Code Assist を有効にする] が表示される
このガイドの手順に沿ってプロジェクトを選択し、Gemini for Google Cloud API を有効にした場合は、LS サーバーに問題が生じる可能性があります。
問題の詳細を確認するには、次の操作を行います。
ステータスバーで spark [Gemini Code Assist] をクリックし、[フィードバックを送信] を選択します。
いずれかのログファイルの [表示] をクリックすると、詳細が表示され、問題のトラブルシューティングを実行できます。
フィードバック
体験へのフィードバックを残すには、次の手順に従います。
ステータスバーで [Gemini Code Assist] をクリックし、クイック選択メニューで [フィードバックを送信] を選択します。
フォームの [Title] と [Comment] のフィールドに記入します。
Skaffold または AI Companion のログを共有したい場合は、[Skaffold ログを送信する] または [AI Companion ログを送信する] のオプションを選択していることを確認します。
[フィードバックを送信する] をクリックします。
次のステップ
- より良いプロンプトを作成する方法を確認する。