| 功能 | 说明 |
|---|---|
| 📚 知识库管理 | 上传 PDF 等文档、粘贴网址/文本、联网搜索引入,多源聚合到笔记本 |
| 💬 智能问答 | 基于选中文档的 RAG 问答,对话历史持久化 |
| 🎨 PPT 生成 | 从知识库内容一键生成可编辑演示文稿 |
| 🧠 思维导图 | 生成 Mermaid 思维导图,支持预览与导出 |
| 🎙️ 知识播客 | 将知识库内容转为播客脚本与讲解素材 |
| 🧩 DrawIO 图表 | 从文本或图片生成可编辑 DrawIO 图表,内嵌编辑器 |
| 🃏 闪卡 | 基于知识库内容自动生成学习闪卡 |
| 📝 测试题 | 自动生成选择题,支持作答与评分 |
| 🔍 联网搜索 | 支持 Serper / SerpAPI / Google CSE / Brave / 博查等多种搜索引擎 |
| 📊 深度研究报告 | 联网搜索 + LLM 综合分析,生成结构化研究报告 |
| 🔗 语义检索 | 本地 Embedding 向量检索,支持 Top-K 与多模型 |
git clone https://github.com/your-org/opennotebookLM.git
cd opennotebookLM
# 创建虚拟环境(推荐 Conda)
conda create -n opennotebook python=3.11 -y
conda activate opennotebook
# 安装 Python 依赖
pip install -r requirements-base.txt
pip install -e .cp fastapi_app/.env.example fastapi_app/.env编辑 fastapi_app/.env,至少配置以下内容:
项目通过 OpenAI 兼容接口调用大模型,默认使用 APIyi 作为中转服务(支持 GPT / Claude / Gemini 等多种模型)。
# LLM API 地址(OpenAI 兼容格式)
DEFAULT_LLM_API_URL=https://api.apiyi.com/v1
# 你的 API Key(在 APIyi 或其他 LLM 提供商处获取)
# 前端设置面板中也可以动态配置也可以使用任何 OpenAI 兼容的 API 服务(如 OpenAI 官方、Azure OpenAI、本地 Ollama 等),只需修改
DEFAULT_LLM_API_URL即可。
联网搜索和深度研究报告功能需要配置搜索引擎 API。支持以下任一提供商:
| 提供商 | 配置方式 | 获取地址 |
|---|---|---|
| Serper(推荐) | 环境变量 SERPER_API_KEY |
serper.dev |
| SerpAPI | 前端传入 search_api_key |
serpapi.com |
| Google CSE | 前端传入 search_api_key + google_cse_id |
programmablesearchengine.google.com |
| Brave Search | 前端传入 search_api_key |
brave.com/search/api |
| 博查 | 前端传入 search_api_key |
open.bochaai.com |
Serper 通过后端环境变量配置,其他提供商在前端设置面板中填入对应 API Key 即可。
# Serper(Google 搜索),推荐
SERPER_API_KEY=your_serper_api_key用于用户认证与云存储。不配置时使用本地模拟用户,不影响核心功能。
SUPABASE_URL=https://your-project-id.supabase.co
SUPABASE_ANON_KEY=your_supabase_anon_keyuvicorn fastapi_app.main:app --host 0.0.0.0 --port 8000 --reload后端启动时会自动拉起本地 Embedding 服务(Octen-Embedding-0.6B,端口 17997),首次启动会下载模型。如需关闭本地 Embedding,设置 USE_LOCAL_EMBEDDING=0。
提供中英双前端,任选其一:
# 中文前端
cd frontend_zh && npm install && npm run dev
# 英文前端
cd frontend_en && npm install && npm run dev访问 http://localhost:3000(或终端提示的端口)。
前端的 LLM API 地址和 API Key 可在页面右上角设置面板中动态修改,无需重启。
opennotebookLM/
├── fastapi_app/ # 后端 API(FastAPI)
│ ├── routers/ # 路由:知识库、Paper2PPT、Paper2Drawio 等
│ ├── services/ # 业务逻辑:搜索、闪卡、测试题等
│ ├── config/ # 配置与环境变量
│ └── workflow_adapters/ # 工作流适配层
├── dataflow_agent/ # 工作流引擎(DataFlow-Agent)
│ ├── agentroles/ # Agent 角色定义
│ ├── workflow/ # 工作流(Paper2PPT、PDF2PPT、Image2Drawio 等)
│ ├── promptstemplates/ # 提示模板
│ └── toolkits/ # 工具集(搜索、解析等)
├── frontend_en/ # 英文前端(React + Vite + Tailwind)
├── frontend_zh/ # 中文前端
├── database/ # 数据库脚本
├── docs/ # 文档
├── script/ # 辅助脚本
├── static/ # 静态资源
└── outputs/ # 生成文件输出目录
项目采用三层模型配置体系,灵活度从粗到细:
- 基础模型层 — 定义可用模型名称(
MODEL_GPT_4O、MODEL_CLAUDE_HAIKU等) - 工作流层 — 为每个工作流设置默认模型(
PAPER2PPT_DEFAULT_MODEL等) - 角色层 — 精细控制工作流中每个角色使用的模型(
PAPER2PPT_OUTLINE_MODEL等)
详见 fastapi_app/.env.example 中的完整配置说明。
- 知识库管理(上传文件 / 粘贴网址 / 文本)
- RAG 智能问答
- PPT 生成
- 思维导图生成
- DrawIO 图表生成
- 知识播客生成
- 闪卡 & 测试题
- 联网搜索引入来源
- 深度研究报告
- 本地 Embedding 向量检索
- 🔨 视频生成(开发中)
- 🔨 视频来源引入(开发中)
- 🔨 音频来源引入(开发中)
欢迎提交 Issue 和 Pull Request。详见 贡献指南。
生成功能基于 OpenDCAI/Paper2Any。
若本项目对你有帮助,欢迎 ⭐ Star













