Skip to content

Thor はスマホで計測されるヘルスケア情報(歩数)から睡眠状態を推定する、大学生に向けたシステムです。大まかな就寝起床時刻の特定や、睡眠期間の傾向、睡眠異常の検知などに応用できます。

Notifications You must be signed in to change notification settings

273Do/Thor-Monorepo

Repository files navigation

Thor-Monorepo

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サービスです。

フロー

  1. アンケート回答 - 睡眠に関する3つの質問に答える

    • スマホの充電タイミング
    • 家の中でスマホを持ち歩くか
    • 普段の就寝時刻
  2. データアップロード - Apple ヘルスケアからエクスポートした XML ファイルをアップロード

  3. 歩数抽出 - XML から歩数データ(+睡眠データ)を抽出

  4. 睡眠推定 - 歩数データ+アンケート回答をもとに、日ごとの就寝・起床時刻を推定

  5. 結果表示 - 推定結果をチャートで可視化

    • 就寝・起床時刻の折れ線グラフ
    • 睡眠時間の棒グラフ
  6. AIフィードバック - LLM( Ollama 経由)が睡眠パターンについてマークダウン形式のアドバイスを生成

iPhone 端末以外の方について

本サービスは 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 接続ができるよう準備してください。

セットアップ

1. Ollama をインストール

こちらから Ollama をインストール

2. リポジトリのクローン

git clone git@github.com:273Do/Thor-Monorepo.git

3. LLM の用意

以下のコマンドを実行して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

4. 起動方法

VSCode で Dev Container でプロジェクトを開きます。

5. 初期設定

  1. backendディレクトリに事前のデータを格納するディレクトリを作成します。
  2. 環境変数を作成します。
  3. 以下のコマンドでパッケージをインストールします。
task frontend -- pnpm i
task backend -- uv sync
  1. 以下のコマンドでアプリを起動します。
task frontend:dev
task backend:dev

6. Claude Code

Claude Code を契約している場合はターミナルから以下のコマンドでセットアップが可能です。

claude

開発コマンド

クレジット

  • 開発:273*
  • This source code contains a partially modified version of applehealthdata .
  • この作成物および同梱物を使用したことによって生じたすべての障害・損害・不具合等に関しては,私と私の関係者および私の所属するいかなる団体・組織とも,一切の責任を負いません.各自の責任においてご使用ください.

About

Thor はスマホで計測されるヘルスケア情報(歩数)から睡眠状態を推定する、大学生に向けたシステムです。大まかな就寝起床時刻の特定や、睡眠期間の傾向、睡眠異常の検知などに応用できます。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published