設定¶
設定ページは、コードや YAML を変更せずに調整できるすべての項目を まとめています。セクションは上から下へ:
- 言語 — UI 言語(DE / EN / ES / FR / EL / PT / TR / JA、すべて完全翻訳済み)
- AI プロバイダー + モデル選択 — どのプロバイダーがメッセージを受け取るか、使用するモデル
- API キー — プロバイダーごとのキーとソース属性(env /
secrets.yaml/ 設定) - ストレージモード — サーバー(FastAPI + SQLite)vs ローカル(ブラウザ IndexedDB)
- 同期 — ローカルネットワーク経由で別のデバイスとペアリング
- バックアップ — エクスポート・インポート・比較
- 音声 — TTS + STT + 発音切り替え
- インターフェース — ジェスチャー + テーマ + 密度
- ゲーミフィケーション — XP・バッジ通知 + 週末モード
- About — バージョン、システム情報、クレジット、寄付、ライセンス
言語¶
次のレンダリング時に PATCH /api/settings/{user_id} 経由で
すべての UI 文字列をライブスワップします。8 言語すべてがファーストクラス —
DE / EN / ES / FR / EL / PT / TR / JA — それぞれ完全に翻訳されたカタログ付き。
localStorage で再読み込みをまたいで保持されます。
AI プロバイダー + モデル選択¶
プロバイダードロップダウンは active_provider を UserSettings に書き込みます。
次の AI 呼び出しは新しいプロバイダーのプラグイン(サーバーモード)または
新しいプロバイダーの HTTP クライアント(ローカルモード)を経由します。
モデル選択(v1.11.0 以降)は検索可能なドロップダウンで、
推奨 / すべてでグループ化され、各プロバイダーのライブ /v1/models
エンドポイント(1 時間キャッシュ)から生成されます。
各行に人間が読める名前 + 生の ID + コンテキストウィンドウバッジが表示されます。
検出されたリストが利用できない場合(API キーなし、ネットワークなし)、
選択は静的デフォルトにフォールバックし「オフラインデフォルトを使用中」
ヒントを表示します。セッションヘッダーは <プロバイダー>: <モデル名> を表示します。
API キー(Phase 34 / v1.20.0)¶
各プロバイダーに独自の行があります。キー入力、保存ボタン、削除ボタン、 アクティブプロバイダーバッジ、および新しいソース属性バッジ:
- キーの出所:設定 — キーは DB に Fernet 暗号化されて保存(サーバーモード) または IndexedDB に平文(ローカルモード)。自由に保存・削除できます。
- キーの出所:secrets.yaml — キーは
~/.config/adaptive-learner/secrets.yamlで設定されています。保存ボタンは無効。ファイルを直接編集して変更します。 - キーの出所:environment — キーは
ADAPTIVE_LEARNER_<PROVIDER>_API_KEY環境変数で設定されています。保存無効。env var が情報源です。 - キーが設定されていません — どこにも設定されていません。入力して保存します。
解決チェーン(優先度高い順):env > secrets.yaml > DB。 詳細は設定ドキュメントを参照してください。
ストレージモード¶
サーバーとローカル(ブラウザ)ストレージの切り替え:
- サーバー — すべての読み書きが FastAPI バックエンドを経由します。 実行中のバックエンドが必要です。バックエンド側同期による複数デバイスの使用に最適。
- ローカル(ブラウザ) — すべての読み書きがこのブラウザの IndexedDB を使用します。 AI 呼び出しはプロバイダーに直接実行されます。バックエンド不要。 プライベートなデバイスローカル設定に最適。
切り替えると localStorage に保存され、「再読み込みが必要」の通知が表示されます。
モード間でデータは同期されません。
同期¶
QR コードスキャナー(背面カメラ)またはペアリング URL の貼り付けを使用して ローカルネットワーク経由でこのデバイスを別のデバイスとペアリングします。 ペアリング後、プッシュ + プルボタンで双方向のデータ交換ができます。 競合はバックエンドの AI マージリゾルバーで処理されます。
制限されたブラウザのフォールバック:他のデバイスの QR コードのスクリーンショットを
アップロード(Html5Qrcode.scanFile)。
バックアップ¶
一つのセクションに三つの機能:エクスポート(タイムスタンプ付き JSON のダウンロード)、 インポート(ファイルから復元)、比較(現在の状態との並列 diff)。 API キーはすべてのエクスポートから除外されます。
復元はマージであり、上書きではありません。新しい行は挿入し、
変更可能な行は新しい updated_at で更新し、
履歴行(セッション・コミット・評価)は UUID で重複排除されます。
比較プレビューは「復元」をクリックする前にテーブルごとの追加・削除・変更を表示します。
ローカルモードでは、セクションに自動バックアップブロックも表示されます。 別の IndexedDB DB に 3 スナップショットのローリングリング、 10 セッションごとまたは 7 日ごと(どちらか先)に実行されます。
音声¶
3 つの切り替え(v1.18.0 以降):
- TTS 有効 — AI 返信 + アセスメント結果の横に ▶ ボタンを追加して読み上げます。
- AI 自動再生 — すべての AI 返信を自動的に読み上げます(デフォルト OFF)。
- STT 有効 — セッション入力に 🎤 ボタンを追加して音声をキャプチャします。
- 発音練習有効 — 言語タグのプロジェクトのダッシュボードから
/pronunciationページが表示されます。
ブラウザが Web Speech API をサポートしていない場合、音声セクションは非表示になります。
外観(Phase 58 / v1.41.0)¶
一般 > 外観 のテーマ選択は 6 つのテーマと自動モードを提供します:
- ライト - デフォルト、明るくハイコントラスト。
- ダーク - 低照度使用のための暗い画面。
- オーシャン - 深いブルートーン、夜に目に優しい。
- フォレスト - 温かみのあるグリーンとアンバーのアーシーなトーン。
- ハイコントラスト - アクセシビリティ優先:黒、白、太字のシグナルカラー。 最大の可読性が必要な場合に使用してください。
- セピア - 温かみのある紙のトーン、長時間の読み取りに快適。
- 自動(システム) - OS のライト/ダーク設定に従い、システムが切り替えると自動的に変更。
プレビューカードからテーマを選択します。変更は再読み込みなしで即座に適用され、 選択はアクセス間で記憶されます。
インターフェース¶
ジェスチャー切り替え(v1.10.0 以降、タッチ対応デバイスではデフォルト ON)は アセスメントのスワイプナビゲーション、カリキュラムトピックのスワイプで表示、 セッションサイクルのピークを対象とします。ボタンツールチップと開発者モードもここにあります。
ゲーミフィケーション¶
XP・バッジ・レベルアップ通知の切り替え(オフにしてもシステムは状態を記録します)、
週末モード(ストリークヒートマップの土日ギャップをスキップ)、
毎日のセッション目標(1〜10)、および進捗リセット(ダブル確認。
user_xp・user_badges・user_streaks 行を削除)。
About¶
5 つの読み取り専用ブロック:バージョン(pyproject.toml の正規バージョン、
ビルドハッシュ、ビルド日)、システム(ストレージモード、データディレクトリ、
サーバーモードの DB パス、Python + プラットフォーム情報)、
クレジット(著者、依存関係への謝辞)、
開発をサポート(Liberapay / GitHub Sponsors / Ko-fi リンク)、
ライセンスとリソース(MIT リンク、リポジトリ、ドキュメント、イシュートラッカー)。
ローカルモードでは、実行中のバックエンドにのみ意味のある行が非表示になります (Python バージョン、FastAPI / SQLAlchemy / Pydantic / PluginForge バージョン、DB パス)。