Amazon CodeWhispererが個人利用は無料らしいのでPycharmで使おうとしたが、脇道に入ったら沼だった。

Amazon CodeWhispererをサクッと導入しようとしたら余計なことして沼。

 どもども、鵠矢です。
まるでなろう系のような長文タイトルの通り、サクッと導入してサクッと使用感みたいなこと書こうと思ってら、余計なことして沼ったので備忘録がてら。
同じ沼にハマらないように、またハマってしまったレディースアンドジェントルマンおとっつあんおっかさん方の参考にでもなれば嬉しいです。

Amazon CodeWhispererって?

 ざっくり言えば、AIが作ろうとしてるプログラミングのコードを予測して、「おたくが書きたいのってコレっすよね? ほい。」と、定期テスト受けてる最中に答えをまんま教えてくれちゃう試験監督の先生、みたいなサービスです。
 Github copilotってサービスも同様のことをしてくれますが月額10ドル。かたやAmazon CodeWhispererは個人利用なら無料(ワオ!)。だからってまんまと食いついちゃうんだから、ほんと自分はちょろい、チョロQよりチョロい。そう思います。

 実際問題として精度とか機能とかに差はあるんでしょうが、そこはこちとらただの趣味でコード打ってるDIYレベルのトーシローなわけなんで、んなこまけぇこたぁ気にしない。まずはAIによるコーディング支援の感じだけでも掴めりゃ御御御の御の字ですからね。

 ちなみに、VSCodeってIDEに関しては、以下のサイトでわかりやすく導入方法書いてくれてますので、ご参考にどうぞ。
(PyCharmその他IDEでも実際導入方法はそう変わらないと思われます。今回は僕が勝手に余計なことして躓いただけ。)

https://economylife.net/amazon-codewhisperer-vscode/?PageSpeed=noscript

いざ、導入!

 当然ですが、PyCharmを使用しているという前提で話をすすめます。pycharmってなんぞ?って方は、サクッとググって調べて導入されるとよろし。別にpycharmじゃなくてもよろし。お好きなIDEでどぞ。んで、その他に必要なのが結論から以下ということになりました。

・受信可能なメールアドレス
・クレジットカード
・スマホ(電話できるやつ)
・住所

 登録のときの認証に必要でした。なんだか役所に届け出でも出すのかいって感じですが、まあ仕方ない。なにせ無料なのだから。何かを差し出さねばならぬ。それが魂ではないだけ、悪魔よりはいくぶんかマシというものだろう。(要議論)

 まずは公式からだろ、と脳死で公式っぽいページへ飛びあれこれチェック。

AWS Toolkit for PyCharm
AWS Toolkit for PyCharm は、AWS 上に Python アプリケーションを簡単に作成し、ステップ実行によりデバッグし、デプロイするための新しいオープンソースプラグインです。
ERROR: The request could not be satisfied


 どうやらAWSToolkitとやらをPyCharmに入れなきゃならないという事前情報は確認済みだったので、どやさどやさと調べると、どうやらAWSアカウントが必要だという話になったので、素直に応じることに。



 ほい。メールアドレスですね、はいはい。AWSのホームページを開いて指示に従っていく。




 ここではEメールアドレスさえあればよいのですな。ふむふむ。
粛々と進めていく。ルートユーザーやらアカウント名やらほにゃほにゃ。細かいことはよくわからないので、えいやっと登録。メールが届くので認証してあげました。




 んで、メアドだけかと思いきや、おもくそ名前と住所も聞かれ、ひとり部屋で不必要にキョドる猜疑心の塊is俺。ここであちこち回って、「ほんとに無料?」って確認したあたり、ほんとに小市民。
 AWS自体は色々なサービスがあって、使用方法によっては課金されますが、今回のCodeWhispererだけ使う分に関しては問題なさそうでした。




 ただし、セキュリティスキャン機能に関しては月で上限回数が定められており、それを超えて使用すると所定の金額がかかる模様です。その辺はちゃんと抑えておきたい。

 なおも粛々と進めていく。この辺はまだ順調でした。本人確認でコード認証するのに電話番号が必要だったりします。クレカだけでいいじゃんかよぅ。




