ChatGPT を使用してコードを記述する方法

画像1.pngChatGPTに関する興味深い発見の 1 つは、ChatGPT が非常に優れたコードを記述できることです。私は 2 月に、妻がウェブサイトで使用できる WordPress プラグインを作成するよう依頼して、これをテストしました。素晴らしい仕事をしましたが、非常に単純なプロジェクトでした。

ChatGPT を使用して書く方法: 履歴書| Excel の数式 |エッセイ|カバーレター

毎日のコーディング練習の一環として、ChatGPT を使用してコードを記述するにはどうすればよいでしょうか?それがここで探求することです。

ChatGPT はどのようなタイプのコーディングに適していますか?

ChatGPT とコーディングに関して 2 つの重要な事実があります。 1 つ目は、実際に有用なコードを作成できるということです。 2 つ目は、完全に道に迷ってウサギの穴に落ち、自分の尻尾を追いかけ、まったく使用できないゴミを生み出す可能性があることです。

私はこれを苦労して見つけました。 WordPress プラグインを完成させた後、ChatGPT がどこまでできるかを試してみることにしました。ユーザー インターフェイス要素、インタラクション、設定で提供される内容、それらがどのように機能するかなどの詳細な説明を含む、Mac アプリケーション用の非常に慎重なプロンプトを作成しました。次に、それを ChatGPT にフィードしました。

ChatGPT は大量のテキストとコードで応答しました。その後、コードの途中で停止しました。続行するように要求すると、さらに多くのコードとテキストが吐き出されました。何度も続行をリクエストすると、どんどんコードがダンプされていきました。しかし...どれも使えませんでした。コードをどこに置くべきか、プロジェクトをどのように構築するかが特定されず、生成されたコードを注意深く見たところ、私が要求した主要な操作が省略され、「プログラム ロジックはここにあります」という単純なテキストの説明が残されていました。 」

何度もテストを繰り返した結果、ChatGPT に完全なアプリケーションの提供を要求すると失敗することが明らかになりました。この観察の結果として、コーディングについて何も知らず、ChatGPT に何かを構築してもらいたい場合は失敗するということになります。

ChatGPT が成功し、非常にうまく機能しているのは、特定のルーチンを構築し、特定のタスクを実行するコードの作成方法をすでに知っている人を支援することです。メニューバーで実行するアプリを要求しないでください。しかし、メニュー バーにメニューを配置するルーチンを ChatGPT に要求し、それをプロジェクトに貼り付けると、非常にうまくいきます。

関連記事: ChatGPT を使用してアプリを作成する方法

また、ChatGPT はドメイン固有の膨大な量の知識を持っているように見えますが (実際、実際にそうであることもよくあります)、知恵が不足していることにも留意してください。そのため、コードを書くことはできるかもしれませんが、理解するのに深い経験を必要とする非常に特殊な問題や複雑な問題のニュアンスを含むコードを書くことはできません。

ChatGPT を使用してテクニックをデモし、小さなアルゴリズムを作成し、サブルーチンを作成します。 ChatGPT を入手して、より大きなプロジェクトをいくつかのチャンクに分割し、それらのチャンクのコーディングを手伝ってもらうこともできます。

したがって、それを念頭に置いて、ChatGPT を使用してコードを記述する方法の具体的な手順をいくつか見てみましょう。

ChatGPT がコードの作成にどのように役立つか

1. リクエストを絞り込み、絞り込む

この最初のステップでは、ChatGPT に何を質問するかを決定しますが、まだ何も質問していません。関数やルーチンに何を実行させたいか、またはコードに組み込むために何を学びたいかを決定します。コードに渡すパラメータと何を取得したいかを決定します。そして、それをどのように説明するかを見てください。

これを行うために人間のプログラマーにお金を払っていると想像してみてください。あなたはその人にあなたの任務に取り組むのに十分な情報を与えていますか?それとも、あなたが漠然としすぎていて、あなたがお金を払っている相手は、質問したり、あなたが望むものとはまったく関係のないものを提出したりする可能性が高いでしょうか?

