まず、ChatGPTを使ってみます
ChatGPTは色んなことができますが、まずプログラムコードを作成して貰います。
○【私の質問内容】
WEBで、フォーム入力して、その後メール送信するプログラムをPHP言語で書いてください
1番目の画像は、ChatGPTが示したHTMLのコードです。
2番目の画像は、ChatGPTが示したPHPのコードです。
○実際にChatGPTが生成したHTMLプログラムのコードは以下です:
お問い合わせフォーム お問い合わせフォーム
○実際にChatGPTが生成したPHPプログラムのコードは以下です:
お問い合わせありがとうございます。送信が完了しました。 "; } else { // 送信失敗時の処理 echo " 送信に失敗しました。しばらく経ってから再度お試しください。 "; } ?>
凄いですね、こんなに簡単な質問だけ、文脈を読み取って、問い合せ用の
HTMLコードと問い合せをメール送信するプログラムを作成してくれました。
※はっきりといって、驚きでした、ChatGPTがあれば、もうプログラマは、不要になるのか知れませんね。
★もし興味を持たれましたら、取り敢えずここにアクセスして下さい。、一時的にChatGPTが使えます。
Googleスレッドシートで、ChatGPTに直接質問ができます。
※お願い、ChatGPT(厳密にはGTP3.5)のAPIは、有料です、使いすぎにご注意下さい。
※初期に貰える$18ドルを使い切ると、他の方が使用できなくなります。
※もちろん、自分でアカウント登録して、無料でChatGPTにアクセスもできます。
プロローグ
○プロローグ
AIチャットボットのChatGPT(OpenAI社)は、発表されて未だ3ヶ月ですが各方面に、インパクトを与えているようですね。
私も強烈なインパクトを受けました、まさに第4次産業革命という言葉も大げさではないと思います。
関係する範囲が広いので、4-5回に渡って、紹介したいと思っています。
タイトル名 | 概要 | 詳細 |
---|---|---|
AI ChatGPT、今もっともホットな話題 | ChatGPTの紹介を致します 今回は、ここを紹介します |
ChatGPTを使う準備 ChatGPTとは 小説に挑戦 プログラミングして見る |
AI ChatGPT,便利なChrome拡張機能 | 便利なChrome拡張機能を紹介します | ページ翻訳ツール Talk-to-ChatGPT ChatGPT for Google WebChatGPT CHatGPT for Search Engines ChatGPT Prompt Genius |
AI ChatGPT、技術トピックスを書いてもらう | 会社の技術トピックス | ChatGPTで楽をしたい 技術トッピックスのテーマ選定 技術トピックスの作成 |
ChatGPT、APIを使ってみる(1) | ChatGPTでも使用しているGPT3.5 API Googleスレッドで利用 GAS言語で実装 curlコマンドで実行 |
GPT() GPT_LIST GPT_TABLE GPT_TRANSLATE |
AI ChatGPT、APIを使ってみる(2)ChatGPT | プログラミングで活用する ChatGPT自身のAPI(2023/03/02日公開) |
Python言語 GAS Javascript PHP言語 |
AI ChatGPT、ライバル達は今 | マイクロソフト 「Bing」 Google 「BARD」 |
その他: Perplexity WriteSonic |
ChatGPTを使う準備
○アカウントの登録
最初の画像の「TryChatGPT」から指示に従って、必要な情報を入力し、ChatGPTに登録します。
URLはここです。
○ログイン方法
ログイン方法は、以下のようにログインします。
○APIを使用するために、Waitlistへの登録の登録
登録用のURLは、ここです。
なお、APIのリファレンスはここです。
2023年3月2日に、ChatGPTのAPIが使える旨、メールが届きました(^_^)。
さあ、忙しくなるぞ!!!。※無料枠分はありますが、API使用は、基本有料です。
※但し、よく見ると、料金が今回から1/10程度に価格改定されたようです(^_^)。
ChatGPTとは?
「ChatGPT」に、ChatGPTとは何か聞いてみることにします。
「ChatGPT」が何のか、実際に使って、体験してみます。
・まず「ChatGPT」が何なのか聞いてみます。
・次に「小説」について質問してみます。
・簡単なPHPプログラムを作って貰います。
・最後に、「五目並べ」プログラムを作って貰います。
○ChatGPTとはなんですか?
これは、ChatGPT自身に、ChatGPTが何であるか質問してみました。
回答が、実に自然な日本語になっていますね。
自然言語処理モデルの一つなのですね。
なるほど、「Generative Pre-trained Transformer」の略なのですね。
人間が使用する言語の理解・生成・応答を行うことができるのですね。
○実際のやり取りは以下です:
【質問】ChatGPTとはなんですか?
【回答】
ChatGPTは、OpenAIが開発した大規模な自然言語処理モデルの一つです。 GPTとは「Generative Pre-trained Transformer」の略であり、 多数の文書データを学習することで、人間が使用する言語の理解・生成 ・応答を行うことができます。 ChatGPTは、自然言語による対話システムとして訓練されており、 人間が提供するテキスト入力に対して応答を生成することができます。 ChatGPTは、自然言語処理の分野において、高い性能と汎用性を発揮する モデルの一つとして知られています。
○得意なことを3つ箇条書きで教えてください?
まず、驚きです、前の会話を覚えています、話題は「ChatGPT」だということ。
次に、「3つ」「箇条書き」の指示も、理解していますね、これは凄い!。
以下の3つが、代表的なできることなのですね。
1つ目が、テキストの生成
2つ目が、質疑応答
3.チャットボットですか
○実際のやり取りは以下です:
【質問】得意なことを3つ箇条書きで教えてください
【回答】
以下が私(ChatGPT)の得意とすることの例です。 1. 言語理解: 自然言語処理タスクにおいて、文章の意味や構文解析、言語モデルの生成など、 言語理解に関するタスクに強いです。 2. 対話: 対話システムにおいて、人間との自然な対話を行うことができます。 入力されたテキストに適切な応答を生成することができます。 3. 情報検索: 大量の情報を扱う場合でも、高速かつ正確に情報検索を行うことができます。 また、自然言語によるクエリの理解や、検索結果の要約なども得意としています。
ChatGPTで小説に挑戦
○「銀河鉄道の夜」のあらすじを教えてください、500文字以内で。
○実際のやり取りは以下です:
【質問】「銀河鉄道の夜」のあらすじを教えてください、500文字以内で。
【回答】
「銀河鉄道の夜」は、宮沢賢治による短編小説であり、詩的な言葉で描かれた幻想的な 世界が特徴です。 物語は、ある駅のホームで待ち合わせた少年と少女が、謎めいた列車「銀河鉄道」 に乗り込み、不思議な旅を続けるところから始まります。 列車内では、様々なキャラクターたちが現れ、彼らとの出会いや別れ、 そして各々の物語が語られます。 列車が進むにつれ、少年は次第に自分自身や世界の不可思議さに気づいていきます。 そして、最終的には、列車の終着点である「天の川」に到着し、少女と別れます。 その後、少年は新たな旅を始めることを決意します。 「銀河鉄道の夜」は、宮沢賢治が晩年に書いた作品であり、彼の哲学や思想が 反映されています。 幻想的な世界観や、美しい言葉遣いによって、読者を魅了します。
○要約してくれますか?
ここでも、銀河鉄道の夜と再度言わなくても、大丈夫です。
○実際のやり取りは以下です:
【質問】要約してくれますか?
【回答】
「銀河鉄道の夜」は、少年と少女が不思議な列車「銀河鉄道」に乗り込んで、 様々なキャラクターたちとの出会いや別れを経験しながら、自分自身や世界の不可思議さ に気づいていく物語です。 最終的に、列車の終着点である「天の川」に到着し、少女と別れた少年は、 新たな旅を始めることを決意します。 幻想的な世界観や美しい言葉遣いが特徴であり、宮沢賢治の哲学や思想が反映 された作品となっています。
ことも魅力の一つです。
自然や人間の命の尊さ、そして別れや再会の喜びなど、生きることの大切さを改めて
考えさせられま ○読書感想文を原稿用紙1枚にまとめて書いてください?
ここでも、銀河鉄道の夜と再度言わなくても、大丈夫です。
○実際のやり取りは以下です:
【質問】読書感想文を原稿用紙1枚にまとめて書いてください?
【回答】
【読書感想文】「銀河鉄道の夜」 宮沢賢治の「銀河鉄道の夜」は、美しい言葉遣いと幻想的な世界観が魅力の短編小説です。 少年と少女が謎めいた列車「銀河鉄道」に乗り込んで、様々なキャラクターたちとの 出会いや別れを通じて、自分自身や世界の不可思議さに気づいていく物語は、心に 深い感動を与えます。 特に、少年と少女の出会いや別れ、そして少年が新たな旅を始める場面は、感動的で 印象に残ります。 また、宮沢賢治の哲学や思想が反映された、深いメッセージが作品に込められている した。 「銀河鉄道の夜」は、言葉を紡ぐことの美しさや、人間の心の深さを感じさせる作品 であると同時に、多くの教訓が込められた本格的な文学作品でもあります。 今後もこのような本に出会えることを期待しています。
ChatGPTでプログラムに挑戦(続)
これは、冒頭に紹介したプログラムの続きです。
さらに以下の質問をして、プログラムを改良してもらいます。
○上記のPHPコードでセキュリティホールはありませんか?あれば修正してください。
※参りました、私よりも上級のプログラマの様です、私の場合、色々とWEBで検索しながら、1つ1つ、セキュリティホールを修正するので、1日では修正できません。
○実際のやり取りは以下です:
【質問】上記のPHPコードでセキュリティホールはありませんか?あれば修正してください。
【回答】PHPコード部分
$from, 'Reply-To' => $email, 'X-Mailer' => 'PHP/' . phpversion() ); // メール本文を設定 $subject = 'フォームからのメッセージ'; $message = '名前: ' . $name . "\n" . 'メールアドレス: ' . $email . "\n" . 'メッセージ: ' . $message; // メールを送信する if (mail($to, $subject, $message, $headers)) { echo 'メールが送信されました'; } else { echo 'メールの送信に失敗しました'; } ?>
【回答】文書説明部分
はい、セキュリティ上の問題がいくつかあります。以下は、修正されたコード例です。 修正点は以下の通りです。 1. 入力値のフィルタリング: filter_input() 関数を使用して、$_POST 変数から値を取得する前に、各値をフィルタリングしました。FILTER_SANITIZE_STRING と FILTER_SANITIZE_EMAIL を使用して、各フィールドの値を無害化しました。 2. 送信元のメールアドレスを設定: 送信元のメールアドレスを $from 変数に設定しました。これにより、ヘッダーの From フィールドに送信元アドレスを設定できます。 3. ヘッダーの追加: 追加のヘッダーを設定しました。これらは、メールの送信元、返信先、および使用されているメーラーを識別するために使用されます。 4. インジェクション対策: ユーザーが入力した情報は、mail() 関数に直接渡されないようにしました。代わりに、メッセージ本文の値にのみ含めました。これにより、メールアドレスのインジェクション攻撃を防ぎます。 これらの修正は、フォームからのデータをより安全に扱うようになります。ただし、完全にセキュアな方法ではなく、依然として悪意のある攻撃に対応するためには、さらなるセキュリティ対策が必要になります。以下は、その例です。 5. CAPTCHA の導入: CAPTCHA を使用することで、自動化されたスパムメッセージをフィルタリングすることができます。この場合、ユーザーがフォームを送信する前に、CAPTCHA テストをクリアする必要があります。 6. CSRF 対策の実装: フォームに CSRF トークンを追加することで、フォームの送信元が本当に許可されたサイトであることを確認できます。これにより、攻撃者が偽のフォームを作成して、訪問者に偽の情報を提供することを防ぎます。 7. フォームバリデーション: フォームバリデーションを行うことで、ユーザーが入力した値が期待どおりの形式であることを確認できます。たとえば、メールアドレスが正しい形式で入力されているか、必須フィールドが入力されているかなどを確認します。 8. セキュアなメール送信: セキュアなトランスポート層セキュリティ(TLS)を使用することで、メール送信中に情報が盗まれたり改ざんされたりすることを防ぐことができます。また、SMTP 認証を使用して、メールサーバーが正当な送信元であることを確認します。 これらの対策を組み合わせることで、フォームの送信元を確実に検証し、悪意のある攻撃を防ぐことができます。
ChatGPTで五目並べを作成する
まあ、少々無理かなと思いましたが、取り合えず、ChatGPTに依頼してみました。
【ChatGPTへの質問】ブラウザで動作する五目並べのプログラムを作成して、13路盤でお願いします、
【ChatGPTの回答】
ブラウザで五目並べを作成するには、JavaScriptとHTMLを使用することができます。
以下は、13路盤の五目並べを作成するための簡単なコード例です。
・・・・・・・・・・・
必要に応じて、対戦、勝敗等を組み込んで下さい。
お願いして、勝敗決定機能を組み込んでもらいました。
○最終的にChatGPTが生成した五目並べプログラムは以下です。
nbsp; 凄い勝ち負け判定まで組み込んでくれました。
ChatGPTが作成したプログラムで、1点だけ不具合がありました。
碁盤の背景色が「白色」なので、白石を置くと、何も表示されませんでした。
CSSの以下の1箇所のみ修正しただけで、動作しました、本当に「凄い」。
※whiteクラスで、「white」を「yellow」に修正。
【修正前】 .white { background-color: white; border-radius: 50%; } 【修正後】 .white { background-color: yellow; border-radius: 50%; }
ここでChatGPTが作成した「五目並べ」を体験できます。
勝利すると、ポップアップメッセージが表示されます。
エピローグ
・どうでしょうか、ChatGPT、とても便利ですね、ChatGPTに何をさせようか、日々考えています・・・。
・次回は、ChatGPTをより便利に使うために、ブラウザChrome専用ですが、便利な拡張機能を、幾つか紹介します。
著者:志村佳昭(株式会社トリニタス 技術顧問)