個人is無料。この辺はうっかりお間違えなさらぬように。(そんなうっかりさん居ないと思うけど笑)


 やった、祝われた!なんか嬉しくなっちゃう寂しい中年になんて優しいんだ!
 ってなわけで、こうしてAWSアカウントの作成が完了。
さてさて、お次の手順はと、説明ページを開く。そして、ゴリゴリのイングリッシュとの出会い。この忌まわしい出会いを、僕はきっと忘れないだろう。二、三日ぐらいは。


 ま、ようするに、アカウントの中でアドミニストレーターユーザーとグループをIAMとかいうなんかで作ってねって書いてある。で、アドミニストレーターユーザーを作るところまでは、わりと直感的に行けたわけですが――――



 その先の手順に従ったのが、なんかちょっと間違いだったような気が、今となってしています。
 アクセスキーを作ってくれよ、って指示されたわけなんですけどね。

【翻訳】AWS Toolkit for JetBrainsが使用するアカウントには、管理者IAMユーザーおよびグループと呼ぶ特別なタイプのユーザーおよびグループを作成または使用することをお勧めします。
ツールキットが使用するアカウントに通常のIAMユーザーとグループを作成することはできますが、このアプローチでは、ツールキットがそのアカウント内のすべてのAWSリソースとAWSサーバーレスアプリケーションに完全にアクセスできない場合があります。AWS Toolkit for JetBrainsでAWSアカウントのルートユーザーを使用することはサポートしますが、強く推奨しません。


 なんてことが書かれてると、おやまあ、そんならその特別なタイプのユーザーとかグループとか作ったほうがいいのかしらん?ってなるじゃないっすか。ねぇ。なりますよそりゃ。

ERROR: The request could not be satisfied
Google Authenticator - Apps on Google Play
Enable 2-step verification to protect your account from hijacking.



 ちうわけで、アレヤコレヤと試行錯誤して、ようやくIAMやらアクセスキーやらを作ったわけですが、結論から言ってこれらの苦労は水泡に帰したので、説明は割愛。なんか頑張ったんだよってことだけ伝えたかっただけ。

 なにが起きたかというと、PyCharmの方から認証を行おうとしてもこのIAMを使った方式だとアクセス拒否になってつながらなかったのです。(おそらく、正しく設定すれば機能するはずなので、単純に知識不足&ドキュメントの読み込み不足※めんどくせぇことやってられっか!)

 なにはともあれ、AWS側はこんなもんでよろしかろうと、こんどはPyCharm側の設定をすべく、なにをすりゃいいのか公式さんを確認に。

ERROR: The request could not be satisfied



 そして、それっぽいリンクを踏んでたどり着いたのは、始まりの地でした……。




 犯人は必ず現場に戻ってくるとはよく言ったもので。(そういう意味じゃない)
結局のところ、ここに書いてあることを読み進めていけばよかったんですな。ってことで、PyCharmのSettingから、PluginのMarket Placeの、AWS ToolKitへ。(似たようなのもあるみたいなので、公式からキーワードコピペがいいと思う。)
んで、公式ページにも書いてありますが、「Install」を押してくださいね。緑のボタン。
右下にOKってあるからちょっと紛らわしいので。

 もちょもちょっとなって、ちょっと待つ。インストールされると再起動を促すような表示がでる(はず。ウチは出た)ので再起動。
 で、ところがどっこいである。SettingsにはたしかにAWSが入っているのに、どこから起動していいやらさっぱりわからない。困った。困った。他所様は何かしら起動画面を開いていらっしゃるのに……。
 と、血眼になって画面上を探すこと10と数分――


あったー!あったよ!メイン画面の左下あたりにしれっとAWS Toolkitのタブがあるじゃありませんくわぁ!(歳を取るとほんと小さい文字読めなくなりますね。はぁ)


 タブをポチッとするとコンソールが追加で開くので、▶ボタンをポチっとな。
