LLLM Study
自分のペースで使える、ローカル LLM タイプの学習アプリ
記憶のアルゴリズム(FSRS)で復習のタイミングを管理し、その上にブラウザの中で動くローカル AI(Gemma 4 など)が
学習パートナーとして乗っています。教材は外部の高性能な AI に作ってもらい、取り込んで使えます。
🌐 公開ページ: https://masakiniwa.github.io/LLLM-Study/
特長
- 🧠 FSRS で記憶に残る復習 — 最新の間隔反復アルゴリズム(FSRS-6)が、忘れかけた頃に復習を出します。
評価ボタンには次の復習までの間隔を表示。取り消しもできます
- 📅 カレンダーと記録 — 毎日の学習量を濃淡で、これからの復習予定を枚数で表示。記録タブでは定着状況・予定の見通し・学習回数のグラフと「この 1 年」のヒートマップ(教材ごとに絞り込み可)
- ✍️ 自分の答えを書いて答え合わせ — 「答えを書く」で下から入力欄。判定はプログラム(つづりの小さな間違いは「惜しい」、一問一答の言い換えは判定せず見比べ)。AI を使うと判定の補足や、書いた答えをふまえたひとこと・解説も
- ⏱️ 時間を測る・テストモード — 問題ごと・学習全体の時間を表示。1 問の制限時間(時間切れで答えを表示)や、学習全体の制限時間も、スライダーや数字で自由に決められます
- 🎓 語学以外にも — AI の解説は分野に合わせて変わり(語学なら例文、それ以外は具体例)、どの分野でも口頭試問や「AI に教える」で理解を確かめられます
- 🤖 AI パートナー(ローカル LLM) — 性格タイプ(ともだち・先生・コーチ・ねこ先輩・執事・カスタム)を選べます。
答えを見たときのひとこと(性格を出して、ときどき 2〜3 回)、解説・例文・覚え方、一緒に悩む、チャットでの掘り下げ。性別・年齢層を任意で伝えられます
- 🛟 AI に使い方を聞く — チャットの「使い方を聞く」で、アプリのヘルプから関係する部分をアプリが選び、AI がそれをもとに答えます(ヘルプにないことは推測で答えません)
- 🧩 AI に全部を任せない設計 — 復習の予定や正誤はプログラムが決め、AI はその上に乗ります。
アプリの状態は構造化データ(JSON)で AI に渡し、学習記録は AI がツール(関数呼び出し)で調べます
- ✍️ 教材は外部の AI に作ってもらう — 条件を入れてプロンプトをコピーし、ChatGPT・Claude・Gemini などに貼り付け。
返ってきた JSON を取り込むだけ。単語・フレーズ・一問一答・穴埋め・選択問題・並べ替え・仕訳・複数選択・数値入力・○×・組み合わせ・表の穴埋めに対応
- 🏋️ おさらい — 今日間違えたカード・苦手なカードを、記録に残さず何度でも練習
- 📖 長文読解 — 本文(passages)を共有する問題形式。本文は問題の上に、訳は答えと一緒に表示
- 📋 表から取り込み — Excel・スプレッドシート・Anki・Quizlet の単語リスト(CSV・TSV)をそのまま教材に
- 💬 今週のふりかえり — 7 日間の集計(先週との比較)をアプリが出し、AI パートナーがコメント
- ✏️ 項目の修正・画像付きカード — 取り込んだ教材の誤りをアプリ内で修正(記録はそのまま)。カードに画像を付けられる
- 📚 サンプル教材 71 個(約 6,000 問) — 英語(中学〜上級の単語・文法・コロケーション・イディオム・長文読解・ビジネス・旅行・TOEIC)、中国語・韓国語・スペイン語の入門、漢字の読み・四字熟語とことわざ、算数の学び直しから高校数学・統計・SPI、物理・化学・生物・地学と防災、日本史・世界史・日本と世界の地理・公民・暮らしの法律、IT パスポート・基本情報・AI とデータ・Python・JavaScript・SQL・Git と Linux、ビジネスマナー・ロジカルシンキング・マーケティング・お金の基礎・簿記・決算書、経理実務マスター(新リース会計基準・減損・収益認識・税効果・連結・消費税・法人税など 12 論点)、勘定科目の選び方(経費精算編など 9 編)。易しい順に並び、やりきると次の教材へステップアップできます。分野のまとまりで絞り込み・検索・並べ替えができます
- 🗃️ 教材の管理 — 検索・分野で絞り込み・並べ替え。「この教材を学習」で 1 つの教材に集中、上限なしモードも
- 🗂️ マイカード — 自分でカードを作成・編集。AI に下書きしてもらったり、チャットで AI が提案したカードを追加したり
- 🗣️ 会話練習 — 語学の会話・ビジネス(面接・報告・商談・クレーム対応など)・理解を深める(口頭試問・AI に教える)の 3 種類。AI とロールプレイして、終わったら添削・ふりかえり。直した表現はカードに
- 🎧 聞き取り・並べ替え — 音声だけで答える聞き取りカード、語句を並べる並べ替え問題
- 🪄 AI 例文クイズ — 忘れかけた単語をアプリが選び、AI が新しい例文で穴埋め問題を作成。採点はアプリ
- 💾 モデルの共有とバックアップ — ダウンロードしたモデルは同じ github.io の他のサイト(Try Local など)と共有。
端末のファイルとして書き出すこともできます
- 🔒 すべて端末内 — 教材・学習記録・AI の推論はブラウザ内。外部に送信されません
- ☁️ クラウド AI も選べる(任意) — 自分の API キー(Gemini(無料枠あり)・OpenAI・Claude・OpenRouter(無料のモデルあり)。会社ごとに複数登録でき、生体認証で解除できます)で、より詳しい解説やチャット。キーは合言葉で暗号化して端末に保存し、送信先は CSP で API だけに限定(考え方)
- 🌙 落ち着いたダークモード — 青みのないグレーと、彩度を抑えた色で目が疲れにくい配色(あたたかいグレー・以前の鮮やかな配色も選べます)。ヘッダーのボタンですぐ切り替え
- 📱 スマホ / PC 両対応・PWA — スマホは下部ナビゲーション(AI の練習はまとめて選べます)。学習画面は文字の大きさを選べ、小さい画面では余白を自動で詰めます。ホーム画面に追加すればオフラインでも起動
使い方
- 「教材」→「サンプル」から教材を追加(または「AI で作る」でプロンプトを作り、外部の AI が返した JSON を「取り込む」)
- 「学習」でカードを見て思い出し、「答えを見る」→ 4 段階で評価
- 「カレンダー」で学習履歴と復習予定を確認
- (任意)「AI モデル」で Gemma 4 E2B(Web 版)などをダウンロードすると、AI パートナーが使えます
推奨環境: WebGPU に対応した最新の Chrome / Edge(PC・Android)。学習カードだけならモデルは不要です。
開発
npm install
npm run dev # 開発サーバー
npm run build # 本番ビルド(dist/)
npm run lint # ESLint
npm run typecheck # TypeScript
npm test # Vitest
npm run format # Prettier
npm run packs # サンプル教材の検証と、一覧・JSON Schema・仕様書の生成
npm run licenses # サードパーティのライセンス一覧の生成
main ブランチへの push で GitHub Actions が GitHub Pages にデプロイします
(リポジトリの Settings → Pages → Source を GitHub Actions にしてください)。
サンプル教材を追加するには
public/packs/<パックの id>.json に 教材パック形式 の JSON を置き、npm run packs:lint で
形式と作り方の目安(選択問題の正解の位置の偏り・同じ問題の重複など)を確かめてから、npm run packs を実行して
生成された public/packs/index.json などと一緒にコミットします(CI で形式を検証します)。
一覧の並び(おすすめ順)は scripts/build-packs.ts の RECOMMENDED_ORDER で決めます。
ドキュメント
技術スタック
| 分野 | 採用技術 |
|---|
| 記憶 | ts-fsrs(FSRS-6) |
| 推論エンジン | @litert-lm/core(LiteRT-LM JS API, WebGPU / Wasm) |
| データ | Dexie(IndexedDB), zod(教材の検証・JSON Schema), date-fns |
| ビルド | Vite, TypeScript |
| UI | React, Tailwind CSS, lucide-react, sonner, react-markdown |
| 状態管理 | Zustand |
| ルーティング | wouter(ハッシュルーティング) |
| Worker 通信 | Comlink(Engine Worker・Data Worker) |
| テスト / 品質 | Vitest, fake-indexeddb, ESLint, Prettier |
ライセンス
MIT License
利用しているサードパーティ製ソフトウェアの一覧は THIRD_PARTY_NOTICES.md
(ライセンス全文はアプリのヘルプ画面)を参照してください。
サンプル教材は本リポジトリの作者が作成したものです(AI を利用して作成したものを含みます。出典は各パックの source に記載)。
AI モデルは本リポジトリに含まれず、各モデルのライセンス・利用規約が適用されます。