コンテンツにスキップ

設定

設定ページは、コードや YAML を変更せずに調整できるすべての項目を まとめています。セクションは上から下へ:

  1. 言語 - UI 言語(DE / EN / ES / FR / EL / PT / TR / JA、すべて完全翻訳済み)
  2. AI プロバイダー + モデル選択 - どのプロバイダーがメッセージを受け取るか、使用するモデル
  3. API キー - プロバイダーごとのキーとソース属性(env / secrets.yaml / 設定)
  4. ストレージモード - サーバー(FastAPI + SQLite)vs ローカル(ブラウザ IndexedDB)
  5. 同期 - ローカルネットワーク経由で別のデバイスとペアリング
  6. バックアップ - エクスポート・インポート・比較
  7. 音声 - TTS + STT + 発音切り替え
  8. インターフェース - テーマ + 密度
  9. 学習 - 5 つのエリア:基本、レッスン中、読み上げと音声入力、レッスン後、モチベーションと習慣
  10. ゲーミフィケーション - XP・バッジ通知 + 週末モード
  11. About - バージョン、システム情報、クレジット、寄付、ライセンス

言語

次のレンダリング時に PATCH /api/settings/{user_id} 経由で すべての UI 文字列をライブスワップします。8 言語すべてがファーストクラス - DE / EN / ES / FR / EL / PT / TR / JA - それぞれ完全に翻訳されたカタログ付き。 localStorage で再読み込みをまたいで保持されます。

AI プロバイダー + モデル選択

プロバイダードロップダウンは active_provider を UserSettings に書き込みます。 次の AI 呼び出しは新しいプロバイダーのプラグイン(サーバーモード)または 新しいプロバイダーの HTTP クライアント(ローカルモード)を経由します。

モデル選択は検索可能なドロップダウンで、 推奨 / すべてでグループ化され、各プロバイダーのライブ /v1/models エンドポイント(1 時間キャッシュ)から生成されます。 各行に人間が読める名前 + 生の ID + コンテキストウィンドウバッジが表示されます。 検出されたリストが利用できない場合(API キーなし、ネットワークなし)、 選択は静的デフォルトにフォールバックし「オフラインデフォルトを使用中」 ヒントを表示します。セッションヘッダーは <プロバイダー>: <モデル名> を表示します。

API キー

各プロバイダーに独自の行があります。キー入力、保存ボタン、削除ボタン、 アクティブプロバイダーバッジ、および新しいソース属性バッジ:

  • キーの出所:設定 - キーは 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 日ごと(どちらか先)に実行されます。

整理

データのライフサイクルに関する 2 つの設定は、データタブの、それらが 関係するストレージのすぐ隣にあります:

  • レッスンの最大サイズオフラインキャッシュのすぐ下):長いチャット 分析をオフラインレッスンとして保存するとき、このステップ数を超える レッスンは複数のパートに分割されます。パートあたりのステップ数は 5 から 20 まで。デフォルトは 10 です。
  • 一時停止中のレッスンの保持期間未接続のコンテンツのクリーンアップの すぐ上。これは片付けるものがあるときだけ表示されます):この期間より古い 一時停止中のレッスンは、次回ダッシュボードを読み込んだときに自動的に 放棄されます。7、14、30、60 日、または無期限を選べます。デフォルトは 30 日です。最大 10 件の一時停止中のレッスンは、経過日数に関係なく 保持されます。

どちらの値もこのブラウザに保存され、サーバーモードとローカルモードの両方に 適用されます。

音声

3 つの切り替え:

  • TTS 有効 - AI 返信 + アセスメント結果の横に ▶ ボタンを追加して読み上げます。
  • AI 自動再生 - すべての AI 返信を自動的に読み上げます(デフォルト OFF)。
  • STT 有効 - セッション入力に 🎤 ボタンを追加して音声をキャプチャします。
  • 発音練習有効 - 言語タグのプロジェクトのダッシュボードから /pronunciation ページが表示されます。

ブラウザが Web Speech API をサポートしていない場合、音声セクションは非表示になります。

外観

一般 > 外観テーマ選択は 6 つのテーマと自動モードを提供します:

  • ライト - デフォルト、明るくハイコントラスト。
  • ダーク - 低照度使用のための暗い画面。
  • オーシャン - 深いブルートーン、夜に目に優しい。
  • フォレスト - 温かみのあるグリーンとアンバーのアーシーなトーン。
  • ハイコントラスト - アクセシビリティ優先:黒、白、太字のシグナルカラー。 最大の可読性が必要な場合に使用してください。
  • セピア - 温かみのある紙のトーン、長時間の読み取りに快適。
  • 自動(システム) - OS のライト/ダーク設定に従い、システムが切り替えると自動的に変更。

プレビューカードからテーマを選択します。変更は再読み込みなしで即座に適用され、 選択はアクセス間で記憶されます。

インターフェース

2 つの設定があります。ボタンのツールチップ(アイコンボタンにマウスを 重ねたときのツールチップ。スクリーンリーダー用のラベルは常に有効)と メニューの位置(モバイル)(上にメニューボタンとして表示するのが デフォルト、または下に親指の届くタブバーとして表示)。スワイプジェスチャーは レッスンの設定で、学習 > レッスン中 > 操作にあります。

