AI(人工知能/ディープラーニング)

完全オフライン!自分だけのローカルAI×RAGアプリを作ってみました

この記事は約10分で読めます。

オリジナルのローカルRAG昨今、AIの話題を見ない日はありません。しかし、企業で導入するとなると「社内の機密データや顧客情報をインターネット上のAIに読み込ませて本当に大丈夫なのか?」というセキュリティの不安がつきまといます。
そこで今回は、インターネットから切り離された完全オフライン環境で動き、社内のPDFやテキストを読み込ませて質問できる「自分だけのオリジナルAIアプリ」を自作した経緯をご紹介します。

ローカルAIでローカルRAGを自作しました

なぜ今、ローカルAIなのか?機密データも安心なオフライン環境の魅力

ローカルAIとは、ChatGPTのようにインターネット上のサーバーを利用するのではなく、自社にあるパソコンの内部だけで動くAIのことです。

そしてRAG(ラグ:Retrieval-Augmented Generation)とは、AIに自社のマニュアルや過去の提案書などのデータを読み込ませ、その情報に基づいて回答させる技術です。

この2つを組み合わせることで、「外部に絶対に情報が漏れない、自社専用の優秀なアシスタント」を作ることができます。社外秘の経営数値や個人情報を含む資料も、ローカル環境なら安心してAIに分析させることができるのです。

開発のきっかけ:X(旧Twitter)での話題と発想の転換

「LM Studio+OpenClaw」の盛り上がりを見て試行錯誤

事の発端は、X(旧Twitter)で「ローカルAIを動かすなら『LM Studio』と『OpenClaw』の組み合わせが便利だ」という話題が盛り上がっていたことでした。 私もそれに共感し、最初は既存のツールを組み合わせてなんとか動かそうと試行錯誤していました。

https://x.com/tohdamikio/status/2040942735654543849

「ブラウザで動くオリジナルアプリを自作すればいいのでは?」という気づき

しかし、『OpenClaw』は設定が複雑だったり、調べてみると使い勝手がしっくりきません。とくに情報漏洩の危険性が指摘されるツールになってしまったことでちょっと導入に躊躇しました。

ここで発想を転換しました。 「Google Chromeなどの使い慣れたブラウザで動くシステムを、自作してしまえば良いのではないか?」と。

自分はエンジニアではないのでコードは書けないのでですが、Geminiにきけばなんとかなることを体験していましたので、自分の理想とする形をゼロから作ってみることにしたのです。

快適すぎる!今回のローカルAI開発・動作環境

完成したシステムは、驚くほど実用的でサクサク動きます。

LM Studio × Gemma4の組み合わせ(GPU 16GBでサクサク動作!)

今回は、ローカルAIを簡単に管理できるLM Studioというソフトを使用し、AIの頭脳となるモデルには「Gemma4」を採用しました。

ローカルAIの新星「Gemma-4-e4b-it」これはすごいです!LMスタジオで使うモデルの最適解がまた変わりました
私たちが自宅や企業で動かす「ローカルAI」の環境は、日々進化を続けています。最近の検証では、「小規模モデルの意外な強さ」を発見しましたが、今回、その常識をさらに塗り替える可能性を秘めた最先端モデル「Gemma-4-e4b-it」を迎え入れま...

パソコンのスペックとして、GPU(画像処理やAIの計算を高速で行うための部品)のメモリが16GB搭載されているものを使用しています。専門用語が並びますが、要するに「最近のちょっと良いパソコン」を使うことで、インターネット接続なしでも人間が文字を打つようなスピードでスラスラとAIが回答してくれます。

ChatGPTやGeminiライクな直感的なUIデザイン

出来上がった実際の画面がこちらです。

ローカルRAG

左側には過去のチャット履歴や設定、右側にはチャット画面と、ファイルの読み込み欄を配置しました。社員の誰もが使い慣れているであろう、ChatGPTやGeminiのような直感的なデザイン(UI)を踏襲しています。ドラッグ&ドロップでPDFファイルを読み込ませることも可能です。

開発の強力な相棒は「Gemini」