すると、初回なのでAWSに接続しなくちゃならんぜよ的なウィンドウがでまして。

 AWS Builderってのと、AWS IAM Identity Centerってのがあるので、どっちか認証方法としてえらんでねってことらしい。せっかくなのでと、苦心して作成したIAMの方を選ぶ。(これが大きな間違い)
 StartURLやらリージョンやらアクセスキーやらユーザーやらパーミッションやらうんちゃらかんちゃら、それらの艱難辛苦を乗り越えて、いざ認証!

 よし、通った! これで…………ん? んー?
である。PyCharmのウィンドウにはなぜか赤文字で「Acsess denyed」の文字が。が、が、が。
きっと何か許可とか権限とかなんかがいかんのだろうとあれこれ試すこと2時間。拒否、拒否、拒否の連続。もし俺が武田鉄矢だったらトラックの前に飛び出して認証を請い願うところ。

 いや待て流石にもうあかんぞこれは、となってようやくもう一つの選択肢に意識が及ぶ。保有効果って怖いですね、ほんと。せっかく頑張って準備したIAMなんだからどうにかコレでなんて思っちゃってましたね、はい。

 ちうわけで、AWSビルダーを使う方向に転向。



 メアド認証一つでハイ終了。あっという間に準備完了。
 ワイのこれまでの苦労はなんだったんや。

 ほい。これがそのコンソール部分。Auto-Suggestionsが走ってますね。よしよし。結果オーライ。

Amazon CodeWhispererを試してみる。

 まあ、一つのお作法として、Hello worldでも表示させまひょか、と。当方、この儀式を勝手ながらハローワークと呼ばせていただいております。
 「import」って打ったら、ソッコーで「tkinter」を出し、すぐさま「ttk」をインポートし、あまつさえほっとくとmainloop()なんぞ出してくる始末だったので、とりあえず落ち着けとばかりにコメントでHello worldと打ち込んであげる。それだけだと味気ないかと思ったので、追加で日本語を足して結果の指示が「#hello,worldをボタン押下で表示するGUI」。
 あとはもう、ウィスパー君の言われるがまま、Tabキーを押しつづける。あー、もう人類に残される仕事はきっとTabキーを押すことなのだなぁ、などという謎の干渉を胸に、ボタンを叩くたびに出来上がっていくコードを眺めるだけ。
 そしてmainloop()まで行き着いた結果と、実行結果がこれだ!!!

 圧倒的そうではない感!

 まあ、この辺はコチラの指示の仕方もありますのでね。致し方なし。
 ちなみにこの後、より細かく指示を与えてボタンを押下でテキストボックスにHello worldを出力する形に変えました。わりといい感じに値や変数名なんかも揃えてくれて、Tabキー押すことに快感すら覚えそうになる始末。なかなか働き者です。

まとめ(素人は余計なことはせずにAWSビルダー使っとけ)

 てなわけで、無事に動かすことはできました。教訓としては先達のガイドには素直に従っとけ、という事になるかと思います。最初からToolkitインスコのAWSビルダー使用なら、あっちゅう間に使い始められたはず。悔やまれますな。(ま、これも勉強)
 
 Github copilotは未導入なので比較はできないですが、無料でこんだけ手伝ってくれるというのに何の文句があるだろうかという気持ちでいっぱいです。これから使い倒していく中では色々あるとは思いますけどね。
 あと、基本的にはコレ系のサジェストAIでのコーディングって、多少なりともプログラミングの仕組みがわかってないと指示もできなかろうという感じ。あくまで書ける人の作業速度を上げる為に使うものなのかなという気がします。
 ほっとんどわかってない人が何か作るとなった場合には、やはりChatGPTなんかにお願いしたほうがゴソッと用意してくれるので良さげ。ま、使い分けですね。
 もしかしたら熟練者には熟練者なりの使い道みたいなものがあるのかもしれませんが、あっしはペーペーの三下の草履の藁についた菌類の細胞膜の脂質二重層を構成する分子の疎水基ぐらいな存在なので、その辺のこたぁわかりやせんで、へぇ。

 なにはともあれ、今日からまた日曜プログラミンがはかどると思うと嬉しい限り。

コメント

タイトルとURLをコピーしました