Open Notebook とは?
Google NotebookLM は Google が提供する AI リサーチアシスタントで、PDF、ドキュメント、ウェブページをアップロードして、これらの資料と対話したり、要約を生成したり、ポッドキャストを作成したりできます。しかし、致命的な欠点があります:すべてのデータが Google クラウド上に保存されること、そして Google 独自の Gemini モデルしか使用できないことです。
Open Notebook は、開発者 lfnovo が主導する完全オープンソースでセルフホスティング可能な NotebookLM 代替方案です。その核となる理念はこうです:ナレッジマネジメントは大手企業に独占されるべきではなく、プライバシーを犠牲にするべきでもない。
2026年6月現在、Open Notebook は GitHub で26,000 以上のスターを獲得しており、毎日数百のスターが増加し続けている、今最もホットなオープンソース AI ツールの一つです。
Open Notebook vs Google NotebookLM 核心比較
| 機能 | Open Notebook | Google NotebookLM |
|---|---|---|
| デプロイ方式 | Docker セルフホスティング / ローカル実行 | Google クラウド(セルフホスティング不可) |
| データプライバシー | データは完全に自分の管理下 | データは Google サーバーに保存 |
| AI モデル選択 | 18 以上のプロバイダー(OpenAI、Anthropic、Ollama、DeepSeek など) | Google Gemini のみ |
| ポッドキャスト生成 | 1〜4人のカスタムキャラクター、スクリプト制御可能 | 固定2人の Deep Dive 形式 |
| API アクセス | 完全な REST API(localhost:5055/docs) | 公開 API なし |
| コンテンツ変換 | カスタム + 内蔵の多種類の変換アクション | 限られた内蔵オプション |
| コスト | AI 呼び出し費用のみ(ローカル Ollama は無料) | 無料層 + 月額サブスクリプション |
| 拡張性 | オープンソースコード、自由に変更・統合可能 | クローズドシステム、カスタマイズ不可 |
| ライセンス | Apache 2.0 | プロプライエタリソフトウェア |
この比較からわかるように、Open Notebook の核心的な優位性はデータ主権と柔軟性にあります。プライバシーを重視する研究者、企業開発者、カスタマイズされたワークフローを必要とするユーザーにとって、NotebookLM よりも適した選択肢です。
なぜ Open Notebook を選ぶのか?
1. プライバシー優先:あなたのデータはあなた次第
NotebookLM を使用する際、アップロードしたすべての PDF、ノート、会話履歴は Google のサーバーに保存されます。機密情報、学術研究、個人のセンシティブな情報を含むコンテンツにとって、これはセキュリティ上の懸念となります。
Open Notebook はセルフホスティングアーキテクチャを採用しており、すべてのデータは自分のマシンやサーバーに保存されます。バックエンドデータベースとして SurrealDB を使用することで、データの保存場所とアクセス権限を完全に制御できます。
2. 18 以上の AI モデルプロバイダーをサポート
Open Notebook は Esperanto ライブラリを通じて、主要な AI プロバイダーへの統一されたアクセスを実現しています:
| プロバイダー | LLM | Embedding | STT | TTS |
|---|---|---|---|---|
| OpenAI | ✅ | ✅ | ✅ | ✅ |
| Anthropic (Claude) | ✅ | ❌ | ❌ | ❌ |
| Google (Gemini) | ✅ | ✅ | ✅ | ✅ |
| Ollama(ローカル) | ✅ | ✅ | ❌ | ❌ |
| DeepSeek | ✅ | ❌ | ❌ | ❌ |
| Groq | ✅ | ❌ | ✅ | ❌ |
| Mistral | ✅ | ✅ | ✅ | ✅ |
| Azure OpenAI | ✅ | ✅ | ✅ | ✅ |
| OpenRouter | ✅ | ✅ | ❌ | ❌ |
| xAI | ✅ | ❌ | ❌ | ✅ |
| LM Studio(互換エンドポイント) | ✅ | ✅ | ✅ | ✅ |
これにより、以下のようなことが可能になります: - Ollama でローカル実行し、Llama 3 や Qwen モデルを使用して、ゼロ API コストで完全オフライン利用 - Groq で超高速推論を実現(迅速な QA に適している) - DeepSeek で高性价比な中国語理解能力を獲得 - プロバイダーをいつでも切り替え、ベンダーロックインを回避
3. プロフェッショナル級のポッドキャスト生成
Open Notebook のポッドキャスト生成機能は NotebookLM よりもはるかに柔軟です:
- 1〜4名のスピーカー:各キャラクターの声、トーン、専門知識をカスタマイズ可能
- Episode Profiles:各エピソードのテーマ、スタイル、ターゲットオーディエンスを定義
- スクリプトプレビューと編集:音声生成前にスクリプトを確認・修正可能
- 多言語サポート:英語、中国語、日本語、ポルトガル語など複数の言語に対応
対照的に、NotebookLM の Podcast 機能は固定された二人の会話(男性一人、女性一人)で、スタイルが単一でカスタマイズできません。
4. 完全な REST API
Open Notebook は完全な REST API(デフォルトで http://localhost:5055/docs)を提供しており、以下をサポートします:
- Notebook の作成と管理
- 各種タイプのソースファイル(PDF、動画、ウェブページなど)のアップロードと処理
- AI 駆動のノート生成とコンテンツ変換の実行
- チャット履歴とコンテキストのクエリ
これにより、Open Notebook を既存のワークフローに簡単に統合できます。例えば: - Slack/Discord の議論を自動的に Notebook にアーカイブ - 特定のウェブサイトから定期的にコンテンツを取得して要約を生成 - CI/CD パイプラインと統合して、技術文書の要約を自動生成
クイックスタート:5分で Open Notebook をデプロイ
Open Notebook の公式推奨デプロイ方法は Docker Compose を使用することで、プロセス全体はわずか2つのコマンドで完了します。
前提条件
- Docker Desktop がインストールされ、実行中
- 少なくとも 4GB の空きディスク容量(SurrealDB データとローカルキャッシュ用)
- AI プロバイダーの API キー(または Ollama ローカルモデルを使用する場合は不要)
ステップ 1: docker-compose.yml をダウンロード
curl -o docker-compose.yml https://raw.githubusercontent.com/lfnovo/open-notebook/main/docker-compose.yml
または、手動で docker-compose.yml ファイルを作成:
services:
surrealdb:
image: surrealdb/surrealdb:v2
command: start --log info --user root --pass root rocksdb:/mydata/mydatabase.db
user: root
ports:
- "8000:8000"
volumes:
- ./surreal_data:/mydata
restart: always
open_notebook:
image: lfnovo/open_notebook:v1-latest
ports:
- "8502:8502" # Web UI
- "5055:5055" # REST API
environment:
- OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-string
- SURREAL_URL=ws://surrealdb:8000/rpc
- SURREAL_USER=root
- SURREAL_PASSWORD=root
- SURREAL_NAMESPACE=open_notebook
- SURREAL_DATABASE=open_notebook
volumes:
- ./notebook_data:/app/data
depends_on:
- surrealdb
restart: always
重要: OPEN_NOTEBOOK_ENCRYPTION_KEY を自分だけの秘密の文字列に変更してください。例えば my-super-secret-key-2026。このキーはデータベースに保存される機密情報(API キーなど)を暗号化するために使用されます。
ステップ 2: サービスを起動
docker compose up -d
SurrealDB の初期化に 15〜20 秒待ち、その後ブラウザで以下にアクセス:
http://localhost:8502
Open Notebook のログイン/登録画面が表示されるはずです。
ステップ 3: API キーを設定
- 初回アクセス時、システムは管理者アカウントの作成を促します
- ログイン後、Settings → API Keys に移動
- Add Credential をクリック
- AI プロバイダーを選択(例:OpenAI、Anthropic、Google など)
- API キーを貼り付けて Save をクリック
- Test Connection をクリックして接続是否正常か確認
- Discover Models をクリックして利用可能なモデルリストを自動取得
- Register Models をクリックして登録を完了
API キーを持っていない場合は、以下のプラットフォームから取得できます: - OpenAI - Anthropic - Google AI Studio - Groq(無料層あり)
Ollama を使用してゼロコストでローカル実行
完全に無料でオフラインで使用したい場合は、Ollama と組み合わせることができます:
# Ollama をインストール(macOS/Linux)
curl -fsSL https://ollama.ai/install.sh | sh
# 軽量級モデルをプル
ollama pull llama3.2:3b
# Ollama サービスを起動
ollama serve
その後、Open Notebook の API Keys 設定で:
1. 認証情報を追加、プロバイダーとして Ollama を選択
2. URL に http://host.docker.internal:11434 を入力(Docker 内からホストマシンにアクセス)
3. 接続をテストしてモデルを登録
これにより、API 費用を一切支払うことなく Open Notebook の全機能を使用できます(TTS ポッドキャスト生成には外部サービスが必要ですが)。
核心機能の実践
最初の Notebook を作成
Open Notebook にログイン後、左上の + New Notebook ボタンをクリック:
- Notebook 名:例「2026 AI 技術トレンド研究」
- 説明(任意):この Notebook の用途を簡潔に説明
- デフォルトモデルを選択:登録済みのモデルからデフォルトのチャットモデルを選択
- Create をクリック
各 Notebook は独立したナレッジベースです。異なるプロジェクト用に異なる Notebook を作成できます。例えば: - 「Python 学習ノート」 - 「競合分析レポート」 - 「製品要件ドキュメントライブラリ」
コンテンツソース(Sources)を追加
Open Notebook は多種類のコンテンツソースをサポートしており、これが最も強力な機能の一つです。
サポートされているソースタイプ
| タイプ | フォーマット | 説明 |
|---|---|---|
| PDF ドキュメント | .pdf |
学術論文、電子書籍、レポート |
| テキストファイル | .txt, .md |
ノート、コードスニペット、ログ |
| Office ドキュメント | .docx, .pptx |
Word ドキュメント、PowerPoint プレゼンテーション |
| ウェブリンク | URL | 自動的にクロールして本文を抽出 |
| YouTube 動画 | YouTube URL | 字幕を自動転写(STT 設定が必要) |
| オーディオファイル | .mp3, .wav |
会議録音、ポッドキャスト(STT 設定が必要) |
PDF 追加の例
- Notebook ページで Add Source をクリック
- Upload File を選択
- PDF ファイルをドラッグ&ドロップ、または選択(例:arXiv 論文)
- 処理が完了するまで待機(システムは自動的にテキストを抽出し、ベクトル埋め込みを生成)
- Sources リストで処理ステータスと文字数統計を確認可能
ウェブリンク追加の例
- Add Source → Web Page をクリック
- URL を貼り付け、例:
https://arxiv.org/abs/2401.12345 - Open Notebook は自動的にページをクロールして本文を抽出
- ページに有料ウォールやアンチスクレイピング机制がある場合、手動でコピー&ペーストする必要があるかもしれません
ナレッジベースと対話(Chat)
ソースファイルを追加した後、AI との対話を開始できます。
Notebook ページの右側は チャットパネル です:
-
コンテキスト範囲を選択: - 「All Sources」:すべてのソースファイルに基づいて回答 - 「Selected Sources」:選択した数ファイルのみに基づいて回答 - 「Notes Only」:手動で作成したノートのみに基づいて回答
-
質問を入力、例えば:
この論文の核心的な貢献は何ですか?中国語で3つのキーポイントを要約してください。 -
引用を確認:AI の回答にはソース引用が付随し、引用をクリックすると原文の対応位置にジャンプ
-
ノートとして保存:AI の回答が価値ある場合、Save as Note をクリックして永久ノートとして保存
AI 支援ノートを生成
リアルタイム対話に加え、Open Notebook はバッチ処理でのノート生成もサポート:
- Notebook ページで Generate Notes をクリック
- 処理するソースファイルを選択(複数選択可能)
- ノートテンプレートを選択: - Summary:全文要約を生成 - Key Points:重要な要点を抽出 - Q&A:よくある質問と回答を生成 - Custom:カスタムプロンプト
- Generate をクリック、AI 処理が完了するまで待機
- 生成されたノートは左側の Notes パネルに表示され、さらに編集可能
コンテンツ変換(Transformations)
Content Transformations は Open Notebook の高度な機能で、ソースファイルに対してカスタム AI 処理アクションを実行できます。
例えば、以下のような Transformation を作成できます: - すべての技術文書を中国語に翻訳 - 会議記録からアクションアイテム(Action Items)を抽出 - 長編ブログ記事を 500 字の要約に圧縮
設定手順:
1. Settings → Transformations に移動
2. New Transformation をクリック
3. 名前とプロンプトテンプレートを定義、例えば:
以下の技術文書を簡体字中国語に翻訳してください。専門用語の正確性を維持:
{{content}}
4. 保存後、任意のソースファイルを右クリックして該 Transformation を選択して実行
ポッドキャスト生成:ノートをオーディオ番組に変換
Open Notebook のポッドキャスト生成機能は、最も特徴的な機能の一つです。任意の Notebook のコンテンツをプロフェッショナルな多人対話ポッドキャストに変換できます。
ポッドキャストキャラクターを設定
- Settings → Podcast Profiles に移動
- New Profile をクリック
- キャラクターを定義: - ホスト:トピックの誘導、質問を担当 - 専門家 A:技術詳細の深入り解説を担当 - 専門家 B:異なる視点の提供や反論观点を担当 - (任意)ナレーター:オープニング紹介とエンディングまとめを担当
各キャラクターは以下を設定可能: - 声のタイプ:男性/女性/中性 - 話速:遅い/普通/速い - トーンスタイル:フォーマル/カジュアル/ユーモア/シリアス - TTS プロバイダー:OpenAI、ElevenLabs、Google など
ポッドキャストを生成
- Notebook ページで Generate Podcast をクリック
- 含めるソースファイルとノートを選択(システムは自動的に重要なコンテンツを抽出)
- ポッドキャストプロファイルを選択
- 時間目標を設定(例:10分、20分)
- Generate Script をクリックしてスクリプトをプレビュー
- スクリプトを確認・編集(任意)
- Generate Audio をクリックして音声合成を開始
- 完了後、MP3 ファイルをダウンロードするかオンライン再生可能
実際の応用シナリオ
- 学習レビュー:1週間の学習ノートを通勤時に聞くポッドキャストに変換
- ナレッジシェア:チーム向けに内部トレーニングオーディオ素材を作成
- コンテンツ再利用:ブログ記事をポッドキャストに変換して Spotify/Apple Podcasts に公開
- 言語学習:目標言語でポッドキャストを生成、リスニング練習
REST API 実践:ワークフローを自動化
Open Notebook は完全な REST API を提供しており、デフォルトで http://localhost:5055 で実行されます。API ドキュメントは Swagger UI からアクセス可能:http://localhost:5055/docs
認証
すべての API リクエストは Header に API トークンを携带する必要があります:
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
http://localhost:5055/api/notebooks
Settings → API Keys で API トークンを生成できます。
一般的な API 例
1. すべての Notebook をリスト
curl -H "Authorization: Bearer $TOKEN" \
http://localhost:5055/api/notebooks
レスポンス:
{
"notebooks": [
{
"id": "nb_abc123",
"title": "2026 AI 技術トレンド研究",
"created_at": "2026-06-07T10:00:00Z",
"source_count": 5,
"note_count": 12
}
]
}
2. 新しい Notebook を作成
curl -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"title": "新製品調査", "description": "競合分析データベース"}' \
http://localhost:5055/api/notebooks
3. ソースファイルをアップロード
curl -X POST -H "Authorization: Bearer $TOKEN" \
-F "file=@research-paper.pdf" \
-F "notebook_id=nb_abc123" \
http://localhost:5055/api/sources/upload
4. チャットリクエストを発行
curl -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"notebook_id": "nb_abc123",
"message": "この論文の核心观点を要約",
"model": "gpt-4o",
"temperature": 0.7
}' \
http://localhost:5055/api/chat
Python クライアント例
import requests
BASE_URL = "http://localhost:5055/api"
TOKEN = "your_api_token_here"
headers = {"Authorization": f"Bearer {TOKEN}"}
# すべての Notebook を取得
response = requests.get(f"{BASE_URL}/notebooks", headers=headers)
notebooks = response.json()["notebooks"]
for nb in notebooks:
print(f"Notebook: {nb['title']} ({nb['source_count']} sources)")
# 新しい Notebook を作成
new_nb = requests.post(
f"{BASE_URL}/notebooks",
headers=headers,
json={"title": "テスト Notebook", "description": "API テスト"}
)
print(f"Created: {new_nb.json()['id']}")
REST API を通じて、Open Notebook を既存の自動化ワークフローに統合できます。例えば: - RSS サブスクリプションから定期的に最新記事をクロールして要約を生成 - Slack チャンネルの議論を自動的に Notebook にアーカイブ - CI/CD パイプラインと統合して、コード変更の技術的影響分析を自動生成
高度な設定
パスワード保護による公開デプロイ
Open Notebook をパブリックサーバーにデプロイする場合、パスワード保護の有効化を推奨:
docker-compose.yml に環境変数を追加:
open_notebook:
environment:
- OPEN_NOTEBOOK_PASSWORD=my-secure-password
サービスを再起動後、Web UI にアクセスする際にパスワードの入力が必要になります。
カスタムドメインと HTTPS
Nginx リバースプロキシを使用してカスタムドメインと HTTPS を実現:
server {
listen 443 ssl;
server_name notebook.example.com;
ssl_certificate /etc/letsencrypt/live/notebook.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/notebook.example.com/privkey.pem;
location / {
proxy_pass http://localhost:8502;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /api/ {
proxy_pass http://localhost:5055/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
データバックアップ
Open Notebook のデータは2つのディレクトリに保存されます:
- ./surreal_data/:SurrealDB データベースファイル
- ./notebook_data/:アップロードされたソースファイルとキャッシュ
これらのディレクトリを定期的にバックアップ:
# バックアップを作成
tar czf open-notebook-backup-$(date +%Y%m%d).tar.gz \
surreal_data/ notebook_data/
# バックアップを復元
tar xzf open-notebook-backup-20260607.tar.gz
よくある問題のトラブルシューティング
1. Docker コンテナ起動後、Web UI にアクセスできない
症状: docker compose up -d は成功したが、http://localhost:8502 にアクセスできない
解決策:
# コンテナステータスを確認
docker compose ps
# ログを確認
docker compose logs open_notebook
docker compose logs surrealdb
# SurrealDB が準備できていない場合、30秒待って再試行
docker compose restart
2. API キーの接続テストが失敗
症状: Settings で OpenAI/Anthropic 接続をテストするとエラーが表示
解決策: - API キーが正しく、期限切れでないことを確認 - ネットワーク接続を確認(一部の地域ではプロキシが必要) - Docker ログに SSL またはタイムアウトエラーがないか確認 - ホストマシンで直接 API を呼び出して Key の有効性を検証
3. Ollama モデルが発見できない
症状: Ollama 認証情報を追加後、Discover Models が空のリストを返す
解決策:
# Ollama が実行中であることを確認
ollama list
# Docker 内から接続をテスト
docker exec -it <open_notebook_container_id> curl http://host.docker.internal:11434/api/tags
# 接続が失敗する場合、Docker ネットワーク設定を確認
# macOS/Docker Desktop はデフォルトで host.docker.internal をサポート
# Linux では追加設定が必要な場合あり
4. PDF 処理が失敗、またはコンテンツが空
症状: PDF をアップロード後、Source は処理完了と表示されるが文字数が 0
解決策: - PDF がスキャン版でないことを確認(スキャン版には OCR が必要、Open Notebook は現在未サポート) - 他の PDF リーダーで開いてテキストがコピー可能か確認 - Docker ログにメモリ不足エラーがないか確認 - 大容量ファイル(>50MB)の場合、Docker メモリ制限を増やす必要があるかも
5. ポッドキャスト生成の音声品質が悪い
症状: 生成されたポッドキャストの人声が機械的で不自然
解決策: - より高品質の TTS プロバイダーに切り替え(例:ElevenLabs) - キャラクタープロファイルの話速とトーンパラメータを調整 - 選択した TTS モデルが対象言語をサポートしていることを確認 - API クォータが十分か確認
まとめ
Open Notebook は現在最も成熟したオープンソース NotebookLM 代替方案で、以下の面で Google のネイティブ製品を超えています:
- データ主権:セルフホスティングアーキテクチャにより、研究データが完全にプライベート
- モデルの自由:18 以上の AI プロバイダーをサポート、ベンダーロックインを回避
- 豊富な機能:プロフェッショナル級ポッドキャスト生成、REST API、カスタム変換アクション
- コスト制御可能:ローカル Ollama を選択してゼロ API コストを実現
- オープンで透明:Apache 2.0 ライセンス、コミュニティ駆動開発
プライバシーを重視する研究者、カスタマイズされたワークフローを必要とする開発者、あるいは大手企業の独占から抜け出したいナレッジワーカーにとって、Open Notebook は時間をかけて学ぶ価値のあるツールです。
次のアクション: - GitHub リポジトリ にアクセスして最新進展を確認 - Discord コミュニティ に参加して他のユーザーと交流 - 公式ドキュメント を読んでより詳細なチュートリアルを取得 - ローカルにデプロイして最初の Notebook を作成
本稿は Open Notebook v1 バージョンに基づいて作成されました。プロジェクトは継続的に迭代中で、具体的な機能は最新バージョン为准拠してください。