loading

Loading

首页 📂开发编程🔏工具部署

【保姆级实战】在腾讯云搭建“私有版”NotebookLM:Open Notebook 国内环境深度部署指南

字数: (3380)
阅读: (5)
0

1. 前言:为什么我们需要“私有化”的 NotebookLM?

2024年,Google NotebookLM 凭借其惊艳的“音频概览”(Audio Overview)功能,将枯燥的文献瞬间转化为如同真人对谈般的播客,重新定义了知识学习的方式。然而,作为一款闭源 SaaS 产品,它始终存在两个让开发者无法忽视的痛点:

  1. 数据隐私:将核心科研数据或企业文档上传至云端,始终悬着一把达摩克利斯之剑。
  2. 网络与生态限制:高度依赖 Google 生态,且无法自定义模型。

开源项目 Open Notebook (lfnovo) 的出现打破了这一局面。它不仅完美复刻了“左侧阅读、中间笔记、右侧对话”的经典三栏布局,更允许我们掌控数据主权。

本文将手把手教你在腾讯云服务器(或本地环境)上,利用 Docker 搭建一套针对国内网络环境优化、接入国内接口 API 的生产级 Open Notebook。

2. 架构优势与环境准备

为什么选择 Open Notebook?

  • 混合检索 (Hybrid Search) :结合向量检索与全文检索,拒绝“幻觉”。
  • 导演级播客生成:不同于 Google 的黑盒,你可以自定义嘉宾人设,甚至在生成音频前修改脚本
  • 完全私有:数据存储在本地 SurrealDB 数据库中。

推荐环境

  • 服务器:腾讯云轻量应用服务器 (Lighthouse)
  • 配置:2核 4G 或以上(推荐 Ubuntu 22.04 LTS + Docker)
  • 网络:国内网络环境(本文方案已包含 API 接口加速配置)

3. 部署实战:国内环境定制版

为了解决国内访问 GitHub 镜像慢、OpenAI 接口不通等问题,我们定制了一套“抗网络波动”的部署方案。

第一步:创建项目目录

登录你的腾讯云服务器,创建工作目录:

mkdir open-notebook
cd open-notebook

第二步:配置 Docker Compose (已优化时区与保活)

在目录下创建 docker-compose.yml 文件。
优化点说明:

  • restart: always:防止因网络波动导致服务意外停止。
  • TZ=Asia/Shanghai:强制同步国内时区,确保笔记时间戳准确。
version: '3.8'

services:
  # --- 数据库服务 (SurrealDB) ---
  surrealdb:
    image: surrealdb/surrealdb:latest
    container_name: open_notebook_db
    restart: always
    user: root
    environment:
      - TZ=Asia/Shanghai
    ports:
      - "8000:8000"
    volumes:
      - ./data/surrealdb:/mydata
    command: start --log trace --user root --pass root file://mydata/surreal.db

  # --- 后端服务 (Python/FastAPI) ---
  backend:
    image: ghcr.io/lfnovo/open-notebook-backend:latest
    container_name: open_notebook_backend
    restart: always
    environment:
      - TZ=Asia/Shanghai
    depends_on:
      - surrealdb
    env_file:
      - .env
    ports:
      - "5055:5055"
    volumes:
      - ./data/uploads:/app/uploads
      - ./data/cache:/app/cache

  # --- 前端服务 (Next.js) ---
  frontend:
    image: ghcr.io/lfnovo/open-notebook-frontend:latest
    container_name: open_notebook_frontend
    restart: always
    environment:
      - TZ=Asia/Shanghai
    depends_on:
      - backend
    env_file:
      - .env
    ports:
      - "8502:3000" # 访问端口

第三步:配置环境变量以及解决 OpenAI API Key获取难度问题

创建 .env 文件。
优化点说明:

  • 集成 sg.uiuiapi.com 接口,解决 OpenAI 直连不通的问题。
  • 增加 API 超时时间,适应跨洋网络延迟。
# --- 核心网络配置 ---
# ⚠️ 注意:服务器部署请将 localhost 改为你的公网 IP
API_URL=http://localhost:5055
INTERNAL_API_URL=http://backend:5055

# --- 数据库配置 ---
SURREAL_URL=http://surrealdb:8000
SURREAL_NAMESPACE=test
SURREAL_DATABASE=test
SURREAL_USER=root
SURREAL_PASSWORD=root

# --- AI 模型配置 (国内中转加速) ---
LLM_PROVIDER=openai
# 这里填入你在uiuiAPI获取的的 API Key
OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# 关键配置:指定中转 Base URL
OPENAI_API_BASE="https://sg.uiuiapi.com/v1"
OPENAI_BASE_URL="https://sg.uiuiapi.com/v1"

# 推荐模型 (性价比之选)
DEFAULT_CHAT_MODEL=gpt-4o-mini
DEFAULT_EMBEDDING_MODEL=text-embedding-3-small

# --- 稳定性优化 ---
API_TIMEOUT=120
MAX_RETRIES=3

第四步:一键启动

docker compose up -d

启动后,使用 docker compose logs -f 查看日志,出现 Application startup complete 即表示服务正常。

4. 避坑指南:给国内开发者的 3 个建议

  1. API_URL 的陷阱
    .env 文件中,API_URL浏览器用来访问后端的地址。如果你部署在腾讯云服务器上,必须将其设置为 http://你的公网IP:5055。如果保持 localhost,你的浏览器会尝试连接你自己的电脑,导致报错。
  2. 模型选择的艺术
    配置文件中我们默认选用了 gpt-4o-mini。在 RAG(检索增强生成)场景下,它的指令遵循能力极强,且价格便宜,非常适合处理长文档的阅读和总结。
  3. 播客生成的奥义
    Open Notebook 最强的功能是“脚本可编辑”。在生成音频前,系统会先吐出一份对话脚本。建议你利用这个机会,修正 AI 对专业术语的发音提示,或者手动加入一些更自然的连接词,这样生成的播客效果会提升一个档次。

5. 界智通(jieAGI)结语

通过这套配置,我们成功在腾讯云上搭建了一个网络通畅、数据私有、功能强大的认知中台。你不再受制于网络环境,也不必担心隐私泄露。

这就是开源的力量,也是“数字第二大脑”该有的样子。快去部署试试吧!

版权信息: 本文由UIUIAPI团队编写,保留所有权利。未经授权,不得转载或用于商业用途。

转载请注明出处: 界智通

本文的链接地址: https://www.jieagi.com/aigongju/105.html

您可能对以下文章感兴趣
评论列表:
empty

暂无评论

技术博客底部