クイズって楽しいですよね
子供のころ休日の昼間にボーッと見ていたアタック25、試験直前に隣の席の友達と出し合った一問一答、一昔前に流行った早押しクイズのスマホアプリ、クイズって何でも楽しいですよね。
僕もそんな楽しく思い出に残るクイズ体験を世の中に届けたく、クイズアプリを作りました。ぜひ遊んでみてほしいです。
嘘です 悪ふざけです
もちろんそんな高尚な考えはないです!なぜならここは毎年恒例クソアプリアドベントカレンダーなので!!10周年おめでとうございます🎉🎉🎉 心からお祝い申し上げます!
今回作ったのはwikipediaの記事からクイズを作成するアプリです。名前はスマブラの情け無用組手から取ってます。出題されるのは例えばこんな問題。
...ザンビアしか分かりませんね。ザンビアもザンビアという名前しか知りません。ちなみに正解は 『Black Power』 です。
先日遅ればせながら知ったのですが、こちら(http://ja.wikipedia.org/wiki/Special:Randompage )のURLにアクセスすると日本語版wikipediaのランダムなページに飛べるようです。我々には今やLLMくんがついています。つまり、アクセスするたびにこのURLから記事を取得しLLMにクイズを作ってもらうことで、半永久的にランダムなクイズに挑戦することができるのです。
お察しの通り、出題範囲はwikipediaの全記事という科挙が泣いて逃げ出す仕様なので、基本的にほぼ分からないという仕上がりになっています!クソで嬉しいですね〜!
趣深きクソクイズをあなたへ
毛利氏の家臣の主君の名字は毛利
何だよこれ絶対わかんねえじゃんよと乱暴に問題をめくっている中、僕はこの問題も考えもせずに諦めて答えを見ました。愕然としました。謎の人物「国司就連」に関するこの問題は取り問だったのです。免許試験の最後のイラスト問題を外したようなものです。
Groq使ってみた
今回の仕組みを作るうえで、作問にLLMは必須です。アイディアはあるけどクソアプリでGPTやClaudeのAPIの料金払うのもな...。と思っていたら、このGroqはどうやら現時点ではある程度無料で使えるようだったので利用させてもらいました。
モデルはllama-3.3-70b-versatile
です。多少ブレがあるようには感じましたが(無料枠だからかな?)、謳っている通り速いときは爆速でしたし、response_format
でjsonを指定することもできたので普段使っているGPTのクライアントと同じ使用感で使えて満足しています。
ただ、毛利クイズから察せるとおりこのモデルは日本語が得意ではないようです。この点はクソアプリなので寧ろ好意的に受け止めることにしました。また、無料枠なので開発中から何度もrate limitに引っかかっています。今はパブリックなので、このアプリはおそらく同接数人でくたばります。クソアプリなのでこんなところも愛おしいですね。エラーハンドリングはガバガバでやらせてもらってるので、ローディング終わらなそうだったら再読み込みしてみてください。無料で使わせてもらえることに感謝🤲
展望
言語を英語にするか、4o-miniかsonnet3.5あたりの日本語が上手なモデルにすれば割とまともなものになる気がします。生成されたクイズを毎度DBに保存するようにして、クエリにidをつければ呼び出せるとかにした上でSNSでのシェア機能つけたら楽しそうですね。皆様のコントリビュートお待ちしております。クソアプリなのでレビューしないでマージします。
ここまで読んでくれてありがとうございました。
それではこのクイズでお別れしましょう、メリークソスマス!🎄🎄
余談
「ソースを見る」の遷移先をブルドッグソースの公式にしてやろうかと思ったけど流石にクソだったのでやめた。