はじめに
本記事では、
Google NotebookLM に近い体験を Open Notebook・Docker・Ollama を使って
Windows ローカル環境で再現する手順をまとめます。
クラウドの AI は便利な一方で機微情報をそのまま預けづらい場面もあります。
そこでセルフホスト型の Open Notebook を使い
「NotebookLM 的なことをローカルでどこまで再現できるか」
を検証した記録として整理しました。
以降の章では
- Windows+Docker+Ollama+Open Notebook 構成の全体像
- ノートブック作成からサンプルドキュメント読込
- 日本語で使う際に気付いたポイント
などを中心に紹介していきます。
システム構成と前提環境
ここでは、今回ハンズオンで構築した Open Notebook+Docker+Ollama の構成と、
前提となる環境を整理しておきます。
全体構成
- Open Notebook(Docker コンテナ)
- フロントエンドと API サーバ本体
- SurrealDB(Docker コンテナ)
- Notebook や埋め込みを保存する DB
- Ollama(Windows ネイティブ)
- ローカルで動作する LLM 実行環境
リクエストの流れは次のイメージです
- ブラウザ →
localhost:8502(UI) - UI →
localhost:5055(Open Notebook API) - API →
host.docker.internal:11434(Ollama)
前提環境
本記事の手順は次の環境を前提とします。
- OS
- Windows 11 64bit
- コンテナ基盤
- Docker Desktop for Windows
- ターミナル
- Git Bash を使用
- ハードウェア目安
- メモリ 16GB 以上を推奨
- CPU 4 コア程度あると快適
事前準備:Ollama とモデル
ここでは、Windows に Ollama を入れて
Open Notebook から使える状態にするまでを整理します。
Ollama のインストール
Ollama はローカルで LLM を動かすためのツールです。
- Ollama公式 から Windows 版をダウンロード
- インストーラを実行してセットアップ
- インストール後にバージョンを確認
# Ollama が入っているか確認
ollama --version
最初のモデル準備
インストールができたら使うモデルを 1つ用意しておきます。
- 今回は
llama3系モデルを利用する想定 - モデル一覧と pull 状況を確認する
# 今回利用するモデルを取得
ollama pull llama3
# いま入っているモデルの一覧を確認
ollama list
Open Notebook からの接続方針
今回の記事では次のような前提で構成します。
- Ollama は Windows にネイティブインストール
- Open Notebook は Docker コンテナで動作
- コンテナから Ollama へは
http://host.docker.internal:11434で接続
Open Notebook の取得と設定ファイル
ここからは Open Notebook 本体を取得し Docker で動かすための設定を整えていきます。
リポジトリの取得
まずはソースコードを手元に持ってきます。
# リポジトリの取得
cd /path/to/workdir
git clone https://github.com/lfnovo/open-notebook.git
cd open-notebook
環境ファイルの作成
Docker で動かすために環境変数ファイルを用意します。
# .env.example を docker.env にコピー
cp .env.example docker.env
docker.env のポイント
docker.env では次の点だけまず押さえておきます。
# API 経由のアクセス先
API_URL=http://localhost:5055
# SurrealDB 接続情報
SURREAL_URL=ws://surrealdb/rpc:8000
SURREAL_USER=root
SURREAL_PASSWORD=root
SURREAL_NAMESPACE=open_notebook
SURREAL_DATABASE=open_notebook
# Open Notebook のログイン用パスワード
OPEN_NOTEBOOK_PASSWORD=任意のパスワード
# Windows 上の Ollama への接続先
OLLAMA_API_BASE=http://host.docker.internal:11434
Docker Compose で Open Notebook を起動
Docker Compose を使って
SurrealDB と Open Notebook をまとめて起動します。
公式の docker-compose.full.yml をそのまま利用します。
コンテナの起動
コンテナの起動は次の流れで実施します。
# 既存コンテナがあれば停止
docker compose -f docker-compose.full.yml down
# full 構成で起動
docker compose -f docker-compose.full.yml up -d
# コンテナ状態を確認
docker compose -f docker-compose.full.yml ps
起動確認とログのチェック
ps の結果に加えてログも確認しておきます。
-
surrealdbやopen_notebookが Up になっているか確認 - ログでエラーやスタックトレースが多発していないか確認
# ログの確認
docker compose -f docker-compose.full.yml logs --tail=200
ここまで問題なければブラウザで http://localhost:8502 を開き
Open Notebook の UI にアクセスできます
ブラウザから Open Notebook にアクセス
コンテナが起動したらブラウザ経由で UI を確認します。
表示
- ブラウザで
http://localhost:8502を開く - Open Notebook のログイン画面が表示される
- パスワード入力欄に
OPEN_NOTEBOOK_PASSWORDで設定した値を入力 - ログイン後に Open Notebook のホーム画面が表示される
LLM(Ollama)を Open Notebook に接続
ここからはOpen Notebook に LLM をつなぎ込みます。
モデルの登録
- Language Models に対話用モデルを追加
- Embedding Models に埋め込み専用モデルを追加
- Default Model Assignments で既定モデルを割り当て
この設定が完了するとアップロードしたドキュメントに対して
Ollama 経由で対話できる状態になります。
ノートブックを作成してドキュメントを読み込む
基本的な操作感をつかむために
まずは 1 つノートブックを用意してドキュメントを読み込みます。
ノートブックの準備
新規に notebook を作成して、動作を見てみます。
動作イメージ(キャプチャ例)
試しに、厚労省のモデル就業規則をソースとして読み込みます。
Chat with Notebook で指示を投げると、
追加したソースをもとに返答されていることが確認できます。
ただし、返答は英語がベースとなっています。
日本語化(簡易なプロンプト調整)
Open Notebook はデフォルトだと英語のシステムプロンプトで動きます。
システムプロンプトを日本語向けに差し替え、日本語で応答するように調整します。
prompts ディレクトリをマウントする
-
docker-compose.full.ymlと同じディレクトリにpromptsを配置されていることを確認 -
docker-compose.full.ymlに- ./prompts:/app/promptsを追加
volumes:
- ./prompts:/app/prompts # 追記
SYSTEM ROLE を日本語向けに変更
-
prompts/chat/system.jinjaなど SYSTEM ROLE を定義している.jinjaファイルを編集 - SYSTEM ROLE に、日本語で回答させる文言を追記
# 例
You are an AI research assistant that always answers in Japanese.
Use polite and concise business-like Japanese suitable for technical documentation.
あなたは日本語話者向けのAIリサーチアシスタントです。
常に日本語(ですます調)で、簡潔かつビジネスライクな文体で回答してください。
コンテナを再起動し、新しいチャットセッションで日本語応答を確認
docker compose -f docker-compose.full.yml restart open_notebook
日本語応答の限界
日本語向けの SYSTEM ROLE を設定しても常に日本語だけで応答するとは限りません。
そのため本記事の設定は日本語で応答しやすくするための調整であり、
完全に日本語のみを保証するものではありません。
日本語特化モデルの利用やプロンプトの追加調整を行うことで、
精度を上げることはできると思いますが、今回の主題ではないので割愛します。
導入してみての所感と今後の活用
Open Notebook を使うメリット
- 社外クラウドに出したくない情報でも扱える
- NotebookLM に近い体験をローカルだけで再現できる
- 複数モデルやプロバイダを切り替えつつ検証できる
運用面での注意点
- ホストマシンのリソース状況を定期的に確認
- Docker と Ollama のアップデート影響を確認
- 機微情報を扱う前にアクセス権限やバックアップを整理
まとめ
本記事では Open Notebook を Docker で立ち上げ、
Ollama と組み合わせてローカル環境で動かす手順を整理しました。
クラウドに出したくないドキュメントを対象に、
NotebookLM に近い対話体験を得たいケースでは、有力な選択肢のひとつになりそうです。




