技術仕様・トラブルシューティング – Rocal
← Rocal トップに戻る

技術仕様・トラブルシューティング

Rocalのアーキテクチャ、挙動制御ロジック、および不具合発生時の設定調整について解説します。

1. 技術仕様とアーキテクチャ

Rocalは、スマートフォンの限られたCPUおよびRAM領域のみで稼働する、100%ローカル稼働の高度な情報検索対話(RAG)システムです。

AI推論 & モデル仕様

  • 推論コア: llama.rn エンジン(C++ネイティブ・JSIブリッジ接続)による超軽量動作。
  • 量子化形式: GGUF形式(4bit/5bit最適量子化モデル)。
  • メモリ管理: use_mlockを有効化し、AndroidのOSカーネルによる突然のプロセスキルを防止。
  • CPUスレッド: 端末の物理CPUコア数に合わせ、4〜6コアに最適化して並列演算処理。

RAG / ローカル検索

  • 文書パース: PDF( expo-pdf-text-extract )、RTF、TXT、Markdown対応。
  • テキスト構造化: 見出し記法(#)による論理分割と、独自開発の動的コンテキストレイヤリングを適用。
  • コンテキスト保護: 境界領域にシームレスな文脈維持オーバーラップを適用し、意味の断絶を自動防止。
  • 検索アルゴリズム: 日本語バイグラムおよびユニグラムを組み合わせたBM25スコアリング。

ローカルOCR仕様

  • 認識エンジン: Google ML Kit On-Device Text Recognition 統合。
  • 対応言語(6体系): 日本語、英語・ラテン文字、中国語、韓国語、タイ語、ヒンディー語(Devanagari)。
  • 動作の親和性: 画像からテキストを100%デバイス内で抽出し、LLMのプロンプトバジェット内に自動結合するため、Vision非対応モデルでも画像資料と対話可能。

データの処理境界(3つのセキュリティレイヤー)

データの外部流出リスクを正確に示すため、Rocalではデータの保管・処理状況を明確に定義しています。

Layer 1. 端末外との通信(限定的発生)

外部サーバー(クラウド)へアクセスする処理です。※アプリの設計上、ユーザーが入力したチャット履歴やインポートした機密データが外部に通信・送信される処理は一切実装されていません。

  • 広告通信なし:本アプリは無償版・有償版ともに広告表示・追跡タグ・広告SDKを一切含まず、広告に伴う外部通信は発生しません。
  • AIモデルのダウンロード:初回のAIモデルファイル(Gemma 4など)ダウンロードおよび更新確認時のみ、Hugging Face等のモデル提供サーバーと通信を行います。

Layer 2. 端末内・アプリ外へのアクセス

ネットワーク通信は発生しませんが、OS(Android)の管理するファイル領域や共有ストレージ領域、ネイティブAPIを呼び出す処理です。

  • シリーズアプリ間モデル共有(Shared Model):同シリーズアプリ(Tracal/Lingcal等)と共有ストレージ領域(com.localai.sharedmodels)を介して、巨大なLLMモデルファイル(.gguf)を外部通信なしで端末内で相互共有・再利用します。
  • ドキュメントのインポート:端末内のフォルダからPDF/TXT/MD/RTFファイルを安全にアプリへコピーします。
  • カメラ撮影・画像選択:紙の文書をカメラで撮影して文字認識させるために、カメラまたはフォトアルバム機能を呼び出します。
  • テキストのコピー:ユーザーが手動でチャット回答をクリップボードにコピーします。

Layer 3. アプリ内サンドボックス(完全密室)

OSの機能すら介在しない、Rocal専用の暗号化されたローカルストレージとアプリ用メモリ空間のみで完結する極めて安全な処理です。

  • AI推論の実行:質問のパースから回答の生成まで、すべての計算は端末のCPU・RAM空間内のみで計算されます。
  • 多言語ローカルOCR:カメラで撮影した写真やインポートしたスクリーンショット内の文字認識を、端末のオフラインライブラリのみでパースします。
  • RAGデータ検索:インポートした資料やチャットの履歴は、アプリ専用のSQLiteデータベース内に保護保管され、OS標準のサンドボックス機能によって他のアプリからの直接的なアクセスが遮断される設計となっています。

全24モデルの選定仕様・カタログ

Rocalに搭載されているAIモデルは、端末のRAM領域と使用目的に合わせ、各層ごとに「正確さ優先モデル」と「スピード優先モデル」に厳格に分類・最適化されています。

RAM 6GB 以上 (Lite対応)

軽量・最高安定モデル(計6モデル)

  • Gemma 3 1B 1.1GB
  • Qwen 3 1.5B 1.2GB
  • Phi-4-mini 3.8B 2.2GB
  • Llama 3.2 1B 0.9GB
  • TinyLlama 1.1B 0.7GB
  • SmolLM 1.7B 1.0GB
RAM 8GB 以上 (Lite対応)

標準実用・機能特化モデル(計6モデル)

  • Gemma 4 E4B 2.8GB
  • Qwen 3 4B 2.6GB
  • TranslateGemma 2B 1.8GB
  • Llama 3.2 3B 2.1GB
  • Mistral 7B Instruct 4.1GB
  • Gemma 2 2B 1.6GB
RAM 12GB 以上 (Premium限定)

高精度・多言語・推理モデル(計6モデル)

  • Gemma 4 9B 5.4GB
  • DeepSeek R1 Distill 8B 4.9GB
  • Qwen 3 8B 4.8GB
  • Llama 3.1 8B Instruct 4.7GB
  • Phi-4 14B 8.2GB
  • Gemma 2 9B 5.4GB
RAM 16GB 以上 (Premium限定)

フラッグシップ・超長文モデル(計6モデル)

  • Command R 35B Light 11.2GB
  • DeepSeek R1 Distill 14B 8.8GB
  • Qwen 2.5 14B Instruct 8.6GB
  • Gemma 4 27B Quant 14.1GB
  • Llama 3.3 70B Instruct (Quant) 15.2GB
  • Mistral Small 22B 13.5GB

2. トラブルシューティング

動作が不安定な場合や、出力が切れる場合の調整手順です。

Memoryアプリの動作が重い、または再起動する

発生原因

スマートフォンの物理メモリ(RAM)不足により、OS(Android)がプロセスを強制終了(Out of Memory)しています。

対策・調整方法

お使いの端末のRAM容量(6GB / 8GB / 12GB / 16GB)に適合したモデル(「推奨」タグのあるモデル)を選び直してください。

Max Tokens回答が表示の途中で切れてしまう

発生原因

アプリ側の max_tokens(最大出力トークン数)の上限に達したためです。長文や表形式出力はトークンを多く消費します。

対策・調整方法

アプリ内のモデル詳細設定で max_tokens の値を大きく変更するか、「続きを出力してください」と入力してください。

3. よくあるご質問 (FAQ)

Q. 無償版(Lite)と有償版(Premium)の違いは何ですか?

A. 主に「ローカル保存できるAIモデルの数(1モデル制限)」「登録できるファイル数・サイズ(上限設定)」「Obsidian Vault一括読み込み機能の解放」が異なります。無償版・有償版ともに広告や外部通信は一切ありません。アプリから外部へのデータ出力・送信機能は一切搭載していません。

  • Rocal Lite(無償版):広告は一切なく完全ローカルで動作します。ローカル保存できるモデルは1つまで(入れ替え可能)となり、資料登録はデフォルト1フォルダ・最大5ファイル (1ファイル上限1MB) に制限されます。
  • Rocal Premium(有償版):全24モデルの複数保存・即時切り替えが可能となり、複数フォルダ・拡張ファイル登録(上限あり)が解放されます。さらにObsidian Vaultの一括読み込み連携(※端末内完結・非送出)がご利用いただけます。
Q. インポート(分析)に対応しているファイル形式は何ですか?

A. Rocalは、オフライン環境下でPDF(.pdf)、RTF(.rtf)、TXT(.txt)、Markdown(.md)の構造化解析に対応しています。

解析処理はすべてスマートフォンの内部ストレージ・メモリ上だけで完結します。外部へ送信されることは一切ありません。

Q. 画像(写真・スクリーンショット)からテキストを解析する仕組みは?

A. 内蔵の「多言語ローカルOCR機能(ML Kit)」によって、端末内で文字起こしが行われます。

日本語、英語、中国語、韓国語、タイ語、ヒンディー語の文字認識に対応しており、端末内で認識処理を切り替えて動作するため、多言語の資料もネットワーク接続なしでテキスト化してRAG検索エンジンに加えることができます。