開発者モード診断とサポートタブ)のデフォルトはビルド系統によって 異なります。Latest(プレビュー)系統ではデフォルト ONMain では OFF です。プレビューのテスターは完全な技術的エラー詳細を確認でき、本番の ユーザーにはわかりやすいメッセージが表示されます。いつでも切り替えられます。

学習

学習タブは、カードをレッスンの進行順に 5 つのラベル付きエリアに まとめています。各エリアには小さな見出しと 1 行の説明があり、 中のカードはそれぞれのタイトルを保ちます。

基本

誰が、どの言語で学ぶか。

  • 学習プロファイル - 6 つのメソッドの重み付けの元になる学習プロファイルを 作成、続行、またはやり直します。
  • 追加の出発言語 - アプリの言語に加えて、コンテンツツリーに表示する 出発言語。

レッスン中

回答中の練習問題の動作。

  • レッスンモード - 既定のモード(練習 / 試験 / タイム制)、試験の 合格基準タイム制モードの難易度(はやい、ふつう、ゆったり)。 レッスンと復習を参照してください。
  • ヒント - 各練習問題に段階的なヒントボタンを表示するかどうか、および ヒントごとの XP コスト(0 なら無料)。
  • 操作 - スワイプジェスチャー(アセスメント、セッション、 カリキュラムでスワイプして移動。タッチ対応デバイスではデフォルト ON)、 レッスンのキーボードショートカット(Enter で回答をチェック、もう一度 Enter で次へ)、正解したら自動で次へ進む、および AIに質問ボタンを 表示するかどうか。
  • 優先する練習の方向 - 方向のある練習問題をどちらの方向で開くか。
  • 解答アニメーション - マッチング問題を解いたときに再生される効果。

読み上げと音声入力

音声、速度、マイク、発音練習。

  • 音声 - 上の音声で説明した切り替え:読み上げ、自動再生、音声入力、 発音練習。

このエリアは、ブラウザが Web Speech API の少なくとも一方(合成または認識)を サポートしている場合にのみ表示されます。それ以外の場合は見出しごと表示されず、 レッスン後レッスン中の直後に続きます。

レッスン後

復習セッション、レッスンのまとめ、間違いのやり直し。

  • 復習 - 自動生成される間違いの解説と、復習セッションあたりの問題数。 カードの最後には読み取り専用の間隔反復ブロックがあります:間隔の スケジュール(連続正解数と次の復習までの日数)、項目が習得済みとみなされる 時期、学習メソッドへのリンク。
  • レッスン後のまとめ - レッスン終了時のまとめに表示するセクションと その順序。
  • 間違いをやり直す - やり直しラウンドが拾う間違いの範囲。

モチベーションと習慣

ゲームモード、フィードバック、デイリーミッション、リマインダー。

  • ゲームモード - 遊び心のあるレッスン。マスコットのバリエーション、 レベルやバッジで解放されるか XP と交換できる Lernfunke のカラースキーム (ロックされたバリエーションは条件を表示し、購入は 2 段階の確認を求めます) を含みます。ゲームモードで何が変わるかの詳細は 称賛とお祝いを参照してください。
  • フィードバック - フィードバックの強さとサウンド(音量、テストボタン)。
  • デイリーミッション - ミッションを有効にするか、1 日あたりの数、 難易度の組み合わせ、今日のミッションのシャッフル。
  • リマインダー - リマインダーの時刻と適用する曜日。

ゲームモードのカードには、メインスイッチ、ゲームモードのサウンド、 オンになっているエクストラの数を示すステータス行が表示されます。 ゲームモードの詳細(ハート、カウントダウン、アーケード、スペシャルラウンド、 チケット、ボーナスレッスン、連続XP、マスコット)は折りたたまれていて、 選択を記憶します。遊び心のあるレッスンがオフの間、中のオプションは グレー表示になります。

タブはゲーミフィケーションで終わります(進捗リセットを含むため、区切り線の下に置かれています)。2 つの整理設定 - 一時停止中のレッスンの 保持期間レッスンの最大サイズ - はデータのライフサイクルに関する設定で、 データタブにあります(バックアップの下の整理を参照)。

コンテンツの表示(リスト / グリッド)とコンテンツタブの順序は、 一般タブの外観にあります。

ゲーミフィケーション

XP・バッジ・レベルアップ通知の切り替え(オフにしてもシステムは状態を記録します)、 週末モード(ストリークヒートマップの土日ギャップをスキップ)、 毎日のセッション目標(1〜10)、および進捗リセット(ダブル確認。 user_xpuser_badgesuser_streaks 行を削除)。

About

5 つの読み取り専用ブロック:バージョンpyproject.toml の正規バージョン、 ビルドハッシュ、ビルド日)、システム(ストレージモード、データディレクトリ、 サーバーモードの DB パス、Python + プラットフォーム情報)、 クレジット(著者、依存関係への謝辞)、 開発をサポート(Liberapay / GitHub Sponsors / Ko-fi リンク)、 ライセンスとリソース(MIT リンク、リポジトリ、ドキュメント、イシュートラッカー)。

ローカルモードでは、実行中のバックエンドにのみ意味のある行が非表示になります (Python バージョン、FastAPI / SQLAlchemy / Pydantic / PluginForge バージョン、DB パス)。