4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Jevで水平思考クイズのWebアプリを作ったよ【ウミガメのスープ】

4
Last updated at Posted at 2026-09-20

Jevを使ったWebアプリを作ったよ

ここ最近自分のTLでは、新しいAIモデルである Jev が盛り上がっている。
このJevを使って、「ウミガメのスープ」でお馴染み、水平思考クイズができるWebアプリを作ってみた。
以下から自由にプレイできる。

  • X (Twitter)にもツイートしました。

この記事では、このアプリを作った経緯や実装について詳しく説明する。

Jevとは?

Jev自体の説明は、すでにいろんな場所でされているのでざっくり。

JevはTypeSafe AIという企業が公開したAIモデル。
この企業の創業者であるDiogo Almeida氏は、元OpenAIの人である。

Jevは2026年9月15日にアーリーアクセスで公開されたばかり。
自分も昨日さっそくWaiting listに登録し、今日使えるようになった。
乗るしかない、このビッグウェーブに!

Jevの特徴

これまでのLLM(GPTとかClaude)とかとの大きな違いは「文章を生成しない」こと。
ChatGPTとかをイメージすればわかりやすいけど、LLMは基本こちらの自然言語に対して、自然言語で応答する。
これは柔軟な文章生成ができる一方で、型にはめた回答が難しかったり、ハルシネーションしやすかったりする。

一方でJevも、入力を自然言語で受け取る点は同じ。
しかし、出力に関しては「Yes/No」とか、「複数選択肢から適切なものを返す」など、回答形式が決まってる
これにより、柔軟な文章生成はできないものの、

  • 通常のLLMより安い
  • 通常のLLMより速い
  • 型が決まってるので再現性が高い(ハルシネーションしづらい)

といった特徴がある。
確信度のようなスコアも同時に出してくれるので、通常のLLMでは曖昧になりがちな
「回答に自信を持っているか?」
がわかるのも良い点。

簡単にいえば、Jevとは
判断に特化した、速くて安いLLM
といったところだろうか。

水平思考クイズとは?

水平思考クイズは、出題者が提示した一見不可解な状況について、回答者が「はい/いいえ」で答えられる質問を繰り返し、隠された事情を推理するゲーム。

と、堅苦しい説明をしてもわかりづらいので、具体例で考えよう。
水平思考クイズで一番有名なのが「ウミガメのスープ」だ。
ウミガメのスープのクイズでは、以下のような問題文が最初に提示される。

ある男が、レストランで「ウミガメのスープ」を注文した。
ひと口飲んだ男は、店主に「これは本物のウミガメのスープですか?」と尋ねた。
店主が「はい、本物です」と答えると、男は代金を払って店を出て、その夜に自ら命を絶った。
いったい、なぜ?

ここで、回答者はYes/Noで答えられる質問をする。

「男は以前も同じ味のスープを飲んだことがありますか?」
「男が絶望したのは店主の回答を聞いた後ですか?」
「男は複数人で食事しましたか?」

などなど。
「なぜ男は絶望したのですか?」
のようなYes/Noで答えられない質問をしてはダメ。

答えがわかったら、真相を当ててみよう。
外した場合でも、また質問に戻ることができる。

...といった具合だ。
かなり有名な問題なので答えを知ってる人も多いかもしれないが、ネタバレを避けるためここでは伏せておこう。
気になる人はググればすぐにでてくるし、実際に僕が作ったアプリから確かめてみて欲しい。

水平思考クイズの実装は、意外と難しい

さて、このぱっと見単純な水平思考クイズ。
有名な問題に限って言えば、アプリの実装は簡単そうに思える。

なぜなら、Yes/Noで答える + 回答の「正解/不正解」を当てることができればいいからだ。
しかし、これを作るのは意外と難しい
以下では、なぜ水平思考クイズがJevに適しているのかを考えていこう。

ルールベースの場合

例えば正解の文章を定義しておき、「その文章と一致すれば正解」のようなルールベースを考えるとしよう。
これはかなり難易度が高い。

というのも入力が自然言語だからだ。
例えば、まったく同じ意味でも以下のように複数の入力があり得る。

「男は過去に同じスープを飲んだことがある?」
「以前に同じ料理を食べたことがありますか?」
「その男は昔同じスープを飲んだ?」

「クイズミリオネア」のような4択問題であれば問題ないが、入力が自然言語になると意外と難易度が上がるのだ。

ChatGPTとかに答えさせるのは?

実は自分は以前、ChatGPTに水平思考クイズを答えさせたことがある。
しかし、結論から言えば「なんか違う」という感想だった。

ChatGPTが得意なのは文章の生成だ。
「水平思考クイズとはなんですか?」
「この文章はつまりどういうこと?」

