Duet AI in Google Cloud を試してみた
1. TL;DR
過日、米サンフランシスコで開催された「Google Cloud Next '23」で発表された開発時のコード補完やプロンプトによるコード生成などのコーディング支援をしてくれる「Duet AI in Google Cloud 」を早速試してみた。
公式サイトによると「Duet AI in Google Cloud 」は Cloud Code IDE 拡張機能を介してさまざまな IDE で利用することができるらしいが、ふだん使ってる VSCode で試してみることにします。
余談になりますが、この記事の見出し画像も AI(Microsoft Bing Image Creator) に生成してもらいました 🤣
2. 環境準備
VSCode で利用するにはまず拡張機能をインストールします。(すでに入っていたけど…)
ここからが一番重要なのですが、「Duet AI in Google Cloud 」はプレビュー版のため Trusted Tester プログラムに登録する必要があるので以下のフォームから申し込みをします。
数日すると Google から次のようなメールが届きます。「Get Started」から「Duet AI in Google Cloud 」を利用するための GCP プロジェクト番号を登録します。
翌日ぐらいに Google から「お前のプロジェクトで AI 使えるようにしたよ♫」ってメールが来るのでこれで事前準備 OK となります。
次に VSCode の設定画面から「Duet AI」でサーチして関連する項目を有効にしたり GCP プロジェクト名や開発言語(Python, Go, Java, etc…)などを入力します。
3. 試したこと 〜その1〜
まずは AI にテストコードを書いてもらうことにします。
VSCode で適当なコードを選択し、右クリックメニューから「Generate unit tests」を選びます。
左ペインの「AI Chat」が表示され、テストコードが生成されることが確認できました。
私見
Go 関数はテストコードが生成されましたが Go メソッドのテストコード生成を依頼すると、「Sorry, I can't help you with this.」でお手上げ。まだまだ改良の余地があるなと感じました。以前に試した Chat GPT ではメソッドでもテストコードが生成されたので…
4. 試したこと 〜その2〜
次にコードの自動生成を AI に頼んでみました。
今回は Cloud Storage からファイルを読み込んでその中身を返すコードを生成してもらうことにします。
コメント行で生成してほしいコードの説明(これが一番難しい!)を書いて、右クリックメニューから「Generate Code」を選びます。
そうすると、一部のコードが生成されてポップアップで承諾するかどうか聞いてきます。
生成してほしいコードの説明が悪いと「No suggestions generated. Please try providing more context.」と言われ、依頼を断ってきます 😭
今回いろいろ試した結果、最終的な説明文はこちら…
// Cloud Storage からバケット名とファイル名を指定して、ファイルの中身を返す関数
生成されたコードに不満がなければ「承諾する」を選択すると、続きのコードが生成されるようです。
という作業を繰り返して、出来上がったコードが以下になります。
// Cloud Storage からバケット名とファイル名を指定して、ファイルの中身を返す関数
func GetFile(bucketName, fileName string) ([]byte, error) {
ctx := context.Background()
client, err := storage.NewClient(ctx)
if err != nil {
return nil, err
}
defer client.Close()
rc, err := client.Bucket(bucketName).Object(fileName).NewReader(ctx)
if err != nil {
return nil, err
}
defer rc.Close()
data, err := ioutil.ReadAll(rc)
if err != nil {
return nil, err
}
return data, nil
}
私見
Go ランタイムがいつのバージョンで生成しているのか、サービスアカウントの Credential File の指定はどうするのか、などツッコミどころはあるのですが、それは依頼(説明)の仕方が悪いからでしょうww
VSCode 上でコード生成しなくとも Bard や ChatGPT など Chat ベース(プロンプト)でやったほうが楽な感じがしますが、それも将来的には改善されていくと思います。
あとがき
試したことが少ないので、まだ総評を述べることはできませんが GitHub Copilot の競合として Duet AI in Google Cloud には進化していってほしいと思います。
そう遠くない将来、エンジニアは AI とペアプロ、コードレビューってのが当たり前の世界になってくるでしょう。
#AI #Google #GenerativeAI #GenAI #VSCode
この記事が気に入ったらサポートをしてみませんか?