みちよみ 開発の記録 ← API wiki 設計思想 OpenAPI 日本語 / English

みちよみ 開発の記録

このデータ基盤がいつ・何から作られたかの記録。2026-08-23版。

経緯

みちよみは、都知事杯オープンデータ・ハッカソン2026の応募作として2026年7月16日に着手し、提出日の8月22日までの38日間で作られました。最初の言語化がデータベースに記録されたのは着手当日、プロダクト名「みちよみ(michiyomi)」が決まったのは締切の11日前、ドメイン michiyomi.dev を取得したのは提出の前日です。

期間より前から存在したのは、素材である市民撮影の公開街路画像(Mapillary、撮影は2003〜2026年で99.95%が2014年以降)と、机の上の機材、汎用の自作ツール(来歴管理CLI)だけです。言語化パイプライン・データベース・API・MCP・各UIと、名前・ドメインを含むみちよみ自体は、すべてこの38日の産物です。

このページの日付と件数は、作業ログと各SQLiteデータベースの集計(2026-08-23時点)に基づきます。

タイムライン

日付(2026)できごと
7/16着手。Mapillaryメタデータを364万シーンに集約、モデル選定、最初の言語化プロンプト(約2KB)を作成。同日中に世田谷区で最初のL1言語化がデータベースに記録される
7/17プロンプトをv3系へ全面改稿(この日だけで4版)。情報量が初版の3〜5倍に
7/22ハッカソンにエントリー。方向規約(方角語の禁止・左右はカメラ基準)を導入したプロンプトv3.4を採用
7/27–28世田谷区パイロット全量完了 — L1 29,764地点・L2 3,048区間・L3 152グループ。主語を「通学路リスクマップ」から「視覚の言語化データ基盤」へ転換
7/31–8/1渋谷区・新宿区へ展開(L1 35,010地点)。REST APIの骨格(Cloudflare Workers + D1)がローカルで動く
8/4中央区(銀座)へ展開(L1 13,043地点)
8/9言語化エンジンをクラウドから自宅GPU 1枚のローカルVLM(Qwen系)へ移行。同時に「世代(generation)」による来歴管理をAPIに実装
8/10–1123区全域を道路チャンク化(94,232本)し、経年変化検出6,197グループを完遂
8/11–12経年変化の全5,798主張に、文脈を分離した別セッションによる反証裁定を実施
8/12人間向けのカルテUIを1日で作り、同日中に廃番。「AIが現実を読むための基盤」に再定義し、MCPサーバとして再構築。「michiyomi」の名前が決まったのはこの日
8/14優先エリアの言語化が完走(135,594シーン)
8/15–22被覆優先の区単位キューで残りの区を連続処理(第1〜5陣)。エンジンをQwen3.8系へ刷新し最大2,667枚/時に
8/21michiyomi.dev を取得し、本番公開(release 2026-08-21-r1)
8/22全量588,220シーンの release 2026-08-22-r1 を公開し、ハッカソンに提出

提出後も残りの区の処理は自宅GPUで継続中で、8月末に23区全域の収録完了を見込んでいます(現在の収録状況)。

作り直しの記録

38日の大半は、書いては壊す作業でした。主な作り直しを残しておきます。

  • 言語化プロンプトはL1で12版(初版2,061バイト→最終13,026バイト)、L2で6版。検証の結果捨てた版もあります — 精度向上が見込めた地図情報の注入案(v3.5b)は「言語化は純粋視覚のみ」の原則を守って棄却、軽量スキーマ案は「1.5倍速」の見積りが実測1.06倍で棄却されました。
  • 出力スキーマの規約は運用中に増えました。「右」はカメラの右であって東ではない(方角語の禁止)、瞬間のカウントは書かせない、「なし/不明/画角外不明」を区別する — いずれも初版には無く、失敗から追加された規約です。
  • データベースは初代の設計ミスを引き継いでいます。初代には「どのプロンプト版で生成したか」の列が無く、実行日から版を推定するはめになりました。この失敗が、2代目の全行来歴(モデル・プロンプト版・生成日時)と、その後の「行来歴・世代・リリース」の3層管理につながっています。
  • プロダクトの形は3回変わりました。通学路リスクマップ(7月中旬)→ 視覚言語化データ基盤(7/27)→ 人間向けカルテUI(8/12朝)→ AI向けMCP基盤(8/12夜)。カルテUIは完成した当日に廃番です。
  • 撤回した分析もあります。無電柱化の国道・都道比較(高架区間との交絡)、経年変化の年差仮説(検定で棄却)、コスト試算の検算ミス — いずれも作業記録に撤回として残しています。

費やした計算資源

系統何に使ったか規模
クラウドVLM
GPT-5.6系(Codex CLI)
L1初期世代 77,676シーン / L2区間 15,666本 / 経年変化検出 6,197グループ / 反証裁定 5,798主張約30億トークン(作業ログの平均消費からの概算)
ローカルVLM
Qwen系 × 自宅GPU 1枚
L1全量 588,220シーン(8/9〜8/21)49.5億トークン(データベース実測)
補助
Gemini / Claude ほか
同一48枚でのモデル比較ベイクオフ、デモ候補の画像精査、実装・レビュー集計なし

合計で約80億トークン。同じ量をクラウドの従量課金で買えば、単価の安いモデルを選んでも数十万円規模になる計算です。実際には、定額サブスクリプションの週次上限に張り付く運用が続き(上限到達で追加クレジットを買い足した週もあります)、8月9日からは自宅のGPU 1枚に切り替えることで、全量処理を成立させました。

クラウド・ローカルの2世代を同一シーンで保持しているのはこの経緯によるもので、世代間の回帰比較にそのまま使っています(設計思想 原則3.3)。

確かめ方

このページの記述は、次の方法で外側から確認できます。

  • 生成の来歴 — 全シーンのAPI応答に、言語化したモデル名と世代が付いています(model / generation)。世代ごとの件数とプロンプト版の分布は GET /v1/generations、リリースの来歴連鎖は GET /v1/provenance が返します。
  • 素材の撮影日 — 各シーンはMapillaryの元画像へリンクしており、撮影日時はMapillary側でも確認できます。
  • 公開の履歴 — 全API応答のsnapshotフィールドが、どのreleaseへの問い合わせかを示します。最初の公開releaseは 2026-08-21-r1 です。