出題する問題データベースを作成 ~ChatGPTと一緒に一問一答アプリを開発した話12~

eyecatch-wchatgpt-12

「一問一答アプリ × ChatGPT」

先日、ChatGPTを活用して一問一答アプリケーション「情報1 一問一答トレーニングGYM」を開発したことをお伝えしました。

▶︎こちらの記事で紹介しています。

iqatlogo2【ChatGPTと開発】高校「情報1」一問一答アプリ

私が開発したこのアプリは、ChatGPTの力を借りながら、実装していきました。

この記事では、一問一答アプリ × ChatGPTの開発の舞台裏や、実際の活用方法について詳しく解説します。

今回は

  • 出題する問題を作成(問題データベース作成)

を実装するにあたって、どのように役立ったのか、その様子を紹介します!

ぜひこのシリーズの記事をチェックして、一問一答アプリの新たな魅力とChatGPTとの相乗効果を体感してください!

目的

img-4372v2

もともと、出題するクイズ(問題)のストックはデータベースとして作っていましたが、解答に際しての選択肢の質に頭を悩ませていました。

クイズとしての質を担保するためにも、全然関係のない語句が選択肢に並ぶのではなく、似た意味や関連語句を用意して、回答者を惑わせたい。

しかし、たとえば「プログラミング」という語句が解答の問題で「個人情報保護法」「ブレーンストーミング」「ピクトグラム」といった語句が他の選択肢として登場するような状況でした。

コトゼニ
コトゼニ

全然関係ない語句が並ぶ問題が多く、どうしようかと悩んでいました

同じ「情報1」の範囲とはいえ、「明らかに違うだろう」という選択肢ばかりだと、問題としての質が低くなり、解き応えがないものになってしまいます。

しかし、各問題に対して解答ではない選択肢を3つ挙げるのはなかなか骨の折れる作業です。

そこで、chatGPTに問題を作ってもらおうと企てたのです!

対話履歴10(DB作成1)
コトゼニ
コトゼニ

「SMTP」を解答とする4択クイズを作成してください。回答は下記Markdownに則って返してください。

◆Markdown

|問題文| 解答 | 選択肢1 | 選択肢2 | 選択肢3 | 選択肢4 | 選択肢1の解説 | 選択肢2の解説 | 選択肢3の解説 | 選択肢4の解説 | |——|——|——|——|——|——|——|——|——|——|

| td | td | td | td | td | td | td | td | td | td |

chatGPT
chatGPT

以下が「SMTP」を解答とする4択クイズです。

問題文解答選択肢1選択肢2選択肢3選択肢4選択肢1の解説選択肢2の解説選択肢3の解説選択肢4の解説
電子メールの送信に使われるプロトコルは?SMTPHTTPFTPSSHSMTPはSimple Mail Transfer Protocolの略で、電子メールの送信に使われるプロトコルです。

見た感じは悪くありませんが、選択肢の解説が抜けてしまっています。

このように欲しい回答が意図通りに返ってこないケースがしばしば。

今回、chatGPTを用いてDBを作成しましたが、実はなかなか大変でした…!!!

上記のように不備のある回答や、思い通りに返してくれない回答が5回に1回くらいは発生し、プロンプトに頭を悩ませることになりました。

特に今回は、chatGPTから戻ってきた回答をcsvファイルでまとめるため、転記作業が必要となります。

そのため、欲しい回答の形式を的確・正確に指示しなければなりません。

試行錯誤を繰り返した結果、以下のプロンプトの場合だと転記しやすい回答を戻してもらうことができました。

対話履歴11(DB作成2)
コトゼニ
コトゼニ

「配列」を解答とする4択クイズを表形式で難易度を少し上げてもう一度作成してください。選択肢はすべて関連する単語にしてください。そのあと、それぞれの選択肢を20字程度で解説してください。

chatGPT
chatGPT

以下に「配列」を解答とする4択クイズを作成します。

問題文選択肢1選択肢2選択肢3選択肢4
プログラミングで、複数のデータをまとめて扱うデータ構造は?ランダム分岐配列ループ

  • 選択肢1「ランダム」:プログラム上でデータをランダムに生成するための関数などがありますが、配列とは直接関係がありません。
  • 選択肢2「分岐」:プログラムの制御構造の一つで、ある条件によって処理を分けることを指します。配列とは直接関係がありません。
  • 選択肢3「配列」:プログラミングで、複数のデータをまとめて扱うためのデータ構造です。要素を添字で指定してアクセスすることができます。
  • 選択肢4「ループ」:プログラムの制御構造の一つで、ある処理を繰り返すことを指します。配列とは直接関係がありません。

問題部分と解説部分が分かれることになりましたが、この形式で戻してもらえると比較的、転記もしやすい状態になりました!

そうして転記作業を繰り返し構築できたDBの一部がこちら。

questionTable

どのようなクイズになっているか、ぜひぜひアプリケーションでお確かめください!

情報1 一問一答トレーニングGYM

まとめ

今回の開発作業で

  • 出題する問題を作成(問題データベース作成)

を実現することができました。

他の要件も満たす実装をどんどんと進めていきます!

ChatGPTを利用すると開発がグンと楽になりますね!ChatGPTの可能性を体験してみてはいかがでしょうか?

最後まで読んでいただきありがとうございました。

この記事が少しでも参考になれば幸いです。

それではまたここで会いましょう!

ブログランキング・にほんブログ村へにほんブログ村

ブログ村に参加中です。上のバナーをクリックいただくだけで当ブログにポイントが入ります。いつも応援クリックありがとうございます。

Twitter

Twitter やってます。

新着記事のお知らせをしていますのでぜひフォローしてください!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA