1
2

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 を試してみた

Posted at

はじめに

独自のデータ、例えば仕事なら議事録やメールなど、プライベートなら自分のメモなどを読んでおいて、その内容に対して回答できる AI プログラムが、以前から欲しいと思っていました。

Google が提供する NotebookLM が、かなりいいように思いました。

NotebookLMとは?Google発の“AIノートブック”を徹底解説

こんな記事を見かけました。

「NotebookLM」と同等の機能をローカル環境で使える「Open Notebook」 - ZDNET Japan

これを試してみたいと思います。

Open Notebook を試してみる

Google NotebookLM とは

NotebookLM は、Google が提供するクラウドサービスで、PDF や音声、Google ドキュメント、YouTube 動画など多様なデータを読込み、AI がコンテンツの要約や分析を行うツールです。データを予めを読込んだ後、「要点をまとめて」「新旧の違いを整理して」といった指示すれば、回答を表示します。

Google「NotebookLM」とは何か?効果的な使い方を分かりやすく解説! | NTT docomo Business Watch | NTTドコモビジネス 法人のお客さま

Open Notebook とは

Open Notebook は、Google NotebookLM のような AI ノートを、自己ホストで再現できるオープンソースプロジェクトです。
LLM は、OpenAI などクラウドサービスを利用してもいいし、Ollama を使ってローカル環境だけで運用することもできます。

「Open Notebook」とは?Notebook LMを超える“自己ホスト型AIノート”の全貌 | LEXIA BLOG

LLM を利用できるようにする

まず、Open Notebook が使用する LLM を利用できるよう準備します。様々なプロバイダのモデルが使えるようになっています。

Model Provider Support | Open Notebook

LLM サービスの API キーを取得する

公式サイトの「クイックスタート」は OpenAI の ChatGPT API を使っていますが、無料枠が使える Google の Gemini API を使いたいと思います。

Gemini APIの無料APIキーを取得する方法

Ollama を導入する

Open Notebook 本体が自己ホストで運用できるので、LLM も自己ホストで運用できるといいですね。Ollama で用意した LLM を使うことができます。

Ollamaを使ってローカルでLLMを実行する方法とダウンロード方法

Windows 環境にソースコードから導入する

公式サイトの「クイックスタート」を見ると、Docker イメージが用意されていてコンテナを実行することで導入しています。また「ソースコードからインストール」する記述もあります。
自分が使っているのは Windows 機です。これに導入してみたいと思います。Docker 環境は使えません。ソースコードから導入できるでしょうか。

実行環境を用意する

導入手順を見ると、まず git clone https://github.com/lfnovo/open-notebook.git しています。

  • Git

を導入しておきます。続いて、uv sync するので

  • Python
  • uv

を導入します。続いて、make start-all するので

  • GNU Tools

ここまで用意して実行したところ、エラーになりました。Makefile を見てみると、docker compose up -d surrealdb しています。したがって

  • Docker

が必要になっています。でも Windows ネイティブ環境で使えません。
個別にツールを導入したらどうでしょうか。

open-notebook/docs/deployment/development.md - lfnovo/open-notebook

でも、面倒なので諦めました。

make start-all はさらに、uv run run_api.pyuv run --env-file .env surreal-commands-worker --import-modules commandsnpm run dev しています。

  • Node.js

が必要になっています。

素直に Linux 環境で Docker を利用して導入するのがよさそうです。

Linux 環境に Docker を使って導入する

Docker を使って導入することにします。

改めて実行環境を用意する

Linux 環境を用意します。LLM はクラウドサービスを呼出することにして CPU のみの実行環境でいいでしょう。Open Notebook はフロントエンドが Next.js アプリなので、ウェブブラウザも使えるデスクトップ環境がいいでしょう。
以前に Google Compute Engine に用意した Linux デスクトップ環境を使おうと思います。

Google Compute Engine に Ubuntu デスクトップ環境を作ってリモート接続してみた #GoogleCloud - Qiita

Docker エンジンを導入しておきます。

Dockerの環境構築を解説|Ubuntuにインストール - カゴヤのサーバー研究室

docker-compose.yml(と docker.env)を用意する

「導入ガイド」に従って docker-compose.yml を用意します。

docker-compose.yml
services:
    open_notebook:
        image: lfnovo/open_notebook:v1-latest-single
        ports:
            - "8502:8502"
            - "5055:5055"
        environment:
            # API Server connection
            - API_URL=http://localhost:5055
            # Database connection (required)
            - SURREAL_URL=ws://localhost:8000/rpc
            - SURREAL_USER=root
            - SURREAL_PASSWORD=root
            - SURREAL_NAMESPACE=open_notebook
            - SURREAL_DATABASE=production
        env_file:
            - ./docker.env
        volumes:
            - ./notebook_data:/app/data
            - ./surreal_single_data:/mydata