「自作のアプリなんて、専門のエンジニアじゃないと無理では?」と思われるかもしれませんが、今回の開発の相棒はAIのGeminiです。

これまでの「GAS × Gemini」開発手法の応用

私はこれまで、Googleの業務自動化ツールであるGAS(Google Apps Script)を使って、Geminiにコードを書いてもらいながらシステムを作った経験がありました。

RFM分析をGASで!AIで分析する自動リピート促進システムを自社開発することが可能です
どもどもAIです。AIエージェントとして、今日も未来のビジネスヒントを皆さまにお届けします。多くの経営者が「新規集客がしんどい」と嘆く中、いま注目すべきは既存顧客の深掘りです。本記事では、Google Apps Script(GAS)を活用...

今回もその手法の応用です。

「こういう画面にしたい」「こういう機能が欲しい」とGeminiにプロンプト(指示)を出し、プログラムを書いてもらいました。

最大のチャレンジ:初めてのPythonローカル環境構築もGeminiがサポート

今回最大の壁は、Python(パイソン)というプログラミング言語を自分のパソコンに入れて動かすという、初めての環境構築でした。これも、エラーが出るたびにGeminiに質問し、手取り足取りサポートしてもらうことで無事に乗り越えることができました。

【コード公開】オリジナルRAGアプリの中身を少しだけ紹介

技術的なことに興味がある方向けに、今回作成したプログラムの構成とコードの一部をご紹介します。

シンプルなファイル構成(ragsysフォルダ直下の運用)

パソコンのCドライブに「ragsys」というフォルダを作り、そこにファイルを2つだけ置くという非常にシンプルな構成です。チャットの履歴などは「data」フォルダに自動で保存されていきます。

  • app.py (裏側で動くPythonのプログラム)

  • index.html (画面を表示するプログラム)

フロントエンド:index.html(CSS一体型・抜粋)

画面の見た目や動きを制御するファイルです。管理を楽にするため、デザインを整えるコード(CSS)もこの1つのファイルにまとめています。

HTML
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>ローカルRAGチャット</title>
    <style>
        /* 画面のデザイン設定(一部抜粋) */
        :root {
            --bg-color: #f0f4f9; --sidebar-bg: #e8eaed; --primary-color: #1a73e8;
        }
        body { display: flex; height: 100vh; background-color: var(--bg-color); }
        .sidebar { width: 300px; background-color: var(--sidebar-bg); padding: 15px; }
        .main-area { flex-grow: 1; display: flex; flex-direction: column; }
        /* 以下省略 */
    </style>
</head>
<body>
    <div class="sidebar">
        <div class="new-chat-btn" onclick="location.reload()">+ 新規チャットを始める</div>
        <div id="history-list"></div>
    </div>
    <div class="main-area">
        <div class="chat-container" id="chat-container"></div>
        <div class="input-wrapper">
            <textarea id="prompt-input" placeholder="質問や指示を入力してください..."></textarea>
            <button onclick="sendChat()">送信する</button>
        </div>
    </div>
    </body>
</html>

バックエンド:Pythonプログラム(抜粋)

PDFを読み込んだり、ローカルAIに指示を出したりする裏側の処理です。 ※機密保護のため、IPアドレス部分は YOUR_LOCAL_IP に変更しています。

Python
import os
from flask import Flask, request, jsonify

app = Flask(__name__, static_folder='.', static_url_path='')

# LM StudioのAPIの場所を指定(ご自身の環境に合わせて変更)
LM_STUDIO_API = "http://YOUR_LOCAL_IP:1234/v1"

@app.route('/')
def index():
    return app.send_static_file('index.html')

# --- メインチャットAPI(一部抜粋) ---
@app.route('/api/chat', methods=['POST'])
def chat():
    data = request.json
    prompt = data.get('prompt')
    
    # 1. 選択されたPDFなどのファイルを読み込む処理(RAG)
    # ... (省略: PDFやテキストの中身を抽出する処理) ...

    # 2. LM Studioへ通信し、AIの回答を得る処理
    # ... (省略: 読み込んだ文章と質問を合わせてAIに投げる処理) ...

    # 結果を返す
    return jsonify({"reply": "AIの回答結果をここに返します"})

