AIによるコードサジェストサービスのAmazon CodeWhispererを使ってみました。コメントやこれまでに書いたコードを元に、次に何を書くのか先回りして提案してくれるのでコードを書くスピードが結構上がります。GitHub Copilotと違って個人利用は無料で使えるので、まだ使ってない方はお試しあれ。
概要
Amazon CodeWhispererはGitHub CopilotのAWS版ともいえる、AIによるコード生成システムです。VSCodeの拡張機能の「AWS Toolkit」に含まれているので、Visual Studio Codeでも使用できます。
コメントを書いたり、コードを途中まで書くとそれらの内容を元に次のコードを提案してくれます。使用回数の制限はありません。
以下の言語に対応しています:
Python, Java, JavaScript, TypeScript, C#, Rust, Go, Ruby, Scala, Kotlin, PHP, C, C++, Shell Scripting, SQL.
導入方法
VSCodeに導入する方法です。WSL上にインストールしています。
- VSCodeの拡張機能から「AWS Toolkit」検索してインストールします。
2. サイドバーの「aws」アイコンからAWSを開き、「DEVELOPER TOOLS」→「CodeWhisperer」→「Start」を選択します。
次に、どのようにCodewhispererと接続するのか聞かれるので「Use a personal email to sign up and sign in with AWS Builder ID」を選びます。
3. 認証のための一時コードが表示されるので「Copy Code and Proceed」をクリック。コードがクリップボードにコピーされます。
4. 認証用のサイトを開くか聞かれるので「Open」をクリック。
5. 開かれたページでそのコードを入力(ペースト)します。
6. AWSビルダーIDを手順に沿って作成します。
7. 今作成したAWS Builder IDは別の一部のツールでは使えないけどどうする?と聞かれるので適宜選択します。
- AWS Builder IDをバックグラウンドで使用しながら、CodeWhispererに対してはAWS Builder IDを使用し、その他のサービスに対してはprofile:defaultを使用
- すべてのツールをAWS Builder IDで認証する
使用方法
CodeWhispererの仕様準備が整っているかどうかは、「CodeWhisperer」の状態で確認できます。一時停止のマークが表示されていれば動いています。
関数名のサジェスト
コメントで何をする関数かを示して、次の行でfunctionと書き出すと関数名をサジェストしてくれます。
サジェストを受け入れる場合は「Tab」キーを、別の提案を選択するのは矢印キー「← →」で行えます。提案を拒否する場合は「ESC」です。
コードのサジェスト
先ほどの関数名の提案をTabで受け入れて、改行すると、その関数名やコメントから関数の内容をサジェストしてくれます。
例えば、getFileByNameというGoogleドライブのフォルダからファイル名でファイルを検索する関数をテストする関数を作成したところ、内容に合うコードをサジェストしてくれました。型が合った引数やテストデータまで作成してくれます。
サジェストを消してしまったけど、もう一度出したいときは「Alt(Option)」+「C」で出てきます。
感想
使い始めてまだ数日しかたっていませんが、コーディングスタイルががらっと変わる予感がします。コメントを書いているとはいえ、ズバズバ次に書くであろうコードを提案してくるのには驚きですし、楽しくなってどんどん書きたくなります。
こうなるとコードを書いているのか、コメントを書いているのか分かりません。自然言語をプログラミング言語に逐次翻訳してくれている感じです。このままだとコード補完に頼りすぎで、コードの書き方を忘れそうなくらいです。
日本語でも英語でもサジェストしてくれますが、提案されたコードの中にマルチバイト文字があると文字化けするのは気になりました。ただ、英語で指示した方が精度が良い気がします。簡単な英語で意図を汲んでくれるので英語力はさほど必要ありません。
頭の中を見透かされているかのようにぴったりの提案をしてくるのには戦慄さえ覚えますが、上手に使いこなせば素晴らしいパートナーになってくれそうです。もうこれなしでコードを書きたくなくなってしまうほど素晴らしい技術なので、皆さんもぜひ使ってみてください。
Comments