などのプロンプトであれば、スラスラ答えてくれるだろう。
しかし、「Yes/Noだけ答えさせよう」と思った場合には、事前にルールをしっかり叩き込んでおかねばならない。
またハルシネーションを起こしたり、回答がどれくらい正しいのかも定かではない。
GPTなどのAPIを使う場合はコストもかかる。

BERTとかでfine-tuningするのは?

GPTが生成に特化したモデルであれば、文脈理解に特化したモデルを使う手もある。
例えばGPTと同じTransformerをベースとしたモデルである、BERTを考える。
BERTを使えば、

  • どの入力にたいして、どれが正解か

といったデータを準備してfine-tuning (つまり追加学習)することで、同じようなことはできるだろう。
しかし、データを準備してfine-tuningするのは面倒である。
精度がとにかく重要な場面はさておき、水平思考クイズのようなカジュアルなゲームでそこまでしたくない。
そして、水平思考クイズはウミガメのスープ以外にもいくつもの種類がある。
(最初に僕が作ったアプリでは、5問)

それらすべてにおいてfine-tuningするのは大変だし、新しい問題を追加するたびに多くの手間がかかるのはかなりダルい。

Jev × 水平思考クイズは相性が良い

そんなわけで、上記の課題のすべてをJevが解決してくれた。
Jevを使えば

  • 安いAPI料金で
  • 決められた型を守って
  • fine-tuningも必要とせず
  • カジュアルに、大量の回答を

答えることができる。
これは素晴らしい!

ちなみに、今回「Jevと水平思考クイズは相性が良いのでは?」と思ったのは、以下の投稿を見かけたことがきっかけだ。

相手の想像した人物・キャラを「Yes/No」の質問を繰り返して当てていく「逆アキネイター」。
これも面白い発想だ。

逆に、何がJevに向かない?

前述のように、Jevは得意な領域がはっきりしている。
すべてのケースで万能なわけではないことに注意が必要だ。

例えば、「選択肢があらかじめ決まっている」ようなケースだと、ルールベースで処理できる。
文章生成がメインのタスクであれば、OpenAIやClaudeのモデルを使う方がいいだろう。

Yes/Noの判断でも、例えば「病気の判断」「人材の採用判断」とかに使うのは危険だ。
Jevの利点は追加学習せずに、カジュアルにサクッと使える点にある。
病気の判断の場合は、精度が高いに越したことはない。
こういったケースであれば、学習データを少しでも多く集めて、より精度の高いモデルを構築するのが良い。
また、人間によるチェックも必須である。

実装内容

さて、Jevの話を中心に行ってきたが、実装面にも触れておこう。
今回はかっちりしたシステムではなく、完全に個人のお遊びで作ったものだ。

そのため、以下のような、できるだけ簡単な構成にした。

Web UIは素のHTML/CSS/JSのみを使い、(見ればわかるように)難しいことは行なっていない。
API側は、Pythonを使ってFastAPIで実装。
今回は有名な問題と答えを5つネットから取得し、puzzles.jsonとして置いておいた。
JevはAPIキーを指定して、FastAPI経由で回答とスコアを取得する。

デプロイ周りについて、こういったちょっとしたWebアプリを公開したいときはVercelが便利。
上記のような構成を考えてGitHubにpushするだけで、サクッとデプロイすることができる。

コーディングもAI エージェントで簡単にできるし、非常に便利な時代になった。
今回はお遊びなので、フロントはほぼ凝っていない。
(ドメインもvercelのままだし)

特に広告収入なども入れてないので、みんなが使えば使うほど僕のAPI利用料金がかかるだけの仕組みだ。
ただし、前述のようにJevは料金がめちゃくちゃ安い。
検証用にガンガンAPI叩いても、かかった金額は1円未満だった。

ちょっとしたハマりポイント

作っていてハマったのが、否定疑問文の扱い。
というのも、英語と日本語では否定疑問文の扱いが異なるのだ。
例えば、

「男はそのとき○○しませんでしたか?」

という質問をしたとする。

実際に男が○○していなかった場合、日本語では、

「はい、していません」

と答えられる。

しかし英語では、

「No, he didn’t.」

となる。

つまり、英語のYes/Noを単純に日本語の「はい/いいえ」に変換すると、否定疑問文では意味が逆になってしまうのだ。
自分は最初Jevへのプロンプトを英語で行っていた。
そのため、返答のYes/Noを日本語に訳してから画面に表示すると、本来の意図と逆になってしまうのだ。
そこでJevに渡す指示についても日本語にしたところ、この問題は解消した。

さいごに

Jevは使い所を選ぶが、とても面白いモデルだと思った。

個人的にはOpenAIやAnthropic、あるいは中国企業がすぐに似たようなモデルを出すんじゃないか?という気はする。
しかし、いずれにしても"Jev like"なモデルは今後選択肢の一つに入るのではないだろうか。

なお、アプリはしばらく公開しておく予定なので、ぜひ実際に遊んでみた感想をもらえると嬉しい。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?