📔

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

セットアップ手順

以下参考にDGX Sparkの基本的なセットアップとOllamaのセットアップを実施します。

https://zenn.dev/karaage0703/articles/985ddbd8fa15d3

Open NotebookのGit cloneもしておきましょう。

$ git clone https://github.com/lfnovo/open-notebook
$ cd open-notebook

DGX Spark以外のPCの場合は、以下記事を参考にOllamaをセットアップしてください。

https://zenn.dev/karaage0703/articles/c271ca65b91bdb

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やスライドを生成するマルチモーダルな機能とかガンガン追加されているので、だいぶ見劣りはするかなと思います。

参考リンク

https://bwgift.hatenadiary.jp/entry/2025/11/30/210400

Discussion