「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の料金を支払いたくないので、質問の範囲を狭めていく。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
「Linux」の安全性を高めるために実践してほしい7つの基本事項
IT関連
2023-10-14 03:05
「Googleカレンダー」で複数のカレンダーを作成するには–予定を効果的に整理
IT関連
2022-09-20 23:45
スバル、SCMソリューション導入で需要計画の最適化へ–米国法人で効果を実感
IT関連
2023-08-04 23:35
今こそ知っておきたい「TensorFlow」–機械学習ソフトウェアライブラリーの進化
IT関連
2021-05-23 12:47
パーソナライズ×D2Cブランド「MEDULLA」「HOTARU PERSONALIZED」運営のSpartyが総額約41億円調達
ネットサービス
2021-08-17 15:05
トランスコスモスとAdaloが協業–アプリの開発代行やトレーニングをパッケージで提供
IT関連
2023-06-24 06:10
自動運転技術のティアフォーと自動車学校運営のミナミHDがAI教習システムを手がける「AI教習所」設立
オープンソース / Open Source(用語)
2021-05-18 12:54
NVIDIA、「Grace CPU」と新たなデータセンター向け製品ロードマップを示す
IT関連
2021-04-13 19:43
どこまで許される営業秘密の持ち出し 5G技術情報を持って楽天モバイルへ転職したソフトバンク元社員逮捕
IT関連
2021-01-17 00:28
データ侵害、米国で前年同期比14%増–ITRCの2022年Q1レポート
IT関連
2022-04-15 16:57
セキュアワークス、XDRサービスを日本で展開–60分以内に即応
IT関連
2022-10-13 05:05
健康管理システムCarelyを運営するiCAREが19億円のシリーズE調達、健康ビッグデータを活用するプロダクト開発加速
IT関連
2022-02-08 01:12
「コンポーザビリティー」で変化に強い企業体質となれ–ガートナー
IT関連
2021-06-25 19:06
ITエンジニアが使いたいエディタトップ10 「Visual Studio Code」は3位 1位は?
企業・業界動向
2021-05-28 18:36