メモリア — ゲンマ4で動作するローカルAI読書パートナー
長い本を読むのは、読書が好きな人でさえも難しいことがあります。
読者はキャラクターを忘れてしまい、以前の出来事を追いかけられなくなり、複雑な文章に苦労するか、休憩の後本に戻るとストーリーから切り離されていると感じる。ADHDを抱える読者や記憶の問題、認知の疲労、アクセシビリティのニーズがある読者にとっては、これがさらに難しくなる。
MemoriaはGemma 4によって動かされるローカルAIの読書パートナーであり、読者が本に繋がりを保つためのスピリルセーフな要約や文脈に即したQを提供する。キャラクターメモリ、話者帰属、テキストの簡略化——すべてユーザーのマシン上でローカルに実行されます.
このアプリはEPUBリーダーとAI搭載の読書支援機能を組み合わせています.
- スピルオーバーに安全な章の要約
- キャラクターメモリの追跡
- 会話の話者帰属
- 文脈に基づく本のQ&A&A
- 文章の解説
- 難しい文章のテキストを簡単にする
- 以前の章のリコールに基づく記憶
すべてがGemma 4を通じてllama.cppを使用してローカルで実行されるため、読者は有料のAIサブスクリプションや常時インターネットアクセスを必要としません
デモ
デモで表示される機能
- EPUB本のアップロードと処理
- AI生成の章要約
- 章間のキャラクタートラッキング
- コンテキストに応じたQ&A
- ハイライトで説明するワークフロー
- 難しい文章のテキスト簡略化
- スピリターロスに安全な検索は完了した章に限定
コード
GitHubリポジトリ:https://github.com/Santhoshl2312/Gemma_book_reader
使用している主要技術
- Gemma 4 E2B
- llama.cpp
- FastAPI
- SQLite
- ChromaDB
- Vanilla JavaScript
- HTML/CSS
Gemma 4の使用方法
Memoriaは、Gemma 4を全体的な読書体験の核となるローカル推論エンジンとして使用しています。
ローカルのllama.cpp OpenAI互換サーバーを通じてGemma 4 E2Bモデルを使用し、クラウドAPIに依存することなくアプリケーションを完全にオフラインで実行しました。
なぜGemma 4 E2Bなのか?
私は特にGemma 4 E2Bを選んだのは、それが反応的なローカルリーディングアシスタントに最適だったからです。
プロジェクトには以下が必要でした:
- 高速な推論速度
- 低いVRAM使用量
- 優れた推論品質
- 信頼性の高い構造化出力
- 消費者ハードウェア上の実用的なローカルデプロイメント
Gemma 4 E2Bは、速度と能力のバランスを適切に提供し、ラプラス.cppを通じてローカルで実行しながら、要約、文脈に基づくQ&A、テキストの簡略化、章の処理のための近いリアルタイムレスポンスを提供することが可能にしました&
これは特に重要だった because the app performs many smaller AI tasks continuously in the background while the user reads.
Gemma 4 が提供するもの
スポイラーに安全な要約
Gemma は章のチャンクを構造化された要約と主要な出来事にまとめ、読者が物語に素早く再接続するのに役立つ.
キャラクターの記憶
モデルは持続的なキャラクターデスクリプションを更新し、各キャラクターに関連する重要な出来事を章を超えて覚えています.
スピーカー帰属
Gemmaはルールベースのシステムが失敗したときに曖昧な台詞の話者を特定するのを助けます.
コンテキストual Q&
読者は物語について質問をし、Gemmaは章の内容を考慮した検索を使って今後のクレイジングを避けながら答えます.
テキスト分かりやすくする
選択された文章は、意味とトーンを保ちつつ、より明確な現代英語に書き換えられます.
技術的アーキテクチャ
フロントエンドは、ベアラムHTML、CSS、およびJavaScriptで構築された軽量のEPUBリーダーです。本のアップロード、章のナビゲーション、読み取りコントロール、テーマ、タイポグラフィ設定、およびAIインタラクションパネルを扱います。
バックエンドはFastAPIとSQLiteで構築されており、本、章、要約、埋め込み、キャラクターメモリ、検索、ストリーミングレスポンスを管理します。
AIスタックは、llama.cppを使用して完全にローカルで実行されます。
- Gemma 4 E2Bはローカルチャットおよび推論モデルとして実行されます
- Nomicエンコーディングは意味的検索を強化します
- ChromaDBは各本ごとのベクトルエンコーディングを保存します
- バックグラウンド処理パイプラインは章を逐次的に分析します
このアプリは章ごとに本を処理するのではなく、一度に全ての小説をコンテキストにロードしようとするのではなく。要約、キャラクターの記憶、埋め込み、話者メタデータなどの中間生成物は、読書体験全体を通して格納および再利用される。
このパイプライン優先の設計により、システムはより高速で、より根拠があり、長形式の読書により実用的になる。
スポイラー安全な検索
最大のデザイン目標の一つは、意図せぬスピアラーを防ぐことでした.
読者が質問をするたびに、Memoriaはユーザーがすでに完了した章からの情報のみを取得します。検索システムは、Gemma 4にコンテキストを送る前に、読み進捗に基づいてベクトル検索結果をフィルタリングします.
これにより、アプリは読者に以前のストーリーの詳細を思い出してもらうことができ、未来の出来事を明かさずに済みます.
困難
長い本の扱い
完全な小説は、直接ローカルモデルのコンテキストウィンドウに入力することはできません。章を小さなセクションに分割し、ローリング要約とキャラクターの記憶を継続的に進めることで解決しました。
構造化出力の信頼性
ローカルモデルは時々JSON出力を追加のフォーマットや説明で囲みます。パイプラインを信頼性のあるものにするために、プロンプトは非常に厳しく制限され、バックエンドは処理する前に有効なJSONブロックを安全に抽出します.
スピーカー帰属
小説における台詞の帰属は難しいです。話者はしばしば明示的に名前が付けられず、暗示されることが多いです。私は明らかなケースにはルールを使用し、Gemmaが曖昧な台詞をより広い文脈で処理するハイブリッドアプローチを使用しました.
完全にローカルデプロイ
このプロジェクトはGemma 4、埋め込みモデル、Python環境、ベクトルデータベースを含む複数のサービスに依存しています。私はセットアッププロセスを起動スクリプトを使用して自動化し、アプリが最小限の手動設定なしにローカルで起動できるようにしました。
ローカルAIの重要性
このプロジェクトの主な目標の一つはアクセシビリティとデジタルエンパワメントです。
読者は必要としません:
- 高額なサブスクリプション
- クラウドAIサービス
- 常時インターネットアクセス
- 外部データ収集
Gemma 4とllama.cpp、ローカル検索を組み合わせることで、Memoriaは消費者ハードウェア上でアクセス可能な完全にローカルのAI読書パートナーを作成し、読者のプライバシーを尊重します。
これは個人読者だけでなく、教室、図書館、介護施設、およびオフライン学習環境にも役立つプロジェクトです。
結論
Memoriaは、Gemma 4がチャットボットを超えた実用的でプライバシーに配慮したアクセシビリティツールを駆動する方法を示しています。
読書を置き換える代わりに、目標は読者を支援すること——物語とつながりを保ち、文脈を覚え、認知負荷を減らしながら、読書の経験そのものを保存することです.
Gemma 4 E2B、llama.cpp、検索、構造化処理パイプラインを組み合わせることで、Memoriaは静的なEPUB本をオフラインで完全に動作する適応的な読書体験に変えます。










