ChatGPTとペアプログラミングしたら爆速開発できました

ChatGPTにコーディング能力でも敗北しました

 この前、ChatGPTに文章能力で敗北したというブログ記事を書きました。

 今回は、文章に続いてコーディング能力でも完全敗北したという話です。

 きっかけは、以下の妻の「複数ページのPDFを1つずつ別ファイルで保存する作業を自動化するプログラム」のお願いです。

 いつもなら、妻に尊敬してもらうために頑張ってプログラム作るのですが、その日は仕事のトラブルで帰宅が11時過ぎ。ご飯食べてお風呂入ったら深夜1時近く。流石に疲れてコードを考えることができません。そこでダメ元で

「助けてChatGPT〜〜」

 とドラえもんに頼るのび太のごとく、ChatGPTにすがってみました。すると…

 なんとかしてくれました。ドラえもん、じゃなかった凄いよChatGPT!

ChatGPTとのペアプログラミング

 以下ChatGPTとペアプログラミングしている様子です。人間ともまともにペアプログラミングしたことないので、果たしてこれがペアプログラミングなのかは定かではないですが、自分はChatGPTと共同作業している気分になっていたのでご容赦(?)ください。

 最初はこんな感じです。

「ははは、そんなことは分かっているよ、最新のAIといってもまだまだアホだな。かわいいやつめ」

 と思っていたのもつかの間。次の指示をした結果をみて、私は凍りつきました。

「て、てきかくー…急にどうしたの君。なんか急にそれっぽいじゃん。コメントもちゃんと付けてるし。ていうかめちゃコーディング速くない?驚いちゃったよ僕。さすが最新のAIだね、ハハハ…でもちゃんと動くのかなぁ?」

 焦りを隠しながら実行するとライブラリが入ってないとエラー。

「ははは、pip install は分からないか。AIだもんね、いいよいいよ僕がやっておくね。pip install pyPDF2っと…全然気にしなくていいよ」

 もう一回実行するとまたエラー

「あ、なんかメソッド古いってエラー出てるね。あ、君2021年までのデータしか学習してないんだ。そっか、学習大変だもんね。570GBだもんね。ドラクエ3の200万倍以上だからね。あ、最新のAIだとわかんないかなドラクエ3」

「あ、知ってるんだ。的確だね」

「よし、エラーは僕が直しておくね。あ、またエラーだ。メソッド古いって。いいよいいよ、僕が直しておくよ。2021年までなら仕方ないもんね。よし、これで実行と…」

「か、完璧に動いとる…」

 いや、そんな難しいプログラムではないですが、疲れ切った自分一人では絶対このスピードでは開発できませんでした。凄いぜChatGPT。

 普通に使えそうなので、このままGitHubにアップしようかと思いましたが、果たしてMITライセンスとかでこのままアップしていいのか悩み、今回はやめました。

Google Colaboratoryで動くようにしてみる

 せっかくなので、次の日にGoogle Colaboratory(Google Colab)で、ブラウザで手軽に動かせるようにしてみることにしました。恐る恐るChatGPTに聞いたら、Google Colabで動くスクリプトも提案してくれました。凄いな君。

 ただ、このままじゃ使いにくそうなので、手軽にファイルをアップロード、ダウンロードできるインターフェースをつけることにしました。今回は自分主導でプログラミングしていきます。

 途中、pdfファイルのリストを取得するところ、考えるのがめんどうくさいのでChatGPTに聞いてみます。

 いちいち回答が的確です。凄いですねほんと。

 ChatGPTに助けられながら、Google Colab ノートブックを作成しました。今回は大半は自分が作ったのでGitHubにもアップしました。

 Google Colabで開くと以下のような画面がでてきます。

 上から実行していくだけで、PDFファイルのアップロード、ページごとのファイル書き出し、ファイルのダウンロードができます。

人間の英知

 Twitterへの投稿が結構バズって、他にも色々な手段を教えてもらいました。

  • Acrobatの抽出機能
  • pdftk
  • PDF Knife
  • iLovePDF

 色々手段はありますが、Acrobatが必要、ソフトのインストールが必要、Windowsが必要など色々な制約があり、私の場合はChatGPTの回答がほぼベストなソリューションでした。

 人によって最適な手段は違うと思いますが、そのときもChatGPTにうまく自分の制約を伝えれば(Windowsでとか)、その人にベストなソリューションを返してくれるのではないかなと思います。

まとめ

 ChatGPTを使って爆速コーディングをしてみたという話でした。ChatGPTかなり優秀ですね。ただ、今回いくつかエラーを直したりはしたので、全くプログラムの知識がない人だとさすがにChatGPTだけでコーディングは難しいかなと感じました。優秀な外注先でも、丸投げしたらうまくいかないのと似ているかもですね。特に、新しい情報が無いのは結構ネックかもです。あと、ChatGPTが生成したコードのライセンスがどうなるのか、色々気になりますね。

 ChatGPTとのペアプログラミング自体は病みつきになりそうです。プライベートではどんどん活用していきたいです。ただ、ChatGPTの仕組み、ある程度は分かっているつもりなのですが、これだけコーディングができるのほんと意味分かりません。確率的にそれっぽいことを出力しているだけで、デバッグもできないのに何故これだけプログラムが書けるのでしょうね。逆にいうと、ChatGPTの能力以下の大半のダメプログラマは、あんまり考えずに、雰囲気でコーディングしているんじゃないかという気もします。そうです、私ですね。ハハハハハ。

 仕事でも使いたいところですが、ChatGPTを使える会社は限られそうですね(特に大きな会社ほど難しそうです)。今後、個人でも会社でもAIを活用できるかどうかで、ますます生産性に差が出てくるのかもしれません。そして大半の人間がAI漬けになった未来、突然ChatGPTの料金が100倍とかになったらどうなるのか。考えるだけで恐ろしいです。

SIGNATEのコンペに参加します

 コンペに参加しています。リツイート数で順位が決まるらしいので、よろしければリツイートお願いいたします。

 アイデアはあるので、他にもChatGPTで色々試してみたいなと思います。時間が許す限り…

関連記事