先日、Three.jsを使った実装を進めていて、行き詰まってしまったところがあったのですが、実装方法をChatGPTに尋ねながら進めたら、見事に解決したんですね。

めちゃくちゃ感動したのだ・:*+.\(( °ω° ))/.:+


ということで、今日はその中で考えた、プログラミングする上でChatGPTを上手に使うための考え方のお話です。



トライ&エラーを繰り返そう

ChatGPTに感謝
思わず感謝。

ChatGPTに対して、この実装方法はどうしたらいい?と聞いて、一発で完璧な答えが返ってくるとは限りません

もちろん、シンプルなコードや、ちょっとした機能の実装方法ならば、サクッと回答を得られることもあるでしょう。

一方で、大きな実装の中の一部分のやり方を聞くとなると、コードの文脈や、使用ライブラリなどの前提知識を持たない状態では、的外れな答えが返ってくることがあるかもしれません。


ですので、

質問する→回答の通りに実装してみる→次の障壁が現れる(別のエラーが発生するなど)→それについてまた質問する...

という流れを繰り返して、ちょっとずつコードをブラッシュアップして正解に近づいていく使い方が望ましいのでは、と思いました。


私の場合、

  • 手法Aを試しても、手法Bを試しても、Xが実現できないんだけど、どの部分を確認したらいい?

と尋ねてみて、返ってきたチェックポイントを確認してみたんですね。

そうしたら、自分では絶対に気づけないような見落としを発見できたのです。


さらに教えられた通りの実装を進めた結果、これまでに書いたことないシェーダーのコードを書くことになったのですが、

それもChatGPTに伝えられた通りのコードを書きながら、エラーが出るたびに、どう対処したらいいか細かく尋ねるのを繰り返したことで、無事に解決したのです。


まさに、めちゃくちゃ優秀なエンジニアの先輩とペアプロをしている感覚でした。

  • できないの〜〜
  • もうやだ〜わからない〜〜

と五歳児のようにぐずっても笑、粘り強く一緒に考え続けてくれますし、質問するとすぐに回答をくれるので、本当に強力な協力者、というわけです。



注意すべきこと

セキュリティ意識を持って質問しよう

いくら簡単にわからない部分を調べられるとはいえ、業務で使っているコードを、そのままぺたっと貼り付けて質問するのは絶対に避けるべきです(趣味の個人開発のコードならともかく)。

セキュリティ的に危険です。


ですので、例えば

  • 〇〇というエラーが出て、XXを修正してもエラーが消えない場合の対処法は?
  • △△の言語で□□の機能を作るためのサンプルコードを教えて

みたいな形で、抽象度を上げて、一般的な質問として投げるのが正しい使い方かな、と思います。



まとめ

AIすごい!ChatGPTが今アツい!

と各所で話題になっていますが、そのすごいAIを使いこなすためには結局、人間側の入力値、つまりどれくらい良質な質問をできるかが鍵になってくるような気がしました。


AIは与えられた問いに対してはしっかり答えてくれるのですが、
逆に言えば、与えられていない情報まで空気を読んで推察するのは厳しいのです(ある程度、それまでの会話の文脈から拾ってくることや、行間を読むことができるようになってきたとはいえ)。

だから、最初の問いの与え方が大事になってくるんですね。





とはいえ、人間側も、一発で完璧に「良質な質問」をしよう、としなくてもいいのかな、と思うのです。

質問を投げた結果、ChatGPTからもらった回答を元に、質問の前提条件を追加してみたり、聞き方を変えてみたり、対象範囲を狭めてみたり

そうして何度もやり取りして、一つの結論に辿り着くのが自然な使い方ではないかな、と思います。


その点では、人間とのコミュニケーションに近いのかもしれませんね。