Open Notebookを完全ローカル環境で動かす方法
Open NotebookはGoogle NotebookLM のオープンソース版として注目されているツールです。
通常はOpenAIやAnthropicなどのクラウドAPIを使用しますが、Ollamaと組み合わせて完全にローカルで動かす方法を紹介します。
NVIDIA DGX Sparkで試しましたが、他のPCでも参考になるかなと思います。
環境
- ハードウェア: NVIDIA DGX Spark
- OS: DGX OS(Ubuntu)
- Ollama: 0.12.10
-
使用モデル:
- LLM:
gpt-oss:120b - Embedding:
mxbai-embed-large
- LLM:
セットアップ手順
以下参考にDGX Sparkの基本的なセットアップとOllamaのセットアップを実施します。
Open NotebookのGit cloneもしておきましょう。
$ git clone https://github.com/lfnovo/open-notebook
$ cd open-notebook
DGX Spark以外のPCの場合は、以下記事を参考にOllamaをセットアップしてください。
Ollamaの外部接続設定
デフォルトではOllamaは127.0.0.1(localhost)のみでリッスンしています。Dockerコンテナからアクセスするには、すべてのインターフェースでリッスンするように以下のように設定を変更します。
# 設定ディレクトリを作成
$ sudo mkdir -p /etc/systemd/system/ollama.service.d
# オーバーライド設定ファイルを作成
$ sudo vim /etc/systemd/system/ollama.service.d/override.conf
以下の内容を記述:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
設定を反映:
sudo systemctl daemon-reload
sudo systemctl restart ollama
設定確認:
ss -tlnp | grep 11434
*:11434 と表示されれば成功です(127.0.0.1:11434ではなく)。
必要なOllamaモデルをダウンロード
# 言語モデル
$ ollama pull gpt-oss:120b
# 埋め込みモデル(検索機能用)
ollama pull mxbai-embed-large
環境変数ファイルの作成
docker.env を作成:
# API CONFIGURATION
API_URL=http://localhost:5055
# OLLAMA - ローカルLLM
# network_mode: host なので localhost で直接アクセス可能
OLLAMA_API_BASE=http://localhost:11434
# Ollama用のタイムアウト延長(大規模モデルは時間がかかる)
API_CLIENT_TIMEOUT=600
ESPERANTO_LLM_TIMEOUT=300
# DATABASE (Single Containerで自動設定)
SURREAL_URL=ws://localhost:8000/rpc
SURREAL_USER=root
SURREAL_PASSWORD=root
SURREAL_NAMESPACE=open_notebook
SURREAL_DATABASE=local
# RETRY CONFIGURATION
SURREAL_COMMANDS_RETRY_ENABLED=true
SURREAL_COMMANDS_RETRY_MAX_ATTEMPTS=3
SURREAL_COMMANDS_RETRY_WAIT_STRATEGY=exponential_jitter
SURREAL_COMMANDS_RETRY_WAIT_MIN=1
SURREAL_COMMANDS_RETRY_WAIT_MAX=30
SURREAL_COMMANDS_MAX_TASKS=5
4. Docker Compose設定
docker-compose.single.yml を編集し、network_mode: host を追加:
services:
open_notebook_single:
build:
context: .
dockerfile: Dockerfile.single
network_mode: host
env_file:
- ./docker.env
volumes:
- ./notebook_data:/app/data
- ./surreal_single_data:/mydata
restart: always
起動
docker compose -f docker-compose.single.yml up -d
アクセス
ブラウザで以下にアクセスします。
http://localhost:8502
以下のような画面が出たらOKです。

モデル設定(UI)
Open Notebookにアクセスしたら、Modelsで以下を設定します:
| 種類 | 設定値 |
|---|---|
| Language Model | gpt-oss:120b |
| Embedding Model | mxbai-embed-large |

使用してみる
Transformer論文でとりあえず試してみました。

一応それらしく動きますね。
まとめ
DGX SparkでOpen NotebookとOllamaで、完全にローカルなNotebookLMクローンを構築してみました。
どうしてもローカルじゃないとダメって人は良いかなと思いつつ、NotebookLM本家の方が、すごい勢いでアップデートして、Podcastやスライドを生成するマルチモーダルな機能とかガンガン追加されているので、だいぶ見劣りはするかなと思います。
参考リンク
Discussion