Thor の AI 駆動のフルスタック
https://github.com/273Do/Thor
https://github.com/273Do/Thor-Web-App-Frontend
https://github.com/273Do/Thor-Web-App-Backend
本 web アプリは、iPhone のヘルスケアデータから睡眠パターンを推定・分析するWebサービスです。
-
アンケート回答 - 睡眠に関する3つの質問に答える
- スマホの充電タイミング
- 家の中でスマホを持ち歩くか
- 普段の就寝時刻
-
データアップロード - Apple ヘルスケアからエクスポートした XML ファイルをアップロード
-
歩数抽出 - XML から歩数データ(+睡眠データ)を抽出
-
睡眠推定 - 歩数データ+アンケート回答をもとに、日ごとの就寝・起床時刻を推定
-
結果表示 - 推定結果をチャートで可視化
- 就寝・起床時刻の折れ線グラフ
- 睡眠時間の棒グラフ
-
AIフィードバック - LLM( Ollama 経由)が睡眠パターンについてマークダウン形式のアドバイスを生成
本サービスは Apple ヘルスケアの XML エクスポートを利用するため、iPhone ユーザーを対象としています。Android など他のデバイスをお使いの方は、ヘルスデータを指定の形式に変換したうえで API を直接呼び出すことでご利用いただけます。
- Frontend: React + TypeScript + Tailwind CSS
- Backend: FastAPI (Python 3.12+)
- AI/LLM: Ollama (ホストマシン)
- インフラ: Docker Compose
- タスクランナー: Go-Task
- Coding Agent: Claude Code
- VSCode
- Docker
- 事前に GitHub で ssh key を発行して ssh 接続ができるよう準備してください。
こちらから Ollama をインストール
git clone git@github.com:273Do/Thor-Monorepo.git以下のコマンドを実行してollama/ 内に用意された LLM を読み込みます。
chmod +x ollama/setup.sh
./ollama/setup.shうまく読み込めると以下のように表示されますが、自作モデル(thor-*)はベースモデルの重みを共有して参照しているだけなので、ディスク容量が2倍になるわけではありません。Modelfile で設定したパラメータの差分だけが追加で保持されています。
NAME ID SIZE MODIFIED
gemma3:12b hogehogehoge o GB x seconds ago
thor-gemma3:latest fugafugafuga o GB x seconds ago
thor-llama3:latest piyopiyopiyo o GB x seconds ago
llama3.1:8b fofoofoofoof o GB x seconds ago
VSCode で Dev Container でプロジェクトを開きます。
backendディレクトリに事前のデータを格納するディレクトリを作成します。- 環境変数を作成します。
- 以下のコマンドでパッケージをインストールします。
task frontend -- pnpm i
task backend -- uv sync- 以下のコマンドでアプリを起動します。
task frontend:dev
task backend:devClaude Code を契約している場合はターミナルから以下のコマンドでセットアップが可能です。
claude- 各種コマンドは
task -lで確認できます。 - http://localhost:8000/docs で Swagger を使用できます。
- 開発:273*
- This source code contains a partially modified version of applehealthdata .
- この作成物および同梱物を使用したことによって生じたすべての障害・損害・不具合等に関しては,私と私の関係者および私の所属するいかなる団体・組織とも,一切の責任を負いません.各自の責任においてご使用ください.