てくてくテック

【やってみた】AWS CodeWhispererをVS codeで試してみた!

どーも!

たかぽんです!

今回は気になっていたAWS Code Whispererを試してみました...!

気にはなりつつも全然触れていなかったのでこの度やっとこさ...です!

VS codeで試してみたので、同じく気にはなってた!って方は是非、参考にお試しください...!(無料ですし!)

AWS Code Whisperer とは?

端的に言うとプログラミングなんかのコーディングをしている際、補完だったり簡単な命令を入れればいい感じにAIが予測して処理を提案してくれる...みたいな機能になっています。

GithubのCopilotも有名ですね...!

ただ、Copilotは有料で、CodeWhispererは個人利用であれば無料で使用できるので、気軽に試すことができます。

また、CodeWhispererについては下記のよくあるご質問をみておくとより理解が深まるかと思います。

個人的に特に気になっている、コードの情報を学習などに使われるか..."ですが、後ほど設定するオプトアウトをすることで使用しないようにもできるようです。

以下、引用です。

Amazon CodeWhisperer Individual は、サービスの提供および維持のため、および以下のとおりオプトアウトしない限り、Amazon CodeWhisperer の開発と品質改善のために、コードスニペット、コメント、IDE で開かれたファイルのコンテンツなど、サービスによって処理されたコンテンツを保存および使用する場合があります。これには、コード生成を通じてデベロッパーの生産性を向上させる最善の方法の学習、サービスの潜在的な誤用の検出、CodeWhisperer の機能の有効性の評価、コード生成を可能にする基盤となる大規模言語モデルの改善、ランキングアルゴリズムの微調整などが含まれます。IDE で設定を調整することで、AWS がサービス改善のためにお客様のコンテンツを保存および使用することをオプトアウトできます。

さらに、AWS は、サービス改善の目的で、クライアント側のテレメトリや使用状況のメトリクスを収集して使用する場合があります。IDE で設定を調整することで、このデータ収集をオプトアウトできます。

IDEは今回はVScodeですね。

そのため、デフォルトのままだと、VScodeで利用する場合、開いているファイルやサービスで処理したコンテンツなどを保存して、学習に使ったりしますよーってことですね。

ただ、オプトアウト(用語わかりづらいですが、デフォルトで情報収集するけど、いつでも拒否できる機会は保障していて、その拒否を明示的に伝えることを表している....という認識で大丈夫かと思います。)すればOKです。

一応、該当のオプトアウトするところまで試してみたので気になる方は合わせて試してみてください。

さて、概要は掴めたのかな?と思うので、実際に使っている例を簡単に...

まずは簡単な関数をコメントで実装した例です。

https://tektektech.com/wp-content/uploads/2023/06/mov1.mov

簡単な関数であればサクッと作れそうです...!

また、ほかに...

https://tektektech.com/wp-content/uploads/2023/06/mov3.mov

こんな感じで、多少複雑になるといくつか例示されるなかからそれっぽいものを選ぶ感じです。

importが必要になる場合はよしなに追加してくれます。

(関数の中でimportはあまりみない気もするので後で出す感じになりそうですが)

では、そんなWhisperer、試してみましょう!

また、今回は公式の動画を参考にしつつ進めました...!

その動画はこちら。

基本的には上記に沿って進めていきますが、IDEがおそらくJetbrainのInteliJだったので、そこだけVS Codeに置き換わる形です。

VS Codeで使ってみる!

さて、それではやっていきます!

まずはVSCodeにてAWS tool kitsをインストールします(していない人のみ)!

筆者はもう追加してしまっているのですが、一番上のやつですね...!

追加したら、画面左のアクティビティバーから、AWSのアイコンを選び、CodeWhispererのstartを選択します。

(アクティビティバーがない場合は”View > appearance > Activity bar”から表示できるかと思います。)

Startを選択すると、画面上部にてどうやってアカウントを管理するか?みたいな選択肢が出てきます。

筆者はAWS configを設定しているのでそれでやりたかったのですが...どうもnot supportedのようなので、今回は公式で解説されていたAWS BUilder IDを作成しました。

