本記事は 2026/02/01 ~ 2026/03/01 の間毎日 AI アプリケーション開発(AI を搭載したアプリ開発 or AI を使用した開発)をテーマに 30 days AI challenge を行う 4 日目のブログポストです。
今日はタイトルの通り、AI 乗車位置ナビゲーターアプリを作りました。
電車に乗るときに「どの号車、どの扉から乗るべきなんだろうか、できれば降車駅の階段近くだとスムーズだよなぁ」と思うことが良くあります。皆さんも、最寄り駅やよく利用する駅であればいつも乗る定位置があり、ここは混むから避けようという考えになると思います。
今回作ったものは、AI を使ってどの位置で電車に乗るべきかを教えてくれるアプリとなります。
アプリの概要
見た目はシンプルです。
乗車駅と降車駅、路線を選択し、検索ボタンを押すことで AI がどの位置で乗るべきかを教えてくれます。


乗車位置の図も表現してくれるようにプロンプトで指示しているため、そこそこわかりやすい結果となっています。
技術観点
今回の実装の裏側としては、ほぼ Gemini 君に丸投げしています。
日本の電車情報、路線情報を取得する API も無料公開があるようなので試してみましたが、うまく路線情報が取得できず、今日中にデバッグが終わらないと判断し AI に代替させています。
欲を言えば、乗車駅、降車駅、路線にユーザーが文字を入力する際に予測変換で駅名や路線名を表示する実装にしたかったです。これは API を投げて路線情報を取得することで実装できると思いますが、API をたたいてすべての路線情報を取得した後、そこから対象の駅名を表示するという実装にすると恐ろしくメモリキャッシュを使いそうですし、そもそも全駅の情報を取得するのは現実的ではないですね。
これを実装するとなると、東京、千葉、など範囲を限定することで解決するかもしれませんが、そのあたりの実装はあきらめています。
そのため、ユーザーに乗車、降車駅の入力を任せ、そこから路線名を AI に出力してもらい、路線名を選択する実装となります(駅名から路線名の検索くらい API でできたのでは?と今記事を書きながら思っています)。
プロンプト投げている箇所はこんな感じです。
try
{
var prompt = $@"{selectedFromStation}駅から{selectedToStation}駅へ移動する場合に考えられる路線名を5件以内で列挙してください。nn出力は路線名のみを箇条書きで返してください。";
var response = await GeminiService.GetChatResponseAsync(prompt, new List<Google.GenAI.Types.Content>());
lineOptions = ParseLineOptions(response);
}
~省略~
try
{
var prompt = $@"{selectedLine}の{selectedFromStation}駅から{selectedToStation}駅に向かう場合、
どの号車のどの扉から乗ると、降車時に階段やエスカレーターに最も近いかを教えてください。
~その他プロンプトの続きと実装ごにょごにょ~
}
なお、今回の実装は Razor ファイル内に 200 行程度の実装で、api 呼び出しをしていないので実装としてはシンプルです。
これを api 呼び出しにすると別途 cs ファイルを作り、そこで API リクエストを書いてその結果をパースしたり使えるように修正したりと実装が広がってしまいます。API 呼び出しをすることでより正確性は担保できますが、個人プロジェクトやあいまい性を許容できるようなアプリケーションであれば今回のように生成 AI が持っている一般情報で実装が可能となります。
ちなみに、路線 API を使った場合はプラスで 300 行ほど追加される想定でした。
※AI はどの号車に乗るべきかという情報はどこから学んだのだろうか、そもそもこの結果は正しいのか。。正しいかは明日以降実際に体験してこようと思います。
おわりに
今日の実装もシンプルでした。
ただし、4 日間 AI アプリを作ってきた中で、今日のアプリが一番使える(汎用的な)アプリかなと思います。
生成 AI が普及した時に、私が真っ先に AI を使った目的がこの “どの号車にのればいいんだ?” というものでした。その当時、AI の結果がかなり正確で、降車した目の前に階段が表れて感動したことを今でも覚えています。
皆さんお気づきとは思いますが、通常の対話型の AI で今回のような乗るべき号車を確認する場合と、今回のアプリとの使い方はさほど変わりません。システムプロンプトを用意しておいて、駅と路線を入れることでおよそ同じような結果が出てきます。
今更ですが、生成 AI を裏で動かすといっても今行っていることは結局対話型 AI と会話しているにすぎないので、革新的なことは全くやってないです。
最近 AI 限定の SNS が話題になりましたが、アイデアとしては複数の AI がそれぞれ対話し合って何かを生み出す、というコンセプトも面白そうです。現時点では Gemini の無料枠があるので Gemini の実装にこだわっていますが、できれば複数 AI の連携もいずれ手を出したいです。
今日はこの辺で、閲覧いただきありがとうございました!明日もお願いします。

コメント