「ChatGPT」を使用してコードを記述–プロンプト作成のヒントと注意点
今回は「「ChatGPT」を使用してコードを記述–プロンプト作成のヒントと注意点」についてご紹介します。
関連ワード (ソフトウェア等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
「ChatGPT」に関する非常に興味深い発見の1つは、とても良いコードを書けるということだ。筆者は3月、これをテストするために、妻が自分のウェブサイトで使用できる「WordPress」プラグインを作成してほしいと頼んだ。ChatGPTは見事にやってのけたが、これは非常に簡単なプロジェクトだった。
日常のコーディング作業の中で、ChatGPTを使用してコードを作成するにはどうすればいいのだろうか。本記事ではその方法を解説する。
ChatGPTとコーディングに関して2つの重要な事実がある。1つは、実際に役に立つコードを記述できることだ。もう1つは、目的を完全に見失って、ウサギの巣穴に落ち、自分の尻尾を追いかけて、全く使い物にならないごみを出力する場合があることだ。
筆者は苦い経験を通してこれに気づいた。WordPressプラグインを完成させた後、ChatGPTがどこまでやれるのか確かめてみることにした。「Mac」アプリケーション用のプロンプトを非常に念入りに書き上げて、ユーザーインターフェース要素、インタラクション、設定で提供される機能、それらが機能する仕組みなどについての詳細な説明を含めて、ChatGPTに入力した。
ChatGPTの応答は、あふれるほど大量のテキストとコードだけで、その後、途中で停止してしまった。続けるように伝えると、さらに多くのコードとテキストを吐き出した。何度も続行を要求すると、ますます多くのコードが出てきた。だが、どれも使い物にならない。コードを配置する場所やプロジェクトを構築する方法は教えてくれず、生成されたコードを注意して見たところ、筆者が要求した重要な操作が省略され、「プログラムロジックをここに記述」という単純なテキストの説明がそのまま残されていた。
何度もテストを繰り返した結果、ChatGPTに完全なアプリケーションの作成を頼むと失敗するということが、はっきりと分かった。この所見から導き出される当然の結論として、コーディングに関する知識が全くない人がChatGPTに何かを構築させようとしても、うまくいかないだろう。
ChatGPTが処理に成功して、うまくやってのけるのは、コーディングをすでに理解している人が特定のルーチンを構築して特定のタスクを完了できるように支援することだ。メニューバーで動作するアプリを求めてはならない。だが、メニューバーにメニューを配置するルーチンを頼んで、その出力をプロジェクトに貼り付けると、非常にうまくいくだろう。
ChatGPTを使用して、手法の実演、小規模なアルゴリズムの作成、サブルーチンの記述をしてみよう。さらには、大規模なプロジェクトを複数のチャンクに分割するのを手助けしてもらい、それらのチャンクのコーディングを手伝ってほしいと頼むことも可能だ。
これを念頭に置いて、ChatGPTを利用したコード記述の具体的な手順を見ていこう。
この最初のステップでは、ChatGPTに何を頼むのかを決めるが、まだ何も頼まない。関数やルーチンに何をさせたいのか、あるいは何について知ってコードに組み込みたいかを決めよう。コードに渡すパラメーターと、コードから得たいものを決める。そして、それをどのように説明するかを考えてほしい。
人間のプログラマーを雇って、この作業をさせる場面を想像してみよう。この作業に対応できるだけの十分な情報を与えているだろうか。それとも、指示が曖昧すぎて、雇った人に頻繁に質問されるか、欲しいものとは全く関係のない成果物ができあがっていないだろうか。
例を挙げて説明する。任意のウェブページを要約できるようにしたいとしよう。この記事のようなものを入力すると、よく考えられた適切な内容の短い要約が返ってくるようにしたい。入力として、ウェブページのURLを指定する。出力は、要約を含むテキストのブロックだ。
先ほどの例を続ける。ウェブページのデータを抽出する古典的な方法は、HTMLの段落タグの間にあるテキストを見つけることだった。
しかし、AIツールが台頭した現在では、AIライブラリーを使用して、インテリジェントな抽出と要約を実行する方が理にかなっている。ChatGPTが得意なことの1つは、ライブラリーとリソースを見つけることだ(これは簡単に検証できる分野でもあり、権威的だが間違っているChatGPTの行動パターンを避けることができる)。
OpenAI(ChatGPTの開発元)がAPIアクセスを販売している「GPT-3」「GPT-4」エンジンなら、まさにわれわれがやりたいことを実行できるが、今回の例では利用料金を支払わない前提とする。
では、ChatGPTと対話して、そのようなツールを無料で使用する方法を紹介しよう。「PHP」で動作するプロジェクトを作成する。
最初に入力したプロンプトは、必要な機能を提供してくれるライブラリーについての情報を引き出すものだ。(プログラマーではない読者のために説明しておくと)ライブラリーとは、プログラマーがアクセスできるコードの集まりであり、特定の目的のための手間がかかる処理を大量に実行してくれる。現代のプログラミングでは、適切なライブラリーを見つけて選択することが大きな比重を占める。したがって、このプロンプトは適切な出発点だ。
今回は、他の人が記述した、テキスト要約用コードのブロックを対象としている。最初のプロンプトは以下のとおりだ。
このプロンプトで、まさに求めていた情報を得ることができた。回答にはOpenAIの製品についての言及も含まれている。OpenAIのライブラリーは大いに役立つと思うが、今回の架空のプロジェクトではAPIの料金を支払いたくないので、質問の範囲を狭めていく。