ChatGPTにWebアプリを開発してもらってみた
お久しぶりです。Buildチームの佐々木です。
ここ数日急に暖かくなって、朝だいぶ気持ち良く起きられるようになりました。2月も3月を見習って、このくらい暖かくしてほしいところです。
さて、最近なにかとAIチャットボットが話題ですよね。
特に、ChatGPTについては「ChatGPTはプログラムも書いてくれる!すごい!」という話をよく見聞きするようになっています。
ソフトウェアエンジニアの私としては、ChatGPTが代わりにやってくれる部分があるなら是非お願いして、生産性を上げたいものです。
そこで、今回はなるべく自分でコードを書かず、ChatGPTに色々注文を出して業務システムっぽいものを作れるか試してみました。
ChatGPTにお願いしてみた
作ってもらうもの
今回は、スーパーの在庫管理システムを作ってもらうことにしました。
POSシステムと連携して商品の売れ行きと在庫を可視化することで、店長が今日何を発注するかについての意思決定の補助に使えるようにするのが目的です。
そこで、以下のように ChatGPT にお願いしてみました。
聞き方の細かい違いによって、ChatGPTは真面目に実装しようとしてくれる時と、そうでもない時(NG集参照)がありました。
真面目に実装してくれた時は、以下のようにそれっぽいコードのスケルトンが出力されます。
ただ、会話内容を覚えておける長さに限界があるのか、ある程度以上出力すると、指定した技術スタックとは異なるフレームワークなどを使ったコードを紹介し始めてしまうようです。(下の会話の最後の部分以降は、何回やってもズレた答えしかもらえませんでした。)
出力内容への評価
これ以上何を聞いても的外れな返答をされるので、ChatGPTの書いてくれたコードをそのままデプロイしたり、継続して改修してもらったりするのは難しそうです。
ただ、少し手直しをしたり、実装が省略されている部分を書き足してやれば動きそうな雰囲気ではあります。
わかったこと
ChatGPTにできること・できないこと
今回は、ChatGPT を用いることで、「雰囲気は正しくて動きそうだけど、ちょっと足りないコード」を生成することができることがわかりました。
このような能力は、実は ChatGPT に限らず Github Copilot などのAIプログラミングアシストツールにも共通して備わっている能力です。
既にAIは今回のような、「雰囲気では正しくて動きそうだけど、実際には少し足りないコード」を生成することができるようになっているのです。
AI時代のエンジニアのあるべき姿
AIの出力してくれた「それっぽいコード」を「完璧に動作するプロダクションコード」にするために、ユーザの要求との乖離を見つけて埋めることが今日の、あるいは今後の我々エンジニアの仕事になっていくことでしょう。
そうなった時に価値のあるエンジニアとは、「ユーザの要求に合わせて、行間を埋める」という、AIがまだできないことに対処する能力を持ったエンジニアであると私は考えます。
これまで以上に、コードを書く能力だけでなく、高度なコミュニケーション能力と表現力がエンジニアには求められることでしょう。
ユーザに寄り添ってその考え方と実現したいこと適切に理解し、人間にもコンピュータにもわかりやすい形で表現できるようになる必要があるのです。
まとめ・今後の展望
AIがこの先、現状は人間にしかできない課題をどのように解決し、人間を仕事から解放してゆくのかについては、個人的にも非常に気になるところです。
今後もAIの進化に合わせて利用方法を検討していくとともに、機会があればAI自体を進化させる側に立って研究をしてみたいところです。
番外編① ChatGPTの生成したコードのライセンスについて
ChatGPTの生成したコードや会話の内容をNoteに載せて良いか気になったので、ChatGPTに聞いてみました。
いつも通り自信満々に答えてくれましたが、日本の著作権法でChatGPTの書いた内容がどのように保護されているか、私は何をして良いのかという肝心の部分については何も教えてくれませんでした。
内閣官房 知的財産戦略推進事務局の資料 によると、AIが生成する創作物については、
という見解が示されています。
また、AIを含むコンピュータで作成される創作物については、
とされています。
従って、ChatGPTを使って生成したコードや会話の著作権については、
ChatGPTを使用した人は、その人による創作物として著作権がある
ChatGPT自身は、著作権を主張できない
ということになると考えられます。
ただし、OpenAIの利用規約 では、AIの創作物を「人間が創作した」として公開することは禁止されています。したがって、著作権の問題とは別に利用規約の禁止事項には対処する必要がある場合があるかもしれません。
番外編② NG集
Zipでください
毎回「続きを教えてください」と何度も言うのは埒が明かないので、ChatGPT にソースコードをZipでもらえないか聞いてみました。
そのようなサービスはやっていないみたいです。
「続きを書いてください」と何度も言い続けましょう。
完成した実装のコードをください
隙あらば実装過程の解説やフレームワークの使い方紹介ばかりしてくるので、完成品のコードだけくださいと言ってみました。
断られました。
一部が省略された実装例の紹介や途中の具体的な実装手順の紹介は喜んでしてくれますが、成果物だけを納品するのは嫌なようです。
そんな冷たいことは言わずに、できるところまで頑張って欲しいものです。
おわり。