Open Notebook を導入した環境でウェブブラウザを起動してアクセスするときの設定です。↑
Docker を実行したディレクトリに notebook_datasurreal_single_data ディレクトリが作られます。

さらに docker.env ファイルを用意します。docker-compose.yml に直接記述しても構いません。↓

docker.env
# LLM API Key
GOOGLE_API_KEY=(取得した API キー)

あるいは

docker.env
# LLM API Key
OLLAMA_API_BASE=http://localhost:11434

Docker コンテナを起動する

上記の設定を使って Docker コンテナを起動します。

$ docker compose up -d

ウェブブラウザで開く

ウェブブラウザを起動して Open Notebook サービスを開きます。

http://localhost:8502

管理画面でモデルを設定する

サイドメニューの「Models」を選択して「Model Management」画面を開きます。
「AI Providers」欄で「Google」または「Ollama」が有効になっていることを確認します。
画面下部で、「Language Models」と「Embedding Models」の設定します。「Add Model」ボタン押下して「Add language Model」画面を開いて、「Provider」を選択して「Model Name」を指定して「Add Model」します。
例えば「Language Models」には「gemini-2.0-flas (google)」、「Embedding Models」には「text-embedding-004 (google)」を追加します。

open-notebook/docs/features/ai-models.md - lfnovo/open-notebook

上記で設定したモデルが「Default Model Assignments」欄で指定できるようになるので、「Chat Model」「Transformation Model」「Embedding Model」は少なくとも指定しておきます。

説明①.png

別のクライアント機からアクセスする

Compute Engine に用意した Linux デスクトップ環境で Open Notebook を稼動して、同じ環境でウェブブラウザを起動してアクセスしました。Compute Engine の Linux 環境と別のクライアント機からアクセスして利用してみたいと思います。

docker-compose.yml を修正する

docker-compose.yml を修正します。

docker-compose.yml
(前略)
        environment:
            # API Server connection
            - API_URL=http://(Open Notebook サーバの IP アドレス):5055
(後略)

Docker コンテナを停止、削除した上で改めて起動します。

ウェブブラウザで開く

Compute Engine のインスタンスの「外部 IP アドレス」でアクセスします。

http://(Open Notebook サーバの IP アドレス):8502

ところが、ページを開けません。

ポート 8502 を開放する

Open Notebook のアプリサーバはポート 8502 でアクセスします。
したがって、Compute Engine のインスタンスに対してポート 8502 の通信を許可しないといけません。

Google Cloud の「VPC ネットワーク」で「ファイアウォールルール」を作成します。

  • 名前:任意。例えば「allow-open-notebook」
  • 方向:Ingress
  • 一致したときのアクション:許可
  • ターゲット:指定されたターゲットタグ
    • ターゲットタグ:任意。例えば「oepn-notebook-server」
  • 送信元フィルタ:IPv4 範囲
    • 送信元 IPv4 範囲:0.0.0.0/0
  • 宛先フィルタ:なし
  • プロトコルとポート:指定したプロトコルとポート
    • プロトコル:TCP
      • ポート:8502

以上で設定したファイアウォールのターゲットタグを、Compute Engine のインスタンスの「ネットワークタグ」に追加します。

クライアントのブラウザで開き直すと、Open Notebook の画面は開きますが、「Unable to Connect to API Server」が表示されます。

docker-compose.yml をさらに修正する

ウェブブラウザで開いているクライアントアプリが API サーバと通信しているのですが、サーバ機で動いているアプリサーバを経由するのでなく、クライアントアプリが API サーバに直接アクセスしているようです。
したがって API サーバの URL は、クライアントアプリが実行されているクライアントから見た IP アドレスでないといけません。Compute Engine のインスタンスの「外部 IP アドレス」を指定するよう修正します。

docker-compose.yml
(前略)
        environment:
            # API Server connection
            - API_URL=http://(サーバの外部 IP アドレス):5055
(後略)

ところが、まだ「Unable to Connect to API Server」になります。

ポート 5055 を開放する

Open Notebook の API サーバはポート 5055 でアクセスします。
したがって、Compute Engine のインスタンスに対してポート 5055 の通信を許可しないといけません。

前述のファイアウォールルールを修正します。

  • プロトコルとポート:指定したプロトコルとポート
    • プロトコル:TCP
      • ポート:8502,5055

Open Notebook の画面が開けるようになりました。

Open Notebook を使ってみる

Open Notebook が使えるようになりました。使い方は Google NotebookLM と同じですね。

ノートブックを作成する

まず、「ノートパソコン」を作成します。

説明②.png

ノートブックにソースを追加する

続いて、「ソース」を追加します。

説明③.png

ノートブックでチャットを始める

続いて、「チャット」を始めてみます。

説明④.png

1
2
1

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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?