ここに例を示します。任意の Web ページを要約できるようにしたいとします。この記事のようなものを提供して、よく考えられた適切な短い要約を返したいと考えています。入力として、Web ページの URL を指定します。私の出力としては、概要を含むテキストのブロックです。

2. ChatGPT を使用してライブラリとリソースを探索する

上記の例を続けると、Web ページ データを抽出する非常に古い方法は、HTML 段落タグ間のテキストを検索することでした。

しかし、AI ツールの台頭により、AI ライブラリを使用してインテリジェントな抽出と要約を行うことがより合理的になっています。 ChatGPT が優れている点の 1 つは (また、その権威的だが間違った動作パターンを回避するために簡単に検証できる領域でもあります) ライブラリとリソースの検索です。

OpenAI (ChatGPT のメーカー) は、私たちが望んでいることを正確に実行する GPT-3 およびGPT-4エンジンへの API アクセスを販売しています。ただし、この例の場合、取引手数料を支払いたくないとしましょう。

そこで、PHP で実行されるプロジェクトでこのようなツールを無料で使用する方法を理解するために、ChatGPT との対話を見てみましょう。

私は、どのライブラリが私が望む機能を提供するかについての情報を引き出すように設計されたプロンプトから始めました。ライブラリ (プログラマではない方のために、この記事を読んでいる方のために) は、プログラマがアクセスできるコードの本体で、特定の目的のために多くの重労働を実行します。最新のプログラミングの大部分は、適切なライブラリを見つけて選択することです。したがって、これは良い出発点です。

この場合、他の人が書いた、テキストを要約するコードのブロックを見ています。私の最初のプロンプトは次のとおりです。

広告や埋め込みマテリアルを無視して、Web ページの主要なコア コンテンツの概要を生成するために使用できる 10 個の異なるオープン ソース AI ライブラリ (およびそれらが動作する言語) について説明します。

これにより、OpenAI の製品についての言及など、まさに私が望んでいたものを得ることができました。ここでは OpenAI が最適だと思いますが、この仮想プロジェクトでは API 料金の予算を立てたくありません。そこで質問を絞り込みます。

これらは無料ですか?

ChatGPT はその答えで賭けを回避しました。 「はい、これら 10 個の AI ライブラリはすべてオープンソースであり、無料で使用できます。ただし、一部のライブラリには使用制限がある場合や、追加の機能やリソースへのアクセスに料金の支払いが必要な場合があります。」したがって、それに基づいて、私の質問を明確にしました。

次のライブラリのうち、使用制限がなく、追加の支払いやライセンスを必要としないライブラリはどれですか?

これがいかに非常に会話であるかに注目してください。元の質問を再質問する必要はありません。私は、専門家が近くにいて説明を求めている場合と同じ方法で掘り下げているだけです。この場合、ChatGPT は 8 つのライブラリの選択肢を与えてくれましたが、その中には私がコーディングする予定だった PHP 言語については言及されていませんでした。そこで、次のプロンプトが表示されます。

これら 8 つのライブラリのうち、PHP で使用できるライブラリはどれですか?

3 つのライブラリが返されましたが、それぞれが何をするのかはわかりませんでした。そこで別の質問:

Sumy、Gensim、NLTK の違いは何ですか?

まだよく分からなかったので、使用計画を明確にしてから次のように質問しました。

Web ページのニュース記事の要約を作成したい場合、どのライブラリがより適切に機能しますか?

私が得た答えは明確で有望なものでした。「Sumy は、テキストの要約、つまりテキストから最も重要な情報を抽出した要約を作成するタスクに特化して設計されています。」そこで、PHP でそれを使用する場合に何が関係するのかを見てみましょう。私はプロジェクトのこの部分について最後の質問をしました。

PHP から Sumy を使用する方法を説明していただけますか?

コンピュータ上で自由に遊んで、これらのプロンプトを ChatGPT のインスタンスに貼り付けてください。ステップ 1 で、どのプログラム モジュールに関するヘルプを取得するかを決定したことに注目してください。次に、このステップでは、ChatGPT と対話して、使用するライブラリとそれをプロジェクトに統合する方法を決定しました。