選択すると、認証用のIDコピーするよ〜?っていうのと、Webページをひらくよ〜?みたいな確認が2回でるのどちらもOKに。

すると、下記のような画面が出るのでそのままペーストします(直前の選択肢でコピーしていれば特に何もせずに貼り付けできるはずです。)

もしコードが保存されていなかった場合などは、VSCodeの右下に下記のようなpopupが出ていればそちらから確認ができます。

もし上記すらキャンセルしたよ!って人は再度startから試して、再発行してみてください。

認証コードを入れたら、Builders ID用にメールアドレスの登録・認証、パスワードの設定が必要になります。(画像は撮り忘れたのでなしです...!)

パスワードの設定が終わったら、VS Codeへのアクセス許可を求められるので、一旦全てAllow で。

(後ほどオプトアウトの設定をします)

Allow押して次へ行くと...?

これで連携が完了です。

めっちゃ楽ちんですね!

上記画面が表示されたらブラウザでの作業は終わりで、VScodeに戻り、再度startを押します。

すると、Code Whispererを有効にできるので、有効にしたら適当にコーディングしてみてください..!

ちなみに、下記のようになっていれば稼働中です。

あとは適当にお試しください!

オプトアウトする

次にオプトアウトします。

一応、筆者が見た感じだとこれさえすればデータとられなさそうな気はするのですが...

サッと見ただけなので、秘匿情報を扱う場合は念の為再度詳細の確認をお願いいたします。。

筆者が参考にしたページも記載しておきます。

では、VS code のSettingを開きます。

画面左下の歯車マークです。

settingの検索欄にて"aws:telemetry"で検索して、オフにします。(画像がオフの状態です)

これでOKです!

ちなみに、資料の方でも説明されていますが、IDE毎に設定がされているため、もしエンタープライズプランだったとしても個人のIDE単位で設定が必要で、管理者が全員分設定するのは不可能とのことです。

This is a decision for each developer to make inside their own IDE. If you are using CodeWhisperer as part of an enterprise, your administrator will not be able to change this setting for you.

所感

簡単に使ってみた所感も...!

コメント書いてから候補がでてくるまでやはり多少のラグはあります。

おそらく複雑になればなるほど大きくなると思われる...

ただ、出たてきたらカーソルの左右で候補を眺めて、これだ!ってものがあったらTabで確定...といった具合で、複雑な操作は不要そうです。

(もっと深掘りしたりカスタマイズとかしたら複雑になるかもですが...)

ただ、気になるのが大きめのコンテキストを含んだファイルとかで試してみる...っていうのは試していないです。

(例えば会社特有のビジネスロジックが詰まっていたり...とか)

筆者の会社では現時点では導入はしていないため試せないのですが...

そのうちOSSとかで試すのはワンチャン...

PHPだけでなくフレームワーク特有の機能の補完もいい感じになるのか?とかも気になるところですね...!

ただ、本当に最低限確認した感じだと、無料でこれだけできればすごいと思うし、ちょっとしたアレやりたいんだけど...って時にわざわざ検索しなくてよくなりそうな気はしています。

例えば...

jsで配列のforEachってどんな感じだっけ?(PHPとか触っているとごっちゃなりがち)

とかも、配列の要素をforEachで出力する...とか入れておけば基本系をパッと出せそうな気がします。

あとは渡す引数とか内部の処理を変えてあげるだけ...みたいな。

あとはこれもできるかわかんないですが正規表現とかもプロンプトを工夫すればいい感じにかけたりしそうですよね。

まだまだ複雑なビジネスロジックで使うのは難しいかもしれないですが、一般的な言語の仕様であれどうなってたっけ?とかそういう系はちょっとコメント書けばすぐ出てくる...、インライン検索てきな雰囲気で使ってみようかなともいます。(しばらくは個人開発だけだとおもいますが....)

また使っていてここいいな!とか見えてきたら改めてお伝えできればと思います!

それでわ!

モバイルバージョンを終了