![gettyimages-1246766124.jpg](https://static-lib.s3.amazonaws.com/cms/gettyimages_1246766124_52f43c4181.jpg)
細かいことを言わないでくださいが、私はかなりビビっています。実験として、私はChatGPTに頼んで、妻がウェブサイトの管理に時間を節約できるプラグインを作成してもらいました。私は短い説明を書いてChatGPTがすべてを書きました:ユーザーインターフェース、ロジック、すべてを。
5分未満で。
その他の考慮事項:最高のAIチャットボット:ChatGPTおよび他の楽しい代替手段
何か重要な意味があります。数分後にそれについてお話しします。最初に、この経験と何が起こったのかをご説明します。
必要性
![line-randomizer-paypal-demo-wordpress-2023-01-31-23-41-28.jpg](https://static-lib.s3.amazonaws.com/cms/line_randomizer_paypal_demo_wordpress_2023_01_31_23_41_28_add42627c6.jpg)
私の妻は人気のある趣味に焦点を当てたWordPressベースのeコマースサイトの経営者です。彼女はまた、そのサイトの顧客向けの非常に活発なFacebookグループを運営しています。彼女は毎月、名前のリストをランダムに並べ替え、そのランダムなリストを使用してFacebookグループのために仮想的なルーレットのようなアニメーションを行っています。インターネット上のサイトを使用して、それなりにリストをランダム化してくれますが、リストをエクスポートするためにそれほどの価値を持たない程度に料金がかかります。
また: AIディテクターはChatGPTから私たちを救えるのか?3つのオンラインツールを試してみました
彼女がランダムな名前を取り出そうと苦労している様子を見て、彼女のサイトにインストールできる便利なWordPressプラグインを作成したら役に立つかもしれないと思いました。彼女は毎日ダッシュボードを使っているので、それをツールとして持つことは役立つでしょう。
ただし、シンプルなプラグインであっても、ユーザーインターフェイス要素やロジックコードなどを含めると、私にとっては数日かかるでしょう。しかも、今はプロジェクトがいっぱいで忙しい状況です。
そして、私はChatGPTのことを考えました。メディアでChatGPTがプログラミングツールとして取り上げられているのをいくつか見ましたので、試してみることにしました。
プロンプト
ChatGPTが何かを生成するための鍵は、注意深く書かれたプロンプトです。プログラミングの場合、それをマネージャーやクライアントのように考えてください。望む結果を得るためには、必要なものを明確に説明する必要があります。私は非常に基本的なプロンプトで始めましたが、それが機能するかどうかを確認するためです。以下に私が使用したプロンプトを示します:
![コード画像](https://static-lib.s3.amazonaws.com/cms/code_46e0fd4f04.jpg)
PHP 8に対応したWordPressプラグインを作成し、テキスト入力フィールドを提供します。このフィールドに行のリストを貼り付けることができ、ボタンを押すとリスト内の行がランダムに並び替えられ、その結果が2番目のテキスト入力フィールドに表示されます。
1分以内に、右側に表示されているコードを生成しました。生成されたコードを.phpファイルにコピーし、.phpファイルと同じルート名のフォルダに入れて、それを圧縮して彼女のサーバーにアップロードしました。それで動きました。
また:ロシアのハッカーがChatGPTに侵入しようとしていると、チェックポイントが述べています
妻に見せたところ、彼女は適切に感心して驚いていました。しかし、その後、彼女は考えるようになり、新しい機能を要求しました:同じ名前が隣り合わないようにしてください。
彼女のアプリケーションでは、何度も同じ名前をリストに含める必要があります。しかし、その重複がクラスタ化しないようにしたかったのです。
私は元のプロントを修正し、以下の追加条件を追加しました:
…隣り合うもの同じエントリーがないようにします(他の選択肢が無い場合を除く)…提出された行数と結果の行数が互いに同じであることを確認します。
「他の選択肢がない場合」のフレーズと同じ数の要件を含めたのは、全ての名前が含まれることを確認したかったからです。隣り合わない2つの名前を優先する必要性が、すべての名前を残すことよりも優先されるのではないかと心配していました。
約30秒後、新しいプラグインができました。それをサーバーにアップロードして試してみました。動作しましたが、出力にいくつかの空白行が含まれていました。そのため、前のプロンプトにこの条件を追加しました:
…空白行なしで…
今では、いつも1分未満のターンアラウンドタイムに慣れていました。もう1つのアップロードとテストをして、再び動作しました。
また: ChatGPT の使い方
私は最後の機能を追加したかったのですが、処理された行数を確認したかったです。プラグインに、入力フィールドと出力フィールドの行数を表示させるカウント機能を追加したかったのです。以下にその追加プロンプトを掲載します:
…最初のフィールド下に、「ランダム化する行:」と表示され、ソースフィールド内の非空行の数が表示されます。2番目のフィールド下に、「ランダム化された行:」と表示され、宛先フィールド内の非空行の数が表示されます。
これは、ほぼ成功しました。実行する前に、出力フィールドには1行しか表示されません。しかし、ランダム化プロセスが完了すると、両方のフィールドに正確な行数が表示されます。
コードの品質
全体的に、コードの品質はきれいでした。記事の中に収まらないため、オリジナルのレスポンスのみを表示しています。プログラムは、適切にWordPressのヘッダーブロックを生成し、プラグインのダッシュボードユーザーインターフェースやプラグインの処理ロジックを書きました。
それにも関わらず、私はフィールドの下にサマリー行を配置しましたが、それは大した不満ではありません。これは、クライアントが人間の契約業者から返ってきた場合と同じようなミスであり、修正するために少しの手直しが必要となるかもしれません。
さらに: Notion AIのライティングヘルパーは、この記事を書くことができますか?
コーディングは機能しましたが、WordPressプログラミングのすべてのベストプラクティスを反映させていませんでした。例えば、ユーザー入力のサニタイズを行っていませんでした。WordPressコミュニティでは、ハッカーがサイトを破壊する可能性のあるデータをフィールドに詰め込むのを防ぐため、入力値のサニタイズに厳格なルールを設けていますが、このコードにはそれがありませんでした。
後日テストとして、Aiに入力のサニタイズを指示しましたが、ある程度の範囲でサニタイズされました。PHP関数内部の入力はサニタイズされましたが、HTML内でPHPを呼び出す際には入力のサニタイズがされませんでした。これは間違いなくハッカーに対する攻撃手段の可能性を残してしまいます。
また、このプラグインは設定項目にメニューアイテムをドロップしました。もしかすると、ツールの下に配置するか、この機能に独自のメニューアイテムを与える方がよかったかもしれません。私がどこから呼び出すべきかを指定しなかったため、ChatGPTがメニューアイテムを配置した場所は作業可能な判断だと思います。
私はプロンプトに最後の要件を追加しました。AIにプラグインに名前を付けるように要求しました:
「Roboランダマイザー」というPHP 8対応のWordPressプラグインを作成し、...
不思議なことに、AIは私に完全に異なるプラグインを与えました。それは、ダッシュボードインターフェースではなく、ショートコードを提供するプラグインを生成します。WordPress非ユーザーに説明しましょう、とても興味深いです。
このような文章を書く場合、ウェブサイトの訪問者(前面)や、サイトのダッシュボードにログインしてサイトを管理するユーザー(バックエンド)に提供することができます。元のプロンプトでは、フロントエンドやバックエンドは指定していませんでしたが、AIは私が望んでいたもの、つまりツールのバックエンド、ダッシュボードインターフェースを書きました。
その他:OpenAIは、ChatGPTのコーディング能力を向上させるために開発者を募集しています。
しかし、今回は、プラグインをフロントエンドツールとして記述し、ショートコードを介して実行することを決定しました。WordPressでは、[randomize lines]のようなショートコードを投稿内に埋め込むことで、プラグイン内のコードを実行することができます。AIが生成した最新バージョンでは、私にそのようなショートコードが与えられました。これにより、ランダム化された行の機能をサイトの訪問者に提供することができました。
その後、ChatGPTは話の流れを逸してしまいました。元のプラグインに追加機能を加えることができず、ChatGPTはほとんどショートコードバージョンを繰り返すだけでした。明らかに、コードのメンテナンスはChatGPTの強みではありません。
影響
明らかに、これは簡単なプラグインです。私がUCバークレイ校で教えていたときに一年生のプログラミング学生に与えた課題の大きさくらいです。50,000人以上のユーザーに対応する私が管理している、ずっとずっと大きなオープンソースのWordPressプラグインの複雑さには及びません。
また: AIチャットボットについて、私たちは全く違った場所で答えを探しているのでしょうか?
先週、私が初めてChatGPTを使用してクイッキープラグインを作成し、妻についてつぶやいたところ、私のSNS上の連絡先が反対意見を示しました。以下は彼らの懸念事項の一部です:
それは邪悪なものでしょうか?ある人は心配していました。AIがプラグインに悪意のある(または少なくとも宣伝の)情報を埋め込む可能性があり、非プログラミングのユーザーはそれを知ることはありません。しかし、実際には、もしコーダーでなくて、コードを読むことができないならば、他の人と契約しても、本当に内部に何があるのかは分かりません。すべては信頼する評判か、信頼できる人にコードを調べてもらうか、のどちらかになります。私の実験で生成されたコードの場合、それはクリーンなものでした。
それが最善ですか?ここでも、人々はAIのコードを、人間のコーダーですら違った基準で評価していました。私は優れたプログラマーですが、私のコードにはバグがあります。最初の段階では、それが最善ではないのです。しかし、人間の場合は、コードは時間とともに向上します。既存のコードを受け取り、改善し、デバッグし、強化できるか、AIができるかどうかはわかりません。ただし、時には物事が単に機能する必要があります。それが最高のものであるかどうかは常に重要ではありません。十分に良ければ十分です。そして、それは十分に良いコードを生成しました。
人間のプログラミングの仕事の数を削減しますか? ほぼ間違いありません。私は機械が誰かの仕事を奪うのを見るのは嫌です(特に私が欲しい仕事の場合はなおさらです)。AIは、ライティングやプログラミングなどの短期的で簡単なプロジェクトにとって確実に選択肢になります。人々の給料には確実に影響が出るでしょう。
私は何十年もAIを研究してきました。AIに関する論文も書きました。しかし、これだけのバックグラウンドがあるのにもかかわらず、この高品質な生成型AIの急激な進展は私にとっても驚くべきものです。とはいえ、私たちが今見ているのは「十分に良い」生産性のレベルです。残念ながら、それが多くのクライアントが求めるものなのです。
しかし、今のところ、ChatGPTやその仲間たちはこのような詳細な分析記事を書くことはできません。なぜなら、それらは意見や逸話、数年にわたる経験を反映しているからです。そして、大規模なコーディングプロジェクトのためのサブルーチンや関数を書くことはできるかもしれませんが、メジャーなコーディングプロジェクトを書くことはできません。
なお: GoogleのChatGPTの競合デモが失敗する
例えば、昨年、自分のサービスに大手のAPIプロバイダを統合するために20〜30回のミーティングを行わなければなりませんでした。それらのミーティングのほとんどは、ビジネスの課題と技術的な要件、ライセンスポリシーを組み合わせて行われました。そのような官僚的な状況に耐え、微妙なニュアンスを理解し、パートナーの要件を満たし、全員が合意できるコードモジュールを作り出せるようなAIが存在するとは思えません。
そうです、私は妻のために "作った" プラグインがどれほど優れているかに少し驚いています。しかし、AIは経験豊富な開発者やライターから仕事を奪うにはまだ長い道のりがあります。なぜなら、クライアントが経験豊富な開発者やライターが生み出すような仕事を求める限りです。そして、それは私が心配することです、友達よ。