それはプログラミングのようには思えないかもしれませんが、プログラミングであることは保証します。プログラミングとは、単にコード行をページに書き込むことではありません。プログラミングとは、さまざまなリソースとシステムをすべて統合する方法、およびソリューションのさまざまなコンポーネントすべてと通信する方法を見つけることです。ここで、ChatGPT は統合分析を行うのに役立ちました。

ところで、Google の Bard が同じように役立つかどうか興味がありました。 Bard は実際にコードを書くことはできませんが、ChatGPT の応答を通じてプログラミングの計画面についてさらに洞察を得ることができました。したがって、複数のツールを使用して、必要な答えを三角測量することを躊躇しないでください。その話は次のとおりです: Bard vs. ChatGPT: Can Bard help you code?私がその記事を書いて以来、Google は Bard にいくつかのコーディング機能を追加しましたが、それらはそれほど素晴らしいものではありませんでした。それについてはここで読むことができます: Google Bard の新しいコーディング スキルをテストしました。うまくいきませんでした。

次はコーディングです。

3. ChatGPT にサンプルコードを書いてもらいます

さて、ここで休憩しましょう。この記事のタイトルは「ChatGPT を使用してコードを記述する方法」です。そしてそうなります!しかし、私たちが実際に求めているのは、ChatGPT にサンプルコードを書くことです。待って。何?

また、 GPT-4 とは何ですか?知っておくべきことはすべてここにあります

はっきりさせておきましょう。非常に小さな関数 (ChatGPT が妻のために書いた行ソーター/ランダマイザーなど) を作成しない限り、ChatGPT は最終コードを作成できません。まず、それを維持する必要があります。 ChatGPT は、すでに書かれたコードを変更するのが苦手です。ひどい、それはできません。したがって、新しいコードを取得するには、ChatGPT に新しいものを生成するように依頼する必要があります。以前に発見したように、プロンプトが実質的に同一であっても、ChatGPT は、非常に予期しない方法で表示する内容を変更する可能性があります。

つまり、ChatGPT はコードを保守することはできず、コードを微調整することさえできません。

つまり、自分で行う必要があります。ご存知のとおり、コードの最初の草案が最終コードになることはほとんどありません。したがって、たとえ ChatGPT が最終コードを生成すると期待していたとしても、それは実際には出発点であり、それを完成に導き、より大きなプロジェクトに統合し、テストし、改良し、デバッグするなどの作業を行う必要があるものになります。 。

また、 ChatGPT にスタートレックの短いエピソードを書くよう依頼しました。実際に成功しました

しかし、それはサンプルコードに価値がないという意味ではありません。それとは程遠い。先ほど説明したプロジェクトに基づいて作成したプロンプトを見てみましょう。最初の部分は次のとおりです。

summary_article という PHP 関数を作成します。

入力として、summary_article には、ZDNET.com や Reuters.com などのニュース関連サイトの記事への URL が渡されます。

ChatGPT に使用するプログラミング言語を伝えています。また、入力も伝えていますが、その際、ChatGPT が記事のスタイルを理解するのに役立つサンプルとして 2 つのサイトを提供しています。正直に言うと、ChatGPT がそのようなガイダンスを無視していなかったのかどうかはわかりません。次に、大部分の作業を行う方法を説明します。

summary_article 内で、指定された URL にある Web ページのコンテンツを取得します。 PHP 内のライブラリ Sumy およびその他の必要なライブラリを使用して、広告や埋め込みマテリアルを無視して記事の本文を抽出し、約 50 ワードに要約します。要約が完全な文章で構成されていることを確認してください。必要に応じて、50 単語を超えて最後の文を終了することもできます。

これは私が従業員に指導するときのやり方とよく似ています。その人には、スーミーだけに限定されたものではないことを知ってもらいたいです。別のツールが必要な場合は、それを使ってほしいと思いました。

また、要約として必要な内容の境界を作成するために、おおよその単語数も指定しました。ルーチンの新しいバージョンでは、その数値をパラメータとして受け取る可能性があります。そして、結果として私が望んでいることを言って終わりました。

処理が完了したら、要約をプレーンテキストで返すように、summary_article をコーディングします。

