😺

ChatGPT にコードをレビューして貰う

2022/12/25に公開

はじめに

2022年、個人的には「AI 元年」と言って良い程、これまでは精通者しか扱えなかった AI による画像生成や対話などが、われわれ一般ユーザレイヤからも簡単に利用できるまでに AI が浸透してきた年だったと思っています。

特に ChatGPT の登場は革新的で、質問に対する回答の信用度はそれほど高くはないが、そこいらにいるいい加減な回答しか出来ない人達から比べれば、絶対的に有効な回答を自然な日本語で得られる様になりました。

もっと身近に

ChatGPT の良さは品質の高さは勿論あるのですが、前提としてリーチするまでの身近さもあると思っています。GitHub からソースコードを clone して、どこかに置いてある英語しかサポートしていない言語モデルをダウンロード、または時間と電気代をふんだんに使って学習させたモデルを使い、さらにはコマンドラインからモデルへのパスを指定して起動、といった手間が省かれているのです。

しかしながらブラウザのみから使えるという、この Vim 使いにとっての障壁を越えなければ、我々 Vimmer にとっての AI 元年はまだ明けない、そう思ってもいます。

Vim から ChatGPT

実は Vim から ChatGPT できるプラグインは既に幾つかあります。

https://github.com/terror/chatgpt.nvim

このプラグインは ChatGPT を扱える Python ライブラリを Vim から呼び出す方法を取っていますが、出力形式が :echo コマンドによるメッセージ表示となっており結果の再利用が難しくなっています。せっかく AI が有用な回答をしてくれるのにその回答を Vim から使えないのは勿体ないですね。

そこで今回、Go 言語で ChatGPT を扱える CLI を作成し、それを Vim から操作できる様にしました。まずは CLI。

https://github.com/mattn/chatgpt

これは ChatGPT を扱えるパッケージ PullRequestInc/go-gpt3 を使って対話を行うコマンドラインプログラムです。

https://twitter.com/mattn_jp/status/1605448792182231040

ChatGPT の対話はマルコフ連鎖的に行われます。完全な返答を得られるまで待つとそこそこ時間が掛かります。得られた回答をリアルタイムに表示すべきです。この状況を Vim から再現できる様にしました。

コーディングに疲れたら ChatGPT とおしゃべりするのも良いでしょう。

もちろん変なソースコードをレビューさせるとちゃんと指摘してくれます。

おわりに

ChatGPT と対話できる CLI を作成し、それと Vim を繋いでみました。思いのほか便利そうだったので今後使ってみようかなという気になっています。(提供されたソースコードは自分のプロダクトで使うつもりはありませんが)

プラグインはこちらに置いておきます。適当に遊んで下さい。環境変数 CHATGPT_API_KEY が必要です。

https://github.com/mattn/vim-chatgpt

Discussion