版数: 1.2  |  更新日: 2026-06-07

基本設計

1. 目的

競馬向け馬体診断アプリケーションにおいて、フィードバック収集・AI 再学習・ アプリ再ビルド・端末配布までを含む継続運用可能なインフラを構築・検証する。 アプリケーションの診断精度そのものは本プロジェクトの検証対象外とする。

2. システム構成(論理)

領域コンポーネント役割
クライアント モバイルアプリ(スタブ) 撮影(または画像選択)、端末内推論、FB 送信
エッジ Cloudflare Edge + cloudflared 内向き FB 通信を Edge で受け、Tunnel 経由で自宅 PC の FastAPI へ中継(CGNAT 回避)。PoC の poc-api-tunnelapi.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. 段階的検証方針

  1. Phase ① Android: プラットフォーム非依存のパイプラインを確立(Ubuntu ランナー、TFLite、APK 配布)
  2. Phase ② iPhone: ①の手順・構成を踏襲し、macOS ランナー・CoreML・TestFlight を追加

5. 非機能要件

項目要件
運用性手順書(HTML runbook)に従い、第三者が再現可能であること
コスト①では Apple Developer Program 不要。GHA 無料枠内での運用を目指す
セキュリティFB データに個人情報・位置情報を含めない。Tunnel 経由の HTTPS 通信
更新頻度月次 1 回のモデル更新・配布を想定

6. 技術スタック(検証時)

レイヤー① Android 検証② iPhone 検証
クライアントFlutter(スタブ)Flutter または Swift(既存資産に合わせる)
オンデバイス MLTensorFlow LiteCoreML
APIFastAPIFastAPI(共通)
DBPostgreSQL または SQLite同上
CI/CDGitHub Actions(ubuntu-latest)GitHub Actions(macos-latest)
配布APK artifact + adbTestFlight