版数: 1.2 | 更新日: 2026-06-07
基本設計
1. 目的
競馬向け馬体診断アプリケーションにおいて、フィードバック収集・AI 再学習・
アプリ再ビルド・端末配布までを含む継続運用可能なインフラを構築・検証する。
アプリケーションの診断精度そのものは本プロジェクトの検証対象外とする。
2. システム構成(論理)
| 領域 | コンポーネント | 役割 |
| クライアント |
モバイルアプリ(スタブ) |
撮影(または画像選択)、端末内推論、FB 送信 |
| エッジ |
Cloudflare Edge + cloudflared |
内向き FB 通信を Edge で受け、Tunnel 経由で自宅 PC の FastAPI へ中継(CGNAT 回避)。PoC の poc-api-tunnel(api.dammy-otoko.com)を再利用 |
| サーバー(自宅 PC) |
FastAPI / DB / Storage / AI Worker |
FB 保存、再学習、新モデル生成、Webhook 送信。ホストは Windows 11 PC(2026-06-07 〜)。開発経緯は 開発ログ |
| CI/CD |
GitHub Actions / Fastlane(②のみ) |
モデル同梱アプリの自動ビルド・配布 |
| 配布 |
APK 直配布(①)/ TestFlight(②) |
管理下端末へ更新を届ける |
3. 検証スコープ
| 区分 | 対象 | 対象外 |
| インフラ |
FB 受信、再学習トリガー、GHA ビルド、配布、Webhook 連携 |
— |
| アプリ |
スタブによる通信・ビルド同梱の確認 |
診断精度、UI/UX の本番品質 |
| AI |
モデルファイルの更新・同梱フロー |
学習アルゴリズムの精度検証 |
4. 段階的検証方針
- Phase ① Android: プラットフォーム非依存のパイプラインを確立(Ubuntu ランナー、TFLite、APK 配布)
- Phase ② iPhone: ①の手順・構成を踏襲し、macOS ランナー・CoreML・TestFlight を追加
5. 非機能要件
| 項目 | 要件 |
| 運用性 | 手順書(HTML runbook)に従い、第三者が再現可能であること |
| コスト | ①では Apple Developer Program 不要。GHA 無料枠内での運用を目指す |
| セキュリティ | FB データに個人情報・位置情報を含めない。Tunnel 経由の HTTPS 通信 |
| 更新頻度 | 月次 1 回のモデル更新・配布を想定 |
6. 技術スタック(検証時)
| レイヤー | ① Android 検証 | ② iPhone 検証 |
| クライアント | Flutter(スタブ) | Flutter または Swift(既存資産に合わせる) |
| オンデバイス ML | TensorFlow Lite | CoreML |
| API | FastAPI | FastAPI(共通) |
| DB | PostgreSQL または SQLite | 同上 |
| CI/CD | GitHub Actions(ubuntu-latest) | GitHub Actions(macos-latest) |
| 配布 | APK artifact + adb | TestFlight |