はじめに
新しい商品の価格を上げたり下げたりしたとき、買い手の反応はどう変わるのか。
市場調査に進む前に、こうした仮説を手軽に試したいと考えて「Japan Scale」というWebサービスを作りました。
1,000人の架空の住民が暮らす街で、価格や認知率を変えて反応を眺めたり、住民に話を聞いたりできます。
この記事では、サービスの目的と使い方を紹介したあと、判断用のAI「Jev」を街の行動とインタビューの2か所に使った点を説明します。
中心は、Jevをどこにどう組み込んだかです。Jev自体の仕組みや性能の解説ではありません。
Japan Scaleとは
Japan Scaleは、1,000人の架空の住民に商品企画の仮説をぶつけるシミュレーターです。
市場調査の代わりではなく、市場調査の前に問いを具体化するための道具です。
現在は検証版として、無償で公開しています。
ただし、Jev方式で使うAIの利用料金は、利用者ご自身のAPI契約に基づいて発生します。
今後はこの検証版をもとに住民データの量と精度を高め、企業向けのサービスとして提供する予定です。
できること
- 商品の価格と認知率を変え、住民ごとの反応(未認知、認知、興味、購入)を見比べる
- 地域、性別、職業、年齢、年収で住民を探し、1〜4人にテキストで質問する
- あまり意味のない機能ですが…、全国8地域の架空の街(場所は計692か所)で、住民の時間割や動きを眺める
使い方は3ステップ
- 試したい条件を置きます。商品名、価格、認知率を設定します。
- 反応と住民を眺めます。反応の違いを確認し、気になる属性の住民を探します。
- 次の問いを持ち帰ります。インタビューや比較から、実際の調査で確かめる仮説を整理します。
ログインはGoogleアカウント、または確認済みのメールアドレスで行います。
Japan Scaleは、売上や市場規模を予測するツールではありません。
- 住民の氏名、属性、街の設定は、すべて架空のデータです。
- 反応は固定ルールによる試行です。実在の消費者調査ではありません。
- 統計的な代表性や予測精度は検証していません。
- インタビューで表示される確信度は、正解率や購入確率を示す値ではありません。
既定はルール方式、Jevは選んだときだけ
Japan Scaleには2つの動かし方があります。
画面の表示とは次のように対応します。本文では、左側を「ルール方式」、右側を「Jev方式」と呼びます。
| ルール方式(既定) | Jev方式 | |
|---|---|---|
| 街の画面の表示 | JSON時間割 | Jevが行動を判断 |
| インタビュー画面の表示 | ルールベース | Jev&LLM |
| 街の行動 | JSONに保存した時間割どおり | Jevが行き先を判断 |
| インタビューの方針 | 固定ルールで決まる | Jevが方針を判断 |
| APIキー | 不要 | 利用者自身のキーが必要 |
| 外部AIの呼び出し | なし | あり(明示的に選んだときだけ) |
APIキーがなくても、街のシミュレーション、住民台帳、インタビューはルール方式で動きます。
Jevを使った実際の動きを見たい場合は、AI接続設定でTypeSafe(Jev)のAPIキーと、Azure OpenAIまたはOpenAIのAPIキーを登録してください。
登録後に方式を「Jev&LLM」へ切り替えると、街の行動判断とインタビューの方針判定にJevが使われます。
登録したキーは暗号化して保存し、画面に再表示することはありません。
JevはTypeSafeが提供するSystem Oneモデルの1つで、選択肢から判断を選び、確信度を返す外部APIです。
詳しくはTypeSafeの公式ドキュメントを参照してください。
Japan Scaleは、この「選択肢から選ぶ」使い方に絞って呼んでいます。
Jevを使った2か所
街の住民の行動判断
1つ目は、街を歩く住民の行動です。
ルール方式では、住民はJSONの時間割のとおりに動きます。
Jev方式では、決まった動きではなく、その都度、次の行き先をJevが選びます。
街の画面で行動方式を切り替えます。「JSON時間割」と「Jevが行動を判断」のどちらかです。
Jevを選べるのは、必要なキーがそろっている場合だけです。
仕組みは次のとおりです。
- 判断の対象は、表示中の地域の住民です。街の時間で約1時間ごとに、判断をやり直します。
- 判断材料は、曜日、時刻、住民の属性、現在の行き先、時間割です。
- 選択肢は、その住民の自宅、職場、学校、時間割上の場所、よく行く場所のうち、その時刻に営業中のものです。
- 時間割は参考であり、必須ではありません。
- Jevには、用事、食事、娯楽、仕事や学校、帰宅などから、もっともらしいものを選ぶよう指示しています。
- 偏った推定を避ける指示も入れています。性別だけで好みや行動を決めつけない、年齢だけで病気や通院を推定しない、というものです。
Workerが送る指示の一部を、ソースの英文のまま抜粋します。
instructions: `Choose the next destination for state.residents.${key} only. …略…
The schedule is context, not mandatory: choose plausible errands, food, recreation, work/study or home.
Only listed open destinations are valid. …略…
Do not infer preferences or restrict activities solely from gender.
Do not assume illness or a medical need solely from age.`,
判断が切れた住民は、1回のリクエストに24人ずつまとめ、2本を並行して処理します。
表示地域の人数は、最大で関東の345人ほどです。
Jevの行き先がまだ決まっていない住民は、時間割で動きます。
再判断を待つ間は、前回の行き先が営業中であれば、それを使い続けます。
接続に失敗したときは、画面に通知して時間割の方式へ戻ります。
Jevの回答は、そのまま信用せずに検証しています。
候補にない行き先や、0〜1の範囲外の確信度が返ってきた場合は、エラーとして扱い、反映しません。
インタビューで答える方針の判定
2つ目は、インタビューです。
住民に質問すると、住民は一人称で答えます。この回答の方針を、Jevが決めます。
方針は5種類です。
const criteria = {
positive: '前向きに受け止め、関心や期待を話す',
cautious: '条件や懸念を確認し、慎重に答える',
negative: '自分に合わない理由や困りごとを率直に話す',
neutral: '日常の経験や考えを中立的に説明する',
uncertain: '情報不足のため、分からない点や確認したい点を話す',
};
Jevには、住民の属性と商品、街で計算した反応、これまでの発言を渡します。
そのうえで、5つの方針から1つの選択と、0〜1の確信度を返してもらいます。
確信度が0.35未満のときは、方針を「情報不足」に倒します。
指示には、街で計算した決定的な反応(未認知、認知、興味、購入)と、過去の発言を尊重するよう入れています。
役割は分担しています。
- 方針の判断はJev
- 回答の文章化はLLM(Azure OpenAIまたはOpenAI)
Jevが選んだ方針と反応をLLMに渡し、LLMがその方針に沿った一人称の回答を書きます。
画面には、方式、方針、確信度、マップの判定を表示します。
確信度は、正解率や購入確率ではありません。
インタビューでJevやLLMへの接続が失敗したときは、エラーを表示します。自動でルール方式の回答に切り替わることはありません。
全体のアーキテクチャ
全体は、ブラウザ、Cloudflare上のWorker、外部のAIの3層で構成しています。
各層の役割は次のとおりです。
- ブラウザは、街の描画と操作を担当します。住民の動きや反応の集計は、ブラウザ側で計算して表示します。
- Workerは、画面の配信とAPIを1つにまとめています。住民データの読み出し、利用者の設定、行動判断、インタビューを受け持ちます。
- D1には、住民1,000人と街の場所のデータ、利用者ごとの設定を保存しています。
- ログインはFirebase Authenticationに任せています。データの読み出し、設定、行動判断、インタビューのAPIは、ログイン済みの利用者からの要求だけを受け付けます。
- 外部のAIは、Jev方式を選んだときだけWorkerから呼び出します。ルール方式では、外部のAIへの呼び出しは発生しません。
- 判断はJev、文章はLLMという分担にしています。街の行動判断はJevだけで完結し、インタビューではJevの判断をもとにLLMが回答文を作ります。
- マップの反応計算は、ブラウザとWorkerで同じ関数を使い、画面とインタビューで結果がずれないようにしています。
まとめ
Japan Scaleは、1,000人の架空の住民で、商品企画の仮説を市場調査の前に試すサービスです。
反応は固定ルールの試行であり、売上予測ではありません。
Jevは2か所に使っています。
- 街の住民の行動判断。時間割を参考に、営業中の候補から次の行き先を選びます。
- インタビューでの回答方針の判定。5つの方針から1つを選び、確信度を返します。
どちらも、利用者が自分のキーを登録して「Jev&LLM」を選んだときだけ動きます。キーがなくても、街のシミュレーション、住民台帳、インタビューはルール方式で試せます。