if __name__ == '__main__':
    # 外部のPCからもアクセスできるように 0.0.0.0 を指定
    app.run(host='0.0.0.0', port=5000, debug=True)

【応用編】同じWi-Fiなら別のノートPCからも使える!

今回の開発で、もう一つ大きな発見がありました。それは、AIをインストールした本体のパソコン(ホストPC)だけでなく、同じ社内Wi-Fiに繋がっている別のノートPCからも、このRAGアプリが使えるということです。

設定は非常に簡単で、プログラム側に「外部のPCからのアクセスも許可する(0.0.0.0という設定)」という記述にすることです。紹介したコードはそうしてあります。

あとは、ノートPCのブラウザ(ChromeやEdgeなど)のアドレスバーに、ホストPCの「IPアドレス(ネットワーク上の住所のようなもの。例:192.168.x.x)」を打ち込めば、先ほどのチャット画面が開きます。

この機能には、中小企業にとって非常に大きなメリットと、運用上の注意点があります。

ブラウザを開くだけ!圧倒的な利便性とコストメリット

  • 普通のパソコンやタブレットが「AI端末」に早変わり
    AIをサクサク動かすには高価な部品(GPU)を積んだパソコンが必要ですが、それを社員全員分揃えるのは現実的ではありません。しかしこの方法なら、重たい計算処理はホストPC1台が引き受けてくれます。アクセスする側のノートPCは、ブラウザさえ開ければ古い機種でも全く問題なく利用できます。

  • サブスク費用が不要(コスト削減)
    一般的なクラウド型の生成AIを法人で契約すると、1アカウント(社員1人)につき毎月数千円のコストがかかります。ローカルAIを社内ネットワークで共有すれば、どれだけ使っても追加費用はゼロです。

  • 情報の鮮度を一つにまとめられる
    社内規定や最新の価格表などのデータは、ホストPCの特定のフォルダ(今回の場合は ragsys 内のフォルダ)にだけ入れておけば済みます。全社員が常に同じ最新のデータを参照してAIに質問できるため、「古いファイルを見て間違えた」というミスを防げます。

知っておくべき注意点:ネットワークと同時接続の壁

一方で、自社運用ならではの気を付けるべきポイントもあります。

  • 社内ネットワーク(Wi-Fi)のセキュリティ確保
    このシステムは「同じWi-Fiに繋がっていること」が前提です。裏を返せば、社外の人間が勝手に会社のWi-Fiに繋げる状態になっていると、機密データを読み込んだAIにアクセスされてしまう危険があります。Wi-Fiのパスワード管理など、基本的なネットワークの戸締まりはしっかり行う必要があります。

  • 「同時に」質問すると順番待ちになる
    今回は1台のホストPCでAIを動かしているため、例えば3人の社員が全く同じタイミングでAIに質問を投げかけると、AIは1人ずつ順番に回答を作ろうとします。そのため、2人目、3人目の人は回答が出るまでに少し待ち時間が発生します。数人〜十数人規模のオフィスでの利用であれば問題になりにくいですが、何十人も同時に使うような規模になると、ホストPCの増設などが必要になります。

  • ホストPCの「住所(IPアドレス)」が変わる問題
    パソコンのネットワーク上の住所(IPアドレス)は、ルーター(Wi-Fiの機械)を再起動した時などに自動的に変わってしまうことがあります。住所が変わるとノートPCからアクセスできなくなってしまうため、設定でホストPCのIPアドレスを「固定」にしておくことをおすすめします。

まとめ:ローカルAI×自作アプリがもたらす新しい可能性

ローカルRAG

今回、専門的なプログラマーでなくても、生成AIの力を借りることで、セキュアで実用的な自社専用システムを構築できることがわかりました。

「機密情報があるからAIは使えない」と諦めるのではなく、「ローカルで動かせばいい」という選択肢は、多くの中小企業のDX(デジタル変革)を大きく前進させるはずです。もし社内に少しでもITに明るい方がいれば、休日のちょっとしたチャレンジとして試してみてはいかがでしょうか。