結果として得られるコードは非常にシンプルです。 ChatGPT は、記事のコンテンツを取得するために別のライブラリ (Goose) を呼び出しました。次に、それを 50 単語の制限付きで Summy に渡し、結果を返しました。それでおしまい。ただし、基本を作成したら、プログラムに戻って微調整を追加し、2 つのライブラリに渡される内容をカスタマイズして、結果を提供するのは単なるプログラミングの問題です。画像2.png

興味深い注意点が 1 つあります。 ChatGPT は、2021 年以降 (ChatGPT のデータセットが終了するとき) の URL を使用して、自身が作成したルーチンへのサンプル呼び出しを作成しました。

その URL をロイターのサイトとウェイバック マシンの両方で確認しましたが、存在しませんでした。 ChatGPT がそれを作りました。

よくある質問

ChatGPT はプログラマーに取って代わるのでしょうか?

今はそうではありません、少なくとも、まだではありません。 ChatGPT は才能のあるプログラミング 1 年生のレベルでプログラムを実行しますが、(その 1 年生のように) 怠惰です。非常に初心者レベルのプログラマーの必要性は減るかもしれませんが、現在のレベルでは、初心者レベルのプログラマー (さらには経験豊富なプログラマー) がコードを書いたり、情報を検索したりするのが簡単になるだけだと思います。確かに時間の節約にはなりますが、少なくとも現時点では、これだけで実行できるプログラミング プロジェクトはほとんどありません。 2030年には?知るか。

ChatGPT でコーディングの回答を得るにはどうすればよいですか?

聞いてみてください。インタラクティブなディスカッション ダイアログを使用して、必要な回答を絞り込む方法を上で説明しました。 ChatGPT を使用しているときは、1 つの質問ですべての作業が魔法のように行われることを期待しないでください。ただし、ChatGPT をヘルパーおよびリソースとして使用すると、非常に役立つ情報がたくさん得られます。もちろん、その情報をテストしてください。なぜなら、OpenAI の共同創設者であるジョン・シュルマン氏が言うように、「モデルは物事を捏造するのが好きなので、私たちの最大の懸念は事実に関するものでした。」だからです。

ChatGPT を使用してコードを作成した場合、そのコードの所有者は誰ですか?

結局のところ、この疑問に明確に答える判例はまだ多くありません。米国、カナダ、英国では、著作権で保護されるものは人間の手によって作成されたものであることが求められているため、AI ツールによって生成されたコードは著作権で保護されない可能性があります。トレーニング コードの出所や、結果として得られたコードがどのように使用されるかに基づく責任の問題もあります。 ZDNET はこのトピックについて深く調査し、法律の専門家に話を聞き、次の 3 つの記事を作成しました。この問題について懸念がある場合 (コードの支援に AI を使用している場合は、そうすべきです)、一読することをお勧めします。

  • コードの所有者は誰ですか? ChatGPT の AI がアプリの作成に役立つとしても、それは依然としてあなたのものですか?
  • AI が生成したコードを使用した場合、どのような責任が生じますか?
  • 厄介な質問: AI によって生成されたコード、画像、物語の所有者は誰ですか?

ChatGPT が認識できるプログラミング言語は何ですか?

そのほとんどが。これを試してみると非常に脇道にそれてしまいました。 PHP、Python、Java、Kotlin、Swift、C# などの一般的な最新言語をテストしました。しかしその後、COBOL、Fortran、Forth、LISP、ALGOL、RPG (ロールプレイング ゲームではなくレポート プログラム ジェネレーター)、さらには IBM/360 アセンブリ言語などの、あいまいな暗黒時代の言語でコードを書かせました。

ケーキの飾りとして、私は次のプロンプトを与えました。

PDP 8/e のフロント パネルにライトを点滅させる ASCII 文字で「Hello, world」を表示するシーケンスを作成します。

PDP 8/e は私にとって初めてのコンピューターであり、ChatGPT は実際に、フロント パネルのスイッチを使用してプログラムを切り替えるための指示を与えてくれました。私は感動し、嬉しくなり、そして少しだけ怖くなりました。

結論は何ですか? ChatGPT は非常に役立つツールです。ただ、それに超能力があると考えないでください。まだ。

関連記事

もっと見る >>

HIX.AI で AI の力を解き放ちましょう!