0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Open Notebook をローカルで動かす — Docker + Ollama 構成

Posted at

はじめに

本記事では、
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 の結果に加えてログも確認しておきます。

  • surrealdbopen_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 のホーム画面が表示される

9d87a6dc50bf3b9b0180-1.png

9d87a6dc50bf3b9b0180-2.png

LLM(Ollama)を Open Notebook に接続

ここからはOpen Notebook に LLM をつなぎ込みます。

モデルの登録

  • Language Models に対話用モデルを追加
  • Embedding Models に埋め込み専用モデルを追加
  • Default Model Assignments で既定モデルを割り当て

9d87a6dc50bf3b9b0180-3.png

この設定が完了するとアップロードしたドキュメントに対して
Ollama 経由で対話できる状態になります。

ノートブックを作成してドキュメントを読み込む

基本的な操作感をつかむために
まずは 1 つノートブックを用意してドキュメントを読み込みます。

ノートブックの準備

新規に notebook を作成して、動作を見てみます。

9d87a6dc50bf3b9b0180-4.png

動作イメージ(キャプチャ例)

試しに、厚労省のモデル就業規則をソースとして読み込みます。

厚労省のモデル就業規則

9d87a6dc50bf3b9b0180-5.png

Chat with Notebook で指示を投げると、
追加したソースをもとに返答されていることが確認できます。
ただし、返答は英語がベースとなっています。

日本語化(簡易なプロンプト調整)

Open Notebook はデフォルトだと英語のシステムプロンプトで動きます。
システムプロンプトを日本語向けに差し替え、日本語で応答するように調整します。

prompts ディレクトリをマウントする

  • docker-compose.full.yml と同じディレクトリに prompts を配置されていることを確認
  • docker-compose.full.yml- ./prompts:/app/prompts を追加
docker-compose.full.yml
    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 に近い対話体験を得たいケースでは、有力な選択肢のひとつになりそうです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?