Duet AI 支援によるコード

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

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

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

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

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

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

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

準備

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  5. Google Cloud プロジェクトで課金が有効になっていることを確認します

  6. Duet AI が Google Cloud ユーザー アカウントとプロジェクト用に設定されていることを確認します。
  7. Cloud Code 拡張機能をインストールします(まだインストールしていない場合)。Cloud Code は、IDE の Duet AI と統合されています。
  8. 省略可: このドキュメントのタスク用にサンプルのクローンを作成する場合は、Git をインストールします。サンプルをマシンにコピーするには Git が必要です。

Google Cloud に接続する

すでに IDE で Google Cloud に接続している場合は、このセクションをスキップしてください。接続していない場合は、次の手順を行います。

  1. IDE を起動します。

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

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

  3. Cloud Code で外部のウェブサイトを開くように求められたら、[開く] をクリックします。

  4. 画面の指示に沿って Google アカウントにログインします。

  5. Cloud Code を Google からダウンロードしたことを確認するメッセージが表示されたら、[ログイン] をクリックします。

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

Cloud Code で Duet AI を有効にする

このセクションでは、Cloud Code で Duet AI を有効にします。この手順に進む前に、プロジェクトの Duet AI を設定するの手順に沿って操作してください(まだ設定していない場合)。

IDE 用に Cloud Code の Duet AI を有効にするには、次の手順を行います。

  1. IDE で、[コード](MacOS の場合)または [ファイル](Windows と Linux の場合)を選択して、[設定] > [設定] に移動します。

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

  3. [Duet AI: Enable] が見つかるまで下にスクロールし、[Enable Duet AI for Developers] チェックボックスをオンにします。

  4. IDE を再読み込みします。

    これにより、Cloud Code で Duet AI が有効になり、IDE に [Duet AI] ステータスバーが表示されます。

    [Duet AI] ステータスバーを利用できます。

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

    1. [Duet AI] ステータスバーで [Duet AI] をクリックします。

    2. [Duet AI Quick Pick] メニューで、Cloud AI Companion API が有効になっている Google Cloud プロジェクトを選択します。

    Duet AI を使用できるようになりました。

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

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

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

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

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

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

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

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

  4. 新しいアプリケーションを任意の場所に保存します。

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

Duet AI とチャットする

このセクションでは、[Duet AI] ペインを開き、Duet AI とチャットして、既存のコードの説明を取得する方法を学びます。

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

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

  2. IDE のアクティビティ バーで、chat_spark [Duet AI] をクリックします。

  3. [Duet AI] ペインで、プロンプト「Explain this code to me」を入力し、send [送信] をクリックします。

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

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

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

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

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

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

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

コードファイルで Duet AI をプロンプト表示する

  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 の場合)を押します。

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

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

選択したコードを使用してチャットで Due AI に指示する

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

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

  2. アクティビティ バーで、chat_spark [Duet AI] をクリックして [Duet AI] ペインを開きます。

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

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

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

    Duet AI によって、選択した関数の単体テストが作成されます。

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

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

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

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

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

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

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

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

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

  1. IDE で、[コード](MacOS の場合)または [ファイル](Windows と Linux の場合)を選択して、[設定] > [設定] に移動します。

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

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

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

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

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

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

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

  2. 選択したコードブロックの横にあるlightbulb [その他の操作] をクリックします。

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

    Duet AI は、選択したアクションに基づいて回答を生成します。

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

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

コードの説明を取得する

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

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

テスト計画を生成する

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

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

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

コードを読みやすくする

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

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

既知の問題

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

大きなオープン ファイルの更新バージョンが含まれている場合、チャットの回答が切り捨てられることがある

この問題を回避するには、コードの小さな部分を選択して、チャット プロンプトに追加のディレクティブ(only output the selected code. など)を含めます。

Vim: 挿入モード以外で、コード生成候補を承認または拒否することができない

通常モードで Vim プラグインを使用する場合は、コードの候補を承認または拒否することはできません。

この問題を回避するには、i キーを押して挿入モードに移行し、Tab キーを押して候補を承認します。

Vim: Esc キーを押して候補を拒否するときの動作が一貫しない

Esc キーを押すと、IntelliJ と Duet AI の両方の候補が拒否されます。この動作は、Esc キーを押すと Duet AI が再トリガーされる Vim 以外の動作とは異なります。

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

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

  1. [表示] > [出力] をクリックします。

  2. [Duet AI - Citations] を選択します。

Duet AI の出力ウィンドウにおける接続の問題

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

  • 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

フィードバック

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

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

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

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

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

次のステップ