| 🤖 AI 智能助手 | ✍️ 编译与预览 | 📚 模板系统 |
|---|---|---|
| Chat / Agent 双轨历史 Tools 多轮工具调用 |
TexLive / Tectonic / Auto PDF 预览与下载 |
ACL / CVPR / NeurIPS / ICML 模板一键切换 |
| 🔄 模板转换 | ||
|---|---|---|
| 经典模式 (LaTeX→LaTeX) / MinerU 模式 (PDF→MD→LaTeX) LLM 驱动迁移 + 自动编译修复 + VLM 排版检查 |
| 🔧 高级编辑 | 🗂️ 项目管理 | ⚙️ 灵活配置 |
|---|---|---|
| AI 自动补全 / Diff / 诊断 | 多项目管理 + 文件树 + 上传 | OpenAI 兼容端点 本地部署数据安全 |
| 🔍 检索能力 | 📊 图表生成 | 🧠 智能识别 |
|---|---|---|
| WebSearch / PaperSearch | 表格直出图表 | 公式/图表智能识别 |
| 👥 实时协作 | 📝 同行评审 | |
|---|---|---|
| 多人协同编辑 光标同步与在线管理 |
AI 审稿报告 / 一致性检查 缺失引用 / 编译摘要 |
Warning
🚧 模板转换功能仍在测试中
模板转换(Template Transfer)功能目前处于测试阶段,可能存在已知或未知的 Bug。如遇到问题,欢迎在 Issues 中反馈。
Tip
🆕 2025-02 · 模板转换(双模式)
支持两种转换模式:经典模式(LaTeX→LaTeX 直接迁移)和 MinerU 模式(PDF→Markdown→LaTeX,通过 MinerU API 解析)。两种模式均支持 LLM 驱动的内容迁移、自动编译错误修复,以及可选的 VLM 排版检查。
Tip
🆕 2025-02 · 实时协作上线
支持多人同时编辑同一文档,基于 CRDT 实现光标同步与冲突自动解决。当前版本需要公网服务器部署,通过邀请令牌邀请远程协作者加入。
OpenPrism 是一个面向学术写作的本地部署 LaTeX + AI 工作台,强调高效编辑、可控改动与隐私安全。
- Chat 模式:只读对话,不改文件,适合快速问答
- Agent 模式:生成 Diff,用户确认后应用
- Tools 模式:多轮工具调用,跨文件修改(如章节 + bib)
- 任务类型:润色、改写、结构调整、翻译、自定义
- 自动补全:Option/Alt + / 或 Cmd/Ctrl + Space 触发,Tab 接受
- 编译引擎:TexLive / Tectonic / Auto 自动回退
- 预览工具栏:缩放、适合宽度、100%、下载 PDF
- 编译日志:错误解析 + 一键诊断 + 跳转定位
- 多视图:PDF / 图片列表 / Diff 视图
- 内置模板:ACL / CVPR / NeurIPS / ICML
- 模板转换:一键切换模板并保留正文内容
- 双模式:经典模式(LaTeX→LaTeX)和 MinerU 模式(PDF→Markdown→LaTeX)
- MinerU 集成:通过 MinerU API 解析 PDF,提取 Markdown + 图片,再填充到目标模板
- LLM 驱动迁移:AI 分析源/目标结构,制定迁移计划,自动映射内容
- 自动编译修复:自动检测并修复 LaTeX 编译错误,支持重试循环
- VLM 排版检查:可选的视觉排版验证,使用 VLM 检测溢出、重叠、间距等问题
- 资源处理:自动复制图片、bib 文件和样式文件到目标项目
- 多项目管理:Projects 独立面板
- 文件树管理:新建/重命名/删除/上传/拖拽
- BibTeX 支持:快速创建 references.bib
- LLM Endpoint:兼容 OpenAI API,包括自定义 base_url
- 本地存储:设置保存在浏览器 localStorage
- TexLive 配置:可自定义 TexLive 资源
- 语言切换:顶栏一键中英文切换,配置自动保存
- WebSearch:联网检索与摘要
- PaperSearch:学术论文检索与引用信息
- 表格绘图:根据表格直接生成图表
- 智能识别:公式与图表结构自动识别
- AI 质量检查:论文质量自动评估
- 完整审稿报告:生成详细的 Reviewer 风格审稿意见
- 一致性检查:术语与符号一致性检测
- 缺失引用检测:查找需要补充引用的陈述
- 编译日志摘要:汇总编译错误与修复建议
- 多人协同编辑:多用户同时编辑同一文档,实时同步
- 光标与选区同步:不同用户的光标以不同颜色显示,实时可见
- 在线用户列表:协作面板展示当前在线用户及状态
- 邀请协作:通过邀请链接或令牌邀请他人加入协作
- Node.js >= 18.0.0
- npm >= 9.0.0
- 操作系统:Windows / macOS / Linux
OpenPrism 需要 LaTeX 编译引擎来生成 PDF,请根据操作系统选择以下方案之一:
方案 1:TexLive(推荐)
- Linux (Ubuntu/Debian):
sudo apt-get update sudo apt-get install texlive-full
- Linux (CentOS/RHEL):
sudo yum install texlive texlive-* - macOS:
brew install --cask mactex
- Windows: 下载 TexLive 安装包
方案 2:Tectonic(轻量级)
- Linux/macOS:
curl --proto '=https' --tlsv1.2 -fsSL https://drop-sh.fullyjustified.net | sh
- Windows: 下载 Tectonic 安装包
注意:TexLive 完整安装约 5-7GB,Tectonic 更轻量但功能略少。推荐 Linux 服务器使用 TexLive。
# 1. 克隆仓库
git clone https://github.com/OpenDCAI/OpenPrism.git
cd OpenPrism
# 2. 安装依赖
npm install
# 3. 启动开发服务器(前端 + 后端)
npm run dev启动后访问:
# 1. 构建前端和后端
npm run build
# 2. 启动生产服务器
npm start# 1. 安装 Node.js (以 Ubuntu 为例)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# 2. 安装 TexLive
sudo apt-get update
sudo apt-get install -y texlive-full
# 3. 验证安装
node --version # 应显示 >= 18.0.0
pdflatex --version # 应显示 TexLive 版本
# 4. 克隆并部署项目
git clone https://github.com/OpenDCAI/OpenPrism.git
cd OpenPrism
npm install
npm run build
# 5. 配置环境变量(可选)
cat > .env << EOF
OPENPRISM_LLM_ENDPOINT=https://api.openai.com/v1/chat/completions
OPENPRISM_LLM_API_KEY=your-api-key
OPENPRISM_LLM_MODEL=gpt-4o-mini
OPENPRISM_DATA_DIR=/var/openprism/data
PORT=8787
EOF
# 6. 启动服务
npm start
# 7. 使用 PM2 守护进程(推荐)
sudo npm install -g pm2
pm2 start npm --name "openprism" -- start
pm2 save
pm2 startup在项目根目录创建 .env 文件(可选):
# LLM 配置
OPENPRISM_LLM_ENDPOINT=https://api.openai.com/v1/chat/completions
OPENPRISM_LLM_API_KEY=your-api-key
OPENPRISM_LLM_MODEL=gpt-4o-mini
# 数据存储路径
OPENPRISM_DATA_DIR=./data
# 后端服务端口
PORT=8787
# MinerU API 配置(用于 PDF→MD→LaTeX 转换)
OPENPRISM_MINERU_API_BASE=https://mineru.net/api/v4
OPENPRISM_MINERU_TOKEN=your-mineru-tokenOpenPrism 支持任何 OpenAI 兼容接口,包括自定义 base_url:
方式 1:环境变量配置
# .env 文件
OPENPRISM_LLM_ENDPOINT=https://api.openai.com/v1/chat/completions
OPENPRISM_LLM_API_KEY=sk-your-api-key
OPENPRISM_LLM_MODEL=gpt-4o-mini方式 2:前端设置面板
- 在前端界面点击"设置"按钮
- 填写 API Endpoint、API Key 和 Model
- 配置自动保存在浏览器 localStorage
支持的第三方服务示例:
- OpenAI:
https://api.openai.com/v1 - Azure OpenAI:
https://your-resource.openai.azure.com/openai/deployments/your-deployment - 其他兼容服务:
https://api.apiyi.com/v1
支持的编译引擎:
pdflatex- 标准 LaTeX 引擎xelatex- 支持 Unicode 和中文lualatex- 支持 Lua 脚本latexmk- 自动化构建工具tectonic- 现代轻量级引擎
配置方式:
- 在前端"设置"面板选择编译引擎
- 设置为 "Auto" 可自动回退到可用引擎
- 可自定义 TexLive 资源路径
默认数据存储在 ./data 目录,可通过环境变量修改:
# 自定义数据目录
OPENPRISM_DATA_DIR=/var/openprism/data目录结构:
data/
├── projects/ # 用户项目
│ ├── project-1/
│ │ ├── main.tex
│ │ └── references.bib
│ └── project-2/
└── templates/ # 模板缓存
OpenPrism 内置基于 CRDT(Yjs)+ WebSocket 的实时协作系统,支持多人同时编辑同一文档,无需第三方服务。
在 .env 中添加以下配置:
# 令牌签名密钥(生产环境务必修改)
OPENPRISM_COLLAB_TOKEN_SECRET=your-secure-random-string
# 是否强制令牌验证(默认 true,本地开发可设为 false)
OPENPRISM_COLLAB_REQUIRE_TOKEN=true
# 令牌有效期,单位秒(默认 86400 = 24 小时)
OPENPRISM_COLLAB_TOKEN_TTL=86400- 部署服务:将 OpenPrism 部署到有公网 IP 的服务器,配置域名与 HTTPS
- 生成邀请:在编辑页面的协作面板中点击「生成邀请链接」
- 分享链接:将生成的链接发送给协作者
- 加入协作:协作者打开链接,令牌自动验证后进入编辑器
- 实时编辑:多人光标实时可见,编辑内容自动同步,冲突自动解决
Nginx 反向代理配置(推荐,适合有公网服务器)
协作依赖 WebSocket,Nginx 需要配置升级头:
server {
listen 443 ssl;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:8787;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}提示:本地访问(127.0.0.1)默认免令牌验证,适合本地开发调试。
无公网服务器?使用内网穿透(ngrok)
没有公网服务器也可以远程协作,OpenPrism 内置了隧道支持,一条命令即可将本地服务暴露到公网。
- 注册 ngrok 免费账号,获取 authtoken
- 运行以下命令:
export NGROK_AUTHTOKEN=your_token_here
npm run tunnel:ngrok- 启动后终端会输出公网 URL,将该 URL 发给协作者即可:
OpenPrism started at http://localhost:8787
Tunnel active (ngrok):
Public URL: https://xxxx.ngrok-free.app
Share this URL to collaborate remotely!
- 协作者在浏览器打开该 URL,即可实时协作编辑
| 方案 | 命令 | 说明 |
|---|---|---|
| localtunnel | npm run tunnel |
零配置,但可能不稳定 |
| Cloudflare Tunnel | npm run tunnel:cf |
需安装 cloudflared |
注意:隧道默认关闭,普通
npm start不会创建隧道。也可通过环境变量手动指定:OPENPRISM_TUNNEL=ngrok npm start
- 创建项目:在 Projects 面板新建项目并选择模板
- 编写论文:在 Files 树中编辑 LaTeX
- AI 修改:切换 Agent / Tools,生成 diff 并确认应用
- 编译预览:点击“编译 PDF”,在右侧预览
- 导出 PDF:在预览工具栏点击“下载 PDF”
OpenPrism/
├── apps/
│ ├── frontend/ # React + Vite 前端
│ │ ├── src/
│ │ │ ├── app/App.tsx # 主应用逻辑
│ │ │ ├── app/TransferPanel.tsx # 模板转换 UI
│ │ │ ├── api/client.ts # API 调用
│ │ │ └── latex/ # TexLive 集成
│ └── backend/ # Fastify 后端
│ └── src/
│ ├── index.js # API / 编译 / LLM 代理
│ ├── routes/transfer.js # 转换 API 端点
│ └── services/
│ ├── mineruService.js # MinerU API 集成
│ └── transferAgent/ # LangGraph 转换工作流
│ ├── graph.js # 经典转换图
│ ├── graphMineru.js # MinerU 转换图
│ ├── state.js # 转换状态定义
│ └── nodes/ # 工作流节点
├── templates/ # LaTeX 模板(ACL/CVPR/NeurIPS/ICML)
├── data/ # 项目存储目录(默认)
└── README.md
欢迎提交 Issue 或 PR:
- Fork 仓库
- 新建分支
- 提交变更
- 发起 PR
开发命令:
npm run dev
npm run dev:frontend
npm run dev:backend
npm run buildMIT License. See LICENSE.
- Tectonic
- CodeMirror
- PDF.js
- LangChain
- React / Fastify













