Open Notebook 是一個面向資料學習和研究的開源應用程式,可以匯入 PDF、網頁、音訊、影片和 Office 文件,再圍繞來源進行搜尋、對話、筆記整理及 Podcast 產生。它與一般聊天工具最大的差別,是把資料、引用、模型設定和筆記保存在自己的工作空間中。
自架不等於完全離線:如果選擇 OpenAI、Anthropic、Google 等雲端模型,提交給模型的上下文仍會傳送到對應服務。只有同時使用自架應用程式和本機模型,才能讓資料處理流程盡量留在自己的設備上。
部署前準備
官方快速部署只要求 Docker Desktop,Linux 伺服器也可以使用 Docker Engine 與 Compose 外掛。開始前先確認:
|
|
還應準備:
- 至少一個持久化目錄,用來保存資料庫和應用程式資料。
- 一個隨機的
OPEN_NOTEBOOK_ENCRYPTION_KEY。 - 如果要對外開放,準備網域、HTTPS 和存取控制。
- 雲端模型的 API Key,或者已可連線的 Ollama/LM Studio 服務。
下載官方 Compose 檔案
建立獨立目錄,避免資料檔案散落在其他專案:
|
|
不要直接使用幾個月前部落格中複製的 Compose。Open Notebook 的映像檔、連接埠和資料庫設定仍可能調整,應以官方倉庫目前的檔案為準。
啟動前必須修改的設定
在 docker-compose.yml 或配套 .env 中修改加密金鑰:
|
|
這個金鑰用於保護資料庫中的 API Key。部署後不要隨意更換,否則舊憑證可能無法解密。
官方本機範例允許 SurrealDB 使用預設 root:root,但這只適合綁定於本機的測試環境。準備區域網路或公開部署時,也要設定資料庫使用者與密碼:
|
|
資料庫偵錯連接埠應繼續綁定 127.0.0.1:8000,不要為了「方便存取」改成 0.0.0.0:8000。
啟動並檢查容器
|
|
等待容器啟動後開啟:
|
|
預設連接埠中,8502 是 Web UI,5055 是 REST API,8000 是 SurrealDB 的本機偵錯連接埠。docker compose ps 應顯示應用程式和資料庫容器都在執行。
如果頁面無法開啟,先檢查日誌:
|
|
設定第一個模型
進入 Web UI 後:
- 開啟 Models。
- 選擇 OpenAI、Anthropic、Google、Ollama、LM Studio 或其他支援的 Provider。
- 新增 API Key 或本機服務位址。
- 按一下 Test 驗證連線。
- 按一下 Sync Models,同步並勾選實際要使用的模型。
- 在 Default Model Assignments 中自動或手動指派預設模型。
不是每個 Provider 都同時支援 LLM、Embedding、語音辨識和語音合成。對話成功但資料檢索失敗時,應重點檢查是否設定了可用的 Embedding 模型,而不是只更換聊天模型。
用一組小型資料完成驗收
不要一開始就匯入整個資料庫。建議建立測試 Notebook,並且只加入:
- 一份可以複製文字的短 PDF。
- 一個公開網頁。
- 一段手寫測試筆記。
然後依序驗證:
- 來源是否完成解析。
- 搜尋能否找到 PDF 中的獨特句子。
- 回答能否顯示來源或引用。
- 新增筆記後能否再次開啟。
- 重新啟動容器後資料是否仍然存在。
最後一項可以確認 surreal_data 和 notebook_data 等持久化目錄是否真正生效。
常見故障
8502 連接埠被占用
修改 Compose 左側的主機連接埠,例如:
|
|
修改後存取 http://localhost:18502,容器內部連接埠仍維持 8502。
資料庫反覆重新啟動
先查看 SurrealDB 日誌。Linux 上常見原因是掛載目錄沒有寫入權限,或使用了舊資料庫檔案但映像版本已變更。修正權限前先備份資料目錄,不要直接刪除持久化目錄重新安裝。
模型測試成功但問答失敗
依序檢查預設 LLM、Embedding 模型和來源解析狀態。私有模型服務還要確認容器能否連線到主機位址;容器中的 localhost 指向容器本身,不一定是執行 Ollama/LM Studio 的主機。
更新和備份
更新前備份 Compose、.env、資料庫及應用程式資料目錄,然後執行:
|
|
不要只備份 docker-compose.yml。真正需要復原的是持久化資料、加密金鑰和資料庫憑證。
Open Notebook 還是 NotebookLM?
如果希望開箱即用、不維護伺服器,而且接受由 Google 託管,NotebookLM 更省事。Open Notebook 更適合需要自架、多 Provider、REST API、自訂工作流程或本機模型的使用者;代價是你要負責升級、備份、權限和模型成本。