找到
10
篇与
资源分享
相关的结果
-
【PDF2zh 2.0】三种部署指南与 Zotero 插件配置 写在前面:让 PDF 论文翻译不再是噩梦 还在为密密麻麻的英文 PDF 论文头疼吗?好消息是,PDF2zh 2.0 带着它的全新引擎 BabelDOC 来了!这次升级不仅带来了更优雅、更忠于原文的排版,还让翻译体验丝滑得不像话。 本文将是一份超详细的“保姆级”教程,专为几乎没有编程经验的“代码小白”量身定制。我们将手把手带你走通三种主流部署方案: 懒人福音:Windows .exe 一键启动。 极客之选:使用 uv 搭建本地 Python 虚拟环境,体验飞一般的速度。 省心大法:通过 Docker 容器化部署,一次配置,处处运行。 同时,我们也会讲清楚如何配置 Zotero-PDF2zh 插件,让你的文献管理与翻译工作流无缝衔接。 ⚙️ 运行环境示例 • Windows 11 64-bit • Python 3.12.8 • Docker 28.1.1传送门: PDF2zh 2.0 项目主页:pdf2zh-next.com Zotero-PDF2zh 插件仓库:guaguastandup/zotero-pdf2zh BabelDOC 引擎仓库:funstory-ai/BabelDOC 本博文视频讲解:【PDF2zh 2.0】三种部署指南与 Zotero 插件配置_哔哩哔哩_bilibili 1. 关键须知:部署前的“排雷”清单 在开始之前,请务必阅读以下关键信息,这能帮你避免 90% 的常见问题。 工具概览 名称简介核心亮点兼容/运行环境PDF2zh 2.0 (pdf2zh_next)独立的科研 PDF 翻译引擎,提供 CLI 和 Web UI✨ 公式/图表完美保留 ✨ 双语对照/纯译文自由切换 ✨ 兼容多种翻译服务 (Bing/Google/LLMs)Python 3.10–3.13Zotero-PDF2zhZotero 插件,调用本地 PDF2zh 服务✨ 一键翻译 + 双栏裁剪 ✨ 译文自动写入 Zotero 条目Zotero 7uv基于 Rust 的超高速 Python 打包与解析器✨ 极致的依赖解析与安装速度 ✨ 轻量级虚拟环境管理Win / macOS / LinuxDocker Desktop业界标准的容器化管理平台✨ 一次配置,处处运行 ✨ 环境隔离性最强,易于迁移与分享Windows 11🚨重大兼容性警告:请仔细阅读! 新旧版本服务不互通 PDF2zh 2.0 (pdf2zh_next) 是一个全新的大版本,其服务与 1.x 版本完全不兼容。如果你电脑上安装过旧版,建议在开始前将其卸载,以免冲突。 # 检查是否安装了旧版 pip show pdf2zh # 如果有,则卸载 pip uninstall pdf2zhPDF 文件格式要求 用于翻译的 PDF 文档必须是文本可选、可复制的格式。如果你的 PDF 是扫描件(即图片),请在翻译时启用 OCR workaround 选项。为了省心,可以直接在 Web UI 设置中开启 Auto enable OCR workaround,让程序自动探测。 2. 如何选择最适合的路线? 三条大路通罗马,哪条是你的“天选之路”?看这张表就够了。 维度路线 A:.exe路线 B:uv路线 C:Docker上手难度⭐ (新手友好)⭐⭐⭐ (熟悉命令行)⭐⭐ (推荐)环境隔离弱中强 (无污染)资源占用低低中(Docker Daemon)部署耗时秒级秒级首次拉镜像略慢配置弹性GUI 即改本地文件即改GUI 即改网络依赖普通网络环境可能需外网镜像已打包Zotero 联动❎不支持✅ 支持 (所有版本都可)❎不支持作者建议: “我只想点点鼠标,需求只有GUI” → 路线 A。下载、解压、双击,三步搞定,立即体验核心翻译功能。 Python 爱好者/开发者 → 路线 B。uv 的速度与优雅,一旦用过就再也回不去了。 追求稳定与“一劳永逸” → 路线 C。Docker 是现代开发的黄金标准,帮你屏蔽一切环境差异,今天能用,明天、换台电脑、分享给朋友,照样能用。 选择困难症?小白一枚? → 听我的,直接上 路线 C。Docker 就是你的“环境金钟罩”,能帮你挡掉绝大多数莫名其妙的本地问题。 PDF2zh vs. 沉浸式翻译 成本考量: PDF2zh 2.0 自行部署需承担 API调用费用(翻译一页约消耗8,000 Tokens)。作为对比,商业服务“沉浸式翻译”的 Pro 会员提供了按月付费的翻译额度(具体价格请以官方为准)。 选择建议: 如果你翻译量巨大、追求极致便利性,或者不想折腾本地环境,付费的商业翻译服务或许是更省心的选择。反之,如果你享受 DIY 的乐趣,并希望对翻译过程有完全的控制权,PDF2zh 是你的不二之选。 3. 部署前准备 根据你选择的路线,按需准备。 组件建议版本用途 & 下载链接Windows .exe最新版(路线 A) 开箱即用,提供 Web UI,但无法与 Zotero 联动。Python3.10 – 3.13(路线 B + zotero联动) 运行 PDF2zh 服务端。 下载地址Zotero7.x强大的文献管理工具,插件运行的宿主。 下载地址Docker Desktop≥ 4.29(路线 C) 容器化部署平台。 下载地址uv最新版(路线 B) 闪电般的 Python 环境与包管理器。API Key (可选)Bing (免 Key);或 GPT/DeepSeek/Gemini 等用于连接第三方翻译服务,以获取更高质量的译文。4. 路线 A:Windows .exe 极速体验 此路线最为简单,三步搞定,无需任何编程知识。 第一步:下载 前往 PDF2zh 2.0 Releases 页面。 第二步:选择正确的版本 找到并下载名为 pdf2zh-<version>-with-assets-win64.zip 的文件。 下载贴士: 强烈推荐 *-with-assets-* 版本,它已打包所有必需的字体和模型,可完全离线运行。 不带 assets 的版本,首次运行时需在线下载资源,若网络环境不佳极易失败。 第三步:运行 解压下载的 .zip 文件,找到并双击 pdf2zh.exe。程序启动后,应该会自动在你的默认浏览器中打开 Web UI。 第四步:手动访问 (如果需要) 如果浏览器没有自动弹出,请手动打开浏览器,在地址栏输入 http://127.0.0.1:7860/ 并访问。 5. 路线 B:本地虚拟环境 + Uvicorn (uv 驱动) 此路线为你提供一个由 uv 管理的、干净且高效的本地 Python 运行环境。这是目前在 pdf2zh 2.0 版本下,唯一支持 Zotero 插件联动的官方推荐路线。 我们将分两步完成: 基础环境搭建:安装并配置 pdf2zh,实现命令行和 Web UI 的基本翻译功能。 Zotero 联动配置:搭建一个专门服务于 Zotero 的后台进程,实现“一键翻译”的终极体验。 第一部分:搭建基础 uv 环境并运行 pdf2zh 小贴士 下文默认你已正确安装 Python 与 pip。uv 会利用你已有的 Python,但如果你是完全从零开始,建议先访问 Python 官网 完成基础安装。步骤 1:安装 uv 并创建虚拟环境 创建项目文件夹:在你的硬盘上选择一个合适的位置,创建一个专门用于本项目的文件夹。 win/macOS / Linux: mkdir zotero-pdf2zh2.0 && cd zotero-pdf2zh2.0 # 在你喜欢的位置创建项目文件夹并进入 通过图形界面创建: 在任意位置(例如 D:\projects\)右键新建文件夹,命名为 zotero-pdf2zh2.0。 打开终端窗口: Windows 用户: 在刚刚创建的文件夹的地址栏中输入 cmd 或 powershell,然后按回车,即可在当前目录下快速启动终端。 macOS / Linux 用户: 在文件夹上右键选择“在终端中打开”,或直接使用 cd 命令导航至该目录。 执行 uv 命令三连: # 步骤一:安装 uv (如果网络通畅,推荐此法) # 此命令会从官方源下载并执行安装脚本,推荐使用。 powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # 备用方法:如果已安装 Python 和 pip,也可用 pip 安装 uv # pip install uv # 步骤二:使用 uv 创建一个名为 .venv 的虚拟环境,并指定使用 Python 3.13 # 编者注:uv 会自动查找你电脑上已安装的 Python 3.13,如果没有则会提示下载。 uv python install 3.13 # 安装3.13版本python uv venv --python 3.13 # 步骤三:激活(进入)这个虚拟环境,成功后命令行前面会出现 (zotero-pdf2zh2.0) 标志 .\.venv\Scripts\activate 🖼️ 配图示例 图1图片Linux / macOS # 创建并进入项目文件夹 mkdir -p ~/projects/pdf2zh cd ~/projects/pdf2zh # 步骤一:安装 uv curl -LsSf https://astral.sh/uv/install.sh | sh # 备用方法:如果已安装 Python 和 pip,也可用 pip 安装 uv # pip install uv # 步骤二:创建虚拟环境 uv python install 3.13 # 安装3.13版本python uv venv --python 3.13 # 步骤三:激活虚拟环境 source .venv/bin/activate✨ PyCharm 用户? > > 新版 PyCharm (≥ 2023.3) 已原生支持 uv。在新建项目时,可以直接选择 uv 作为虚拟环境工具,IDE 会自动完成上述步骤。PyCharm 2024.3.2 及更高版本已支持直接创建 uv 虚拟环境: 新建项目。 位置 选择虚拟环境目录。 解释器类型 选 自定义环境 环境 → uv。 基础 Python 指定所需版本(示例:Python 3.13)。 如本机未装 uv,可点击 安装 uv via pip 自动安装。 🖼️ 配图示例 Pycharm-uv-setup图片步骤 2:安装pdf2zh 在已激活虚拟环境的终端中,执行以下命令: # 使用 uv 安装 依赖,如果只有Gui需求那么只安装 pdf2zh_next uv pip install pdf2zh_next pypdf flask编者注: uv pip 命令与原生 pip 几乎完全兼容,但速度快得多。 如何更新 pdf2zh_next ? 同样在激活的虚拟环境中,运行: uv pip install -U pdf2zh_next步骤 3:日常使用方式 方式 1 :Web UI pdf2zh_next --gui # 启动 Web UI 服务,默认监听 7860 端口服务启动后,在浏览器访问 http://127.0.0.1:7860/ 即可看到熟悉的 Web 界面。保持这个命令行窗口不要关闭,服务才能持续运行。 方式 2 :命令行翻译 # 示例:直接翻译一个位于桌面、文件名带空格的 PDF # 编者注:带空格的文件路径最好用引号括起来 pdf2zh_next "C:\Users\YourName\Desktop\my test paper.pdf"特别提示: 安装 pdf2zh_next 后,可通过命令 pdf2zh、pdf2zh2 或 pdf2zh_next 调用同一 CLI,三者等价;例如: pdf2zh example.pdf --pages 1-3 执行后,译文文件会直接输出在当前工作目录。 更多高级用法,请参阅 官方文档-高级用法。 第二部分:解锁 Zotero 联动终极形态 现在,让我们在已搭建好的环境基础上,配置 Zotero 插件,实现从文献管理到一键翻译的无缝工作流。 核心原理:Zotero 插件本身不执行复杂的翻译任务,它更像一个“调度员”。它会向本地的 8888 端口发送翻译请求。因此,我们需要启动一个专门的 server.py 脚本,让它作为“翻译管家”在该端口监听并响应 Zotero 的指令。 步骤 1:安装 Zotero-PDF2zh 插件 前往 Zotero 插件市场 (中文社区) 或 GitHub Releases 下载最新版的插件 .xpi 文件。 打开 Zotero,依次点击菜单栏 工具 → 插件。 将下载的 .xpi 文件直接拖入弹出的插件窗口,即可自动安装。安装后重启 Zotero。 步骤 2:准备服务端文件 准备必要文件 回到我们最开始创建的文件夹下面,打开命令行窗口 # --- 第 1 步:确保你位于正确的项目目录 --- cd "/path/to/your/zotero-pdf2zh2.0" # 你的文件夹路径 # --- 第 2 步:下载作为“翻译中介”的 server.py 脚本 --- # 使用 curl 下载脚本到当前目录,并命名为 server.py curl -o server.py "https://raw.githubusercontent.com/guaguastandup/zotero-pdf2zh/main/server.py" # Windows 备用(powershell) # powershell -command "Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/guaguastandup/zotero-pdf2zh/main/server.py' -OutFile 'server.py'" # [备用“笨办法”] # 如果以上命令因网络问题失败,请手动: # 1. 在浏览器中打开 "https://raw.githubusercontent.com/guaguastandup/zotero-pdf2zh/main/server.py" # 2. 在打开的页面上右键 -> "另存为...",将文件保存到你刚刚创建的 zotero-pdf2zh2.0 文件夹中。 # --- 第 3 步:创建一个用于存放翻译结果的文件夹 --- mkdir translated # 创建名为 translated 的文件夹,用于存放 Zotero 调用后生成的翻译 PDF 生成并配置 config.toml Zotero 服务端需要一个配置文件来读取你的 API Key 和翻译偏好。 生成配置:先在终端运行一次 pdf2zh_next --gui 启动 Web UI。在网页上配置好你的翻译服务(如填入 API Key)、模型等,并成功翻译一份任意小文档以确保配置生效并保存。 复制配置:关闭 Web UI,执行以下命令将生成的全局配置文件复制到我们当前的服务目录中。 # 复制生成的 config.v3.toml 到当前目录并重命名为 config.toml # Windows (cmd): copy "%USERPROFILE%\.config\pdf2zh\config.v3.toml" config.toml # Windows (PowerShell): Copy-Item "$env:USERPROFILE\.config\pdf2zh\config.v3.toml" -Destination "config.toml" # macOS / Linux: cp ~/.config/pdf2zh/config.v3.toml ./config.toml 启动 Zotero 专用服务 # 直接用虚拟环境的python解释器运行 server.py uv run python server.py此时,你的项目文件夹结构应该如下所示,非常清晰: zotero-pdf2zh2.0/ ├── .venv/ # uv 创建的虚拟环境 ├── config.toml # 你的翻译配置文件 ├── server.py # Zotero 监听服务脚本 └── translated/ # 存放翻译结果的文件夹步骤 3:配置 Zotero 插件 回到 Zotero,编辑 -> 首选项 -> PDF2zh。 翻译引擎:选择 pdf2zh-next。 zotero-pdf2zh插件设置图片 配置文件路径:改为: ./config.toml 翻译文件输出路径:改为./translated/或者留空 其他选项按需配置即可。 在zotero插件中,pdf2zh-next可以配置字段: 翻译服务 线程数 (对应pdf2zh_next里的qps) 翻译文件输出路径 配置文件路径(格式为toml) 跳过最后几页不翻译 重命名条目为短标题 默认生成文件(不支持生成双语对照文件-单栏PDF) 支持的服务商自查方法: 想知道在 Zotero 中你的 pdf2zh_next 版本具体支持哪些翻译服务吗?可以查看以下路径: zotero-pdf2zh2.0\.venv\Lib\site-packages\pdf2zh_next\translator\translator_impl (Windows) 或 zotero-pdf2zh2.0/.venv/lib/python3.13/site-packages/pdf2zh_next/translator/translator_impl (macOS/Linux) 文件夹内的 xx.py 文件名就对应着一个可用的翻译服务。例如,看到 openai.py 就意味着支持 OpenAI。动手能力强的用户甚至可以参照现有文件,自行编写新的翻译服务适配器。懒人福音:一键启动本地翻译服务 每次启动本地翻译服务,都要打开黑乎乎的窗口,输入一长串记不住的命令,是不是感觉又麻烦又容易出错?别担心,下面这个“一键启动”脚本就是为你准备的!只需设置一次,之后双击一下就能搞定。 我们为 Windows 和 macOS / Linux 系统分别准备了脚本,请根据你的电脑系统选择对应的指南。 Windows 用户指南:创建 .bat 魔法脚本 这个脚本会自动帮你完成所有步骤:进入项目目录、激活“虚拟环境”、再运行服务程序。 @echo off rem 设置窗口编码为 UTF-8,防止中文路径或提示语变成乱码 chcp 65001 rem ===【新手必读:请修改这里!】=== rem 下面这行路径需要换成你自己的! set "PROJECT_PATH=D:\python_project\zotero-pdf2zh2.0" rem ===【修改结束】=== echo. echo ======================================================== echo Zotero 翻译服务一键启动脚本 echo ======================================================== echo. rem [步骤 1/3] 进入项目目录,若失败则退出 cd /d "%PROJECT_PATH%" >nul 2>&1 if errorlevel 1 ( echo 错误:无法进入项目目录!请检查 PROJECT_PATH 设置是否正确。 echo 你的路径设置是: %PROJECT_PATH% pause exit /b 1 ) echo [步骤 1/3] 已成功进入项目目录: %cd% echo. rem [步骤 2/3] 激活 Python 虚拟环境 echo [步骤 2/3] 正在激活 Python 虚拟环境... call .\.venv\Scripts\activate echo - 虚拟环境已激活! echo. rem [步骤 3/3] 启动翻译服务 echo [步骤 3/3] 准备启动翻译服务... uv run python server.py echo - 服务已启动!请勿关闭此窗口。 echo. echo ======================================================== echo. rem 为了能看到脚本输出,保持窗口开启 pause手把手教你用: 找到项目路径(关键一步!) 打开你的“文件资源管理器”。 找到你存放 zotero-pdf2zh2.0 的那个文件夹。 单击文件夹顶部的地址栏(如下图所示),路径就会被完整选中。 按下 Ctrl + C 复制这个路径。 创建并编辑脚本文件 在桌面或任何你喜欢的地方,右键单击 -> 新建 -> 文本文档。 打开这个新建的文本文档,将上面灰色代码块里的全部代码复制粘贴进去。 找到 set "PROJECT_PATH=..." 这一行,把你刚刚复制的路径粘贴进去,替换掉原来的 D:\... 路径。确保路径被英文双引号"包围。 正确保存文件 在记事本里,点击左上角 文件 -> 另存为。 在弹出的窗口中,将底部的“保存类型”从 文本文档(*.txt) 改为 所有文件(*.*)。 将“文件名”修改为 启动翻译服务.bat。 点击“保存”。现在,一个带齿轮图标的脚本文件就创建好了。 运行! 找到你保存的 启动翻译服务.bat 文件,直接双击它。一个黑色的命令窗口会弹出,并自动执行所有操作。看到 pause 提示的“请按任意键继续...”时,就说明服务已成功运行! 友情提示:只要服务在运行,这个黑色窗口就不能关闭。用完翻译功能后,直接关掉它即可。macOS / Linux 用户指南:创建 .sh 高效脚本 #!/bin/bash # ===【新手必读:请修改这里!】=== # 下面这行路径需要换成你自己的! PROJECT_PATH="/Users/your_username/Documents/zotero-pdf2zh2.0" # ===【修改结束】=== echo "" echo "========================================================" echo " Zotero 翻译服务一键启动脚本 (macOS/Linux)" echo "========================================================" echo "" # 切换到项目目录,如果失败则会提示并退出 cd "$PROJECT_PATH" || { echo "错误:无法找到项目目录!请检查 PROJECT_PATH 设置是否正确。"; echo "你的路径设置是: $PROJECT_PATH"; exit 1; } echo "[步骤 1/3] 已成功进入项目目录: $(pwd)" echo "" # 激活 Python 虚拟环境 echo "[步骤 2/3] 正在激活 Python 虚拟环境..." source ./.venv/bin/activate echo " - 虚拟环境已激活!" echo "" # 运行 Python 服务器 echo "[步骤 3/3] 准备启动翻译服务..." uv run python server.py echo " - 服务已启动!关闭此终端窗口即可终止服务。" echo "" echo "========================================================"手把手教你用: 找到项目路径(Mac 用户有妙招!) macOS 妙招:打开“访达 (Finder)”,找到 zotero-pdf2zh2.0 文件夹。然后打开“终端 (Terminal)” App(你可以在“启动台”里找到它)。在终端里输入 cd (注意 cd 后面有个空格),然后直接用鼠标把文件夹从访达拖到终端窗口里,松开鼠标,完整的路径就会自动出现在终端里了!按下 Ctrl + C 复制它。 Linux 用户:通常可以在文件管理器中右键点击文件夹,选择“复制路径”或“属性”来查看。或者在终端中进入该目录后,使用 pwd 命令查看当前路径。 创建并编辑脚本文件 打开任意文本编辑器(如 VS Code 或系统自带的“文本编辑”)。 将上面灰色代码块的全部内容复制粘贴进去。 找到 PROJECT_PATH="..." 这一行,用你刚刚获取的路径替换掉引号里的示例路径。 保存文件 将文件保存为 start_server.sh。请确保它是纯文本格式。 给脚本“授权”(只需一次) 在“终端”里,使用 cd 命令进入你保存 start_server.sh 的目录(例如 cd Desktop)。 运行以下命令,给脚本执行的“许可”: chmod +x start_server.sh 这行命令的意思是“允许这个文件被执行”,是安全措施,只需在第一次使用时运行。 运行! 在终端中,确保你位于脚本所在的目录,然后输入以下命令并按回车: ./start_server.sh 现在,你的翻译服务已经启动。享受高效的文献翻译体验吧! 6. 路线 C:Docker 一键容器化 (省心之选) 把整套 PDF 翻译工具“打包”进 Docker 镜像,是目前最省心、最具可复现性的方案。你无需折腾 Python 依赖或虚拟环境,在任何安装了 Docker 的操作系统上(Windows/macOS/Linux),体验都完全一致:拉取 → 运行 → 浏览器访问,三步搞定。 准备工作:安装 Docker 在开始之前,请确保你的电脑已经安装了 Docker Desktop 并已成功启动: # 验证版本,能看到版本号即可,如:Docker version 28.1.1, build 4eba377 docker -v # 查看 Docker 运行信息,若无报错,说明 Docker 引擎已就绪 docker info如果尚未安装,请参考以下资源: 官方文档 & 安装指南:Docker Desktop 下载 博文【Docker】告别环境配置噩梦:从零到一的安装指南 - 她笑中藏泪花 视频【Docker】告别环境配置噩梦:从零到一的安装指南_哔哩哔哩_bilibili 6.1 第一步:选择镜像源 在开始之前,我们需要告诉 Docker 从哪里去下载这个工具的“安装包”(在 Docker 的世界里,这叫镜像 Image)。 把它想象成一个应用商店: 官方源 (Docker Hub):这是全球官方商店,通常速度最快、最可靠。 镜像地址:awwaawwa/pdfmathtranslate-next GitHub Container Registry(备用):当官方源网络不佳时可选 ghcr.io/pdfmathtranslate/pdfmathtranslate-next:latest 国内源 (镜像加速器):如果访问官方商店很慢或被“墙”,这些就是开在国内的“分店”或“代购点”,能帮你更快地拿到货。 常见镜像地址格式(任选其一即可): hub.xdark.top/awwaawwa/pdfmathtranslate-next:latest docker.xuanyuan.me/awwaawwa/pdfmathtranslate-next:latest docker.1ms.run/awwaawwa/pdfmathtranslate-next:latest 6.2 第二步:拉取镜像 —— 把“安装包”下载到本地 选好了商店,我们现在就用 docker pull 命令把“安装包”下载到你的电脑里。 首选:从官方源拉取 docker pull awwaawwa/pdfmathtranslate-next:latest小贴士 镜像末尾的 :latest 是一个“标签 (Tag)”,代表最新版本。你也可以换成具体的版本号,例如 :2.0.10,以使用特定版本。 拉取一次后,再次运行同样命令会检查更新;若本地已有最新镜像,将直接跳过下载。 如果拉取过程中速度过慢或卡住,可以按 Ctrl + C 中断。 备选:当官方源访问受限时 如果 Docker Hub(官方源)访问困难,可以尝试项目在 GitHub 的官方容器仓库 (GHCR): docker pull ghcr.io/pdfmathtranslate/pdfmathtranslate-next:latest最后的选择:使用国内加速镜像 如果以上两种方式都非常缓慢,可以尝试由社区或第三方提供的国内镜像源。请注意,这些源的更新可能不及时。使用时,需将完整的镜像地址替换掉。 # 示例:使用 dislabaiot.xyz 源 (请将此地址替换为你信任的、可用的加速器地址) docker pull dislabaiot.xyz/awwaawwa/pdfmathtranslate-next:latest新手小贴士 docker pull 是一个一次性动作。镜像下载到本地后,就像软件安装好了,以后随时可以运行,无需重复下载。 如果下载进度条卡住不动,可以按 Ctrl + C 中断它,然后换一个国内源地址再试一次。 6.3 第三步:运行容器 —— 启动你的翻译服务! 镜像下载完毕,现在我们用 docker run 命令来启动它。运行中的镜像实例,就叫做“容器 (Container)”。它是一个隔离的、包含了我们所需服务的小型“虚拟机”。 docker run -d --name pdf2zh -p 7860:7860 awwaawwa/pdfmathtranslate-next一句话解释: 这条命令会让容器在 后台 安静地跑起来,把你电脑的 7860 端口映射到容器的 7860 端口,然后启动名为 awwaawwa/pdfmathtranslate-next 的镜像。参数“人话”解析 docker run: “Docker,给我跑起来这个东西!” -d (detach): 让容器在后台安靜工作,不占用你当前的终端窗口。 --name pdf2zh: 给你的容器起一个独一无二的名字叫 pdf2zh,就像给宠物起名,方便以后按名字找它(停止、重启等)。 -p 7860:7860: 这是最关键的端口映射。它像一个电话转接员,把访问你电脑本机 7860 端口的请求,全部转接给容器内部的 7860 端口来处理。格式是 -p <本机端口>:<容器端口>。 awwaawwa/pdfmathtranslate-next: 告诉 Docker 你要运行哪个镜像。 6.4 第四步:访问翻译服务 见证奇迹的时刻! 打开你的任意网页浏览器(如 Chrome, Edge, Firefox)。 在地址栏输入:http://127.0.0.1:7860/ 127.0.0.1 是一个特殊的地址,就代表“我这台电脑自己”。 如果一切顺利,你应该能看到 PDF 翻译工具的界面了。现在,可以上传 PDF 文件开始使用了! 管理你的容器 记住你给容器起的名字 pdf2zh,后续就可以像遥控器一样,用以下命令来管理这个在后台运行的服务: 操作命令说明启动服务docker start pdf2zh在后台再次启动停止服务docker stop pdf2zh暂停容器,服务下线查看实时日志docker logs pdf2zh实时打印运行日志,便于排错重启服务docker restart pdf2zh相当于 stop + start删除容器docker rm pdf2zh删除记录(容器停止后才能删)小白必看:如何替换成国内镜像 先“拉取”国内镜像(只要做一次): docker pull hub.xdark.top/awwaawwa/pdfmathtranslate-next:latest 运行时用国内镜像名: docker run -d --name pdf2zh -p 7860:7860 hub.xdark.top/awwaawwa/pdfmathtranslate-next:latest 确认 打开浏览器访问:http://127.0.0.1:7860/ 出现 Web UI,说明替换成功! Tip: 镜像前缀可以换成任意可用源,格式一致。这是一些国内的镜像源: 如果不确定完整的镜像名称,可打开 Docker Desktop → Images → 找到你的镜像 → 点击复制图标。 只需将命令末尾的镜像名换成你之前拉取的国内源地址即可。不确定完整的镜像名? 打开 Docker Desktop。 点击左侧菜单的 Images。 找到你下载的镜像,将鼠标悬停在镜像名称上,点击出现的复制图标即可。 镜像名称图片 7. 常见问题与排障 7.1 快速排障指南 场景可能原因解决方案PDF 复制乱码PDF 内嵌字体有问题或阅读器兼容性差尝试换用其他 PDF 阅读器(如 Zotero、Acrobat)打开并复制。端口占用7860 / 8888 被占netstat -ano 找占用进程,或指定新端口Timeout / 429免费 API 接口达到频率限制降低并发 / 更换 API KeyZotero 连接失败防火墙 / 未监听 0.0.0.01. 检查 Windows 防火墙,放行 Python 或 Docker。 2. 确保路线 B 的启动命令包含了 --host 0.0.0.0。Web UI 白屏容器未起 / 端口冲突1. 运行 docker ps 查看容器是否在 Up 状态。 2. 运行 docker logs pdf2zh-service 查看容器日志,定位具体错误。富文本占位符错乱LLM 匹配错误开启 Enhance compatibility;DeepSeek-V3 命中率最低7.2 关于“自定义 Prompt”的成本考量 pdf2zh-next 会将 PDF 拆分为许多小片段,并为每个片段发起一次 API 请求。若启用自定义 Prompt,这个 Prompt 会被附加到每一次请求上,其 token 成本也因此被成倍累加。 决策关键:你的 API 服务商是否支持 KV Cache (上下文硬盘缓存) 技术。这是一种上下文记忆机制,能避免对固定 Prompt 的重复计费。 ✅ 强烈建议开启: 如果你的 API 服务商支持 KV Cache。此时,自定义 Prompt 的成本几乎可以忽略不计,请放心使用,以换取更稳定、更优质的翻译效果。 ❌ 果断建议关闭: 如果你的 API 服务商不支持 KV Cache。在这种情况下,为避免不必要的开销,关闭此功能是最理性的选择。 最新版自定义Prompt参考 7.3 解读 RPS、QPS 与线程数:pdf2zh 是如何工作的? 许多用户在配置 pdf2zh 时,会对“线程数”、“RPS” 或 “QPS”感到困惑,误以为它们能让整个翻译过程“多核并行”。这里,我们用一个生动的比喻来彻底讲清它的工作机制。 一个“单人备菜,多人上菜”的厨房 想象 pdf2zh 是一个高效的翻译厨房: 备菜阶段 (单线程):厨房里只有一位主厨(CPU 单核心)。他负责所有前期准备工作:接收整本 PDF、逐页拆解、提取段落、清洗文本格式。无论你请多少个服务员,备菜的厨师始终只有一位,所以这个阶段是单线程的。 上菜阶段 (多并发):一旦主厨把菜(处理好的文本片段)备好放在出餐口(任务队列),你所设置的“线程数”就相当于你雇佣的服务员团队。他们(asyncio + httpx)会一拥而上,以最快速度将菜品并发地送往大模型(LLM)这张“餐桌”进行翻译。 “线程数”的多种“马甲” 请注意,在工具的不同界面中,这个“服务员团队的规模”有不同的叫法,但它们本质上是同一个概念: Web UI 中的 RPS (Requests Per Second) config.toml 文件中的 qps (Queries Per Second) Zotero 插件中的 线程数 它们都共同指向一件事:程序向上游 LLM 发起翻译请求的并发数量。 技术核心:为何备菜是“单线程”? 这背后的技术原因是 Python 的 GIL (全局解释器锁)。GIL 限制了在同一进程中,同一时间只有一个线程能执行 Python 的字节码。因此,对于计算密集型(CPU-bound)的 PDF 解析任务,多线程无法带来真正的并行加速。 编者注:项目未来可能会引入 GPU 加速功能来优化前处理阶段。核心优化建议 综上所述,pdf2zh 的瓶颈通常不在于前期的“备菜”,而在于后期“上菜”的效率。若想追求极致速度,你的优化重心应该放在: 🚀 选择更快的 LLM API:优先使用由 GPU 加速的、响应延迟低的服务。 🌐 保证网络质量:程序与 API 服务器之间的网络带宽和延迟至关重要。 ⚙️ 合理调整并发数:在不触及 API 服务商速率限制(Rate Limit)的前提下,适当调高 线程数 (或 QPS/RPS) 参数,让更多的“服务员”同时工作。 如何确定“合理”的并发数? 这是一个非常关键问题。设置过低会浪费性能,设置过高则会导致 API 报错。你可以遵循以下步骤来确定理论最大值: 查阅官方文档:找到你所用 API Key 对应服务商的官方文档,定位到关于“速率限制 (Rate Limit)”的说明。 关注核心指标:通常需要关注两个限制:RPM (每分钟请求数) 和 TPM (每分钟处理的 token 数)。 计算理论 RPS: 基于请求数:你的 RPS 设置不应超过 RPM / 60。 基于 Token 数:同时也要确保 RPS * 平均每请求的 token 数 < TPM / 60。 简单粗暴的算法:在不考虑 Token 限制的理想情况下,可以直接用 RPM / 60 作为你的 RPS 参考值。 编者注: 若想获得流畅的高速翻译体验,建议选用支持高 RPM(例如 1000 RPM 或更高)的 API 套餐。一个高的 RPM 指标是保证并发能力的基础。 7.4 需要更多帮助? 如果以上指南未能解决你的问题,推荐通过以下官方渠道寻求帮助: 阅读官方文档:首先查阅 官方项目 FAQ,大部分常见问题已有解答。 搜索 GitHub Issues:在 项目 GitHub Issues 区 搜索关键词,你的问题可能已经被他人提出和解决。 zotero-pdf2zh:可以查看置顶 Issue,其中包含了大量有价值的排障讨论:🔝【手动置顶】请所有遇到问题的朋友先看这里 · Issue #64 8. 收工 好了,教程到此结束。有了 PDF2zh 这个神器,希望语言不再是你科研道路上的“拦路虎”,而是可以轻松跨越的“小水沟”。 祝你少踩坑,多产出,Happy Researching!
-
【分享】一文搞定 PDF2zh & Zotero‑PDF2zh Prompt 配置(含自用 Prompt) 写在开始 在上一篇博文里,我已经详细介绍了 PDFMathTranslate 这款神器,并给出了常见问题与实用解决方案: 【PDFMathTranslate】常见问题与实用解决方案 - 她笑中藏泪花 【Zotero-pdf2zh】轻松实现 Zotero 文献翻译!手把手教你配置 pdf2zh 插件 — PDFMathTranslate - 她笑中藏泪花 这款工具支持自定义 prompt。趁着空闲时间,我写了一份通用 prompt,已经在日常翻译中跑通,分享给大家。如果在使用过程中遇到问题,欢迎在评论区交流~ 项目仓库 PDFMathTranslate: https://github.com/Byaidu/PDFMathTranslate Zotero-pdf2zh: https://github.com/guaguastandup/zotero-pdf2zh 注意事项: Tokens 消耗与费用说明 API 调用成本增加:使用该prompt调用大模型,会显著增加 tokens 消耗,进而提升总体费用。 计费参考示例: GPT‑4o Mini:$0.01 / 1K tokens GPT‑4:$0.03 / 1K tokens GPT‑3.5 Turbo:$0.002 / 1K tokens 语言差异影响:非英语语言因编码差异,tokens 使用量平均增加约 30%–50%。 翻译“重影”风险提示:使用该 prompt 时可能导致译文与原文重叠或重复的“重影”现象,尤其在复杂排版或 OCR 场景中更为明显。 BabelDOC API 状态提醒 实验性功能提示:BabelDOC 当前仍处于实验阶段,兼容性尚不稳定,可能存在调用失败或翻译文本错误。 pdf2zh 2.0 版本预告: 可能于近期发布; 将重构整体架构,显著提升性能; 强化对 BabelDOC 的全面支持。 (2025年05月23日) 使用步骤 1. GUI 界面 终端输入 pdf2zh -i 弹出 GUI 后,选择任意大模型翻译服务,点击 “Open for More Experimental Options!”。 在 “Custom Prompt for llm” 输入框里粘贴下面的 prompt,保存即可。 image.png图片 2. 命令行 将 prompt 复制到 prompt.txt。 运行 pdf2zh example.pdf --prompt prompt.txt--prompt 用来指定需要传给 LLM 的自定义提示词。 若想使用绝对路径,可直接替换文件路径: pdf2zh example.pdf --prompt "C:\Users\YourName\Documents\prompt.txt" 3. Zotero for Pdf2zh 从仓库下载最新版 server.py 在文件中找到 cmd = [ ... ];在 '--config', config.configPath, 之后回车换行,追加一行 '--prompt', './prompt.txt' 将 prompt.txt 与 server.py 放在同一目录,或确保脚本能正确定位到文件。 cmd = [ config.engine, input_path, '--t', str(config.threads), '--output', config.outputPath, '--service', config.service, '--lang-in', config.sourceLang, '--lang-out', config.targetLang, '--config', config.configPath, '--prompt', './prompt.txt' # ← 在此自定义 prompt 路径(注意:\一定要换成/) ] BabelDOC BabelDOC 是一款开源的 PDF 文档翻译工具,支持命令行和 Python API,便于在脚本中集成。它采用先进的版式保留技术,可以在翻译时完整保留原始排版、公式和图表格式。 大家可能纠结是否启用 BabelDOC。我的建议是:默认关闭。原因如下: 优点: 排版更优:开启后版面确实更美观。 目前的不足: 复制不便:翻译后的中文复制出来往往是 ASCII 编码,检索极不友好; a4df2100fba3a2453247b3a70037dff3.png图片 b2a03c247081745745c426ef90e277a6.png图片 输出易乱:大模型有时会输出诸如 **感受野** 或 v1、v2、v3 等异常格式。 image.png图片 权衡之下,我更倾向于关闭,以保证可检索性与稳定性。 prompt <role> You are an expert-level academic translator. Your specialization is translating scholarly articles, technical documents, and research papers from ${lang_in} to ${lang_out}. You function with the precision of a human subject-matter expert and the rigor of a peer-reviewed journal editor. Your process is to first understand the source text's nuances, then perform a faithful and fluent translation, and finally review for consistency and adherence to all instructions. </role> <task_definition> Translate the following plain text into ${lang_out}, ensuring a linguistically precise, lexically accurate, and syntactically fluent translation that preserves the original logic and structure. Output the translation only. </task_definition> <instructions> 1. Faithful & Unaltered Translation:Translate with absolute fidelity, never adding, omitting, or altering any information. In cases of unavoidable ambiguity in the source text, prioritize the most logical and likely meaning within the academic context while staying as close to the original phrasing as possible. The translation must derive strictly from the provided source, with no external information or commentary introduced. 2. Data & Formulas: Preserve all numerical data, units, statistical expressions (e.g., `p < 0.05`), and variable notations (`{v}`) exactly as they appear. 3. Academic Style & Tone: Adopt a formal, objective, academic register appropriate for scholarly journals in `${lang_out}`. Ensure the text is coherent, grammatically flawless, and avoids colloquialisms or contractions. 4. Terminology:Consistency: Use one single, standard translation for each technical term throughout the entire document.Standard Usage: First, infer the most likely academic field (e.g., medicine, physics, sociology) from the context of the source text. Then, use the accepted, standard technical translations from that inferred field in `${lang_out}`. In cases of general terms, use the most widely accepted standard translation.Proper Nouns: On first use, state proper nouns (e.g., organization names) in English. If no standard translation exists in `${lang_out}`, follow the English term with an accurate translation in parentheses `()`. 5. Formatting & Citations:Structure: Perfectly replicate the original document structure, including all headings, lists, tables, and figure/table references.Citations/References: Retain all citation formats (e.g., `(Author, 2023)`, `[1]`) and the entire reference list exactly as written. Do not translate author names, journal titles, or any other content within citations or references. </instructions> <output_requirements> Produce ONLY the translated text of the `<source_text>`. Do not output any other content. </output_requirements> <source_text lang="${lang_in}"> ${text} </source_text> Translated Text:结语 写到这里,本篇就分享完毕。PDFMathTranslate + 自定义 prompt 绝对是 PDF 翻译提效的「黄金组合」。愿此文能帮你把手头的外文 PDF 统统「秒」成母语,轻松专注于内容本身。如果有任何疑问,别忘了在评论区交流,一起让工作流更丝滑!
-
【玻尔科研空间站】AI驱动秒级文献检索与一站式科研功能 概述 玻尔学术空间站 · Bohrium 正在刷新学术搜索想象——平台集成 深度思考 (R1) 与 ChatGPT‑4o 双擎 AI 引擎,结合 CARSI 统一认证与 “光子” 计费体系,为研究者提供超越关键词检索的 自然语言对话 与 多模态检索(文本/图表/PDF/分子结构)沉浸式体验。 现已覆盖 1.6 亿篇论文、1.6 亿项专利及 2000 万学者画像,并凭借智能排序与相关推荐实现“秒级”热点捕捉——这是全球首个贯通“读文献→做计算→做实验→多学科协同”的AI 科研平台。 2025年5月21日,北京大学已在全校范围内正式上线 “科学导航” AI 科研平台,助力师生实时获取前沿成果,大幅提升科研效率与创新能力。由此可见,玻尔学术空间站实力雄厚、前景可期。 AI 搜索模式总览 模式核心模型主要优势光子消耗深度思考 (R1)DeepSeek-R1 推理模型完全开源 MIT 协议,方便二次开发与本地部署免费ChatGPT-4oOpenAI GPT-4o 科研定制版多语种、跨学科知识面广,适合综述与灵感碰撞30 光子 / 次作者体验:R1 的链式推理与长上下文表现更符合我的使用习惯,而 4o 在跨语种润色和创意写作场景依旧强劲。功能亮点:Bohrium VS Google Scholar 功能Bohrium AI 搜索Google Scholar文献覆盖论文 + 专利双 1.6 亿量级,实时增量爬取;内置 2000 万学者画像收录范围广,但更新频率取决于出版商检索方式自然语言 + 深度意图识别,支持图表 / PDF / 分子结构等多模态输入关键词 + 布尔运算,不解析语义,缺多模态结果呈现自动生成摘要、图表与“可操作步骤”,并支持批量问答、模型一键切换列标题 / 摘要 / 引用次数,不做综合分析可溯源性AI 答案全部附原文锚点,杜绝“幻觉”文献质量良莠不齐,常见预印本或非审稿材料可访问性注册后直链原文;国内高校 CARSI 免代理绝大多数文献需代理或镜像才能访问Zotero 插件需进入期刊官网手动保存(官方正开发一键导入)浏览器插件可直接抓取引用元数据使用示例 普通示例 想快速了解 “智慧工厂最新进展”: 选择 深度思考 (R1); 输入:「请总结 2024 年以来智慧工厂的主要突破并列出关键论文」; < 2 分钟内获得结构化摘要、核心图表与完整引用,一键跳转原文。 进阶示例 下面示例展示如何借助 Bohrium AI 搜索,自动化检索高相关度的参考文献: 请在以下句子 “{你的核心观点句子}” 的基础上,按步骤执行: 1. 在所有英文期刊论文的**摘要**和**引言**中检索,与该句子在概念层面最相似的完整句子或片段;结果必须来源于摘要/引言,可包含非连贯片段,优先检索 SCI 索引期刊及高影响因子刊物; 2. 按语义相似度降序排序,返回前 10 篇最相关论文,并标注:标题、作者、期刊名称、发表年份、影响因子、被引次数及相似度得分; 3. 输出每篇论文中最匹配的原句及其**中英文对照翻译**; 4. 为每篇文献提供可点击的引用格式与数字标号,方便在右侧参考文献列表中直接访问全文。但有时候返回的“原句”可能是基于原文总结提取的,这个时候我们可以点击右边的文章,进入到详情页面,在详情页面的右边进行ai提问,查询本文是否有和该句子意思相近的。 image.png图片 image.png图片 光子资源获取 每日签到:CARSI 登录即可领取 300 光子 / 天 邀请好友:双方各获 1000 光子 赛事 & 活动:参与 AI4S Cup、科研挑战等赢取额外光子 点此互惠 1000 光子 订阅与动态推送 期刊 / 关键词 / 学者 一键订阅,新文上线即时提醒 科研资产管理:跨论文、专利与笔记的标签体系 + 批量 AI 问答 image.png图片 知识库(Knowledge Base) 支持 Markdown / LaTeX / Python / R / Matlab 交互式运行(CPU 2 核 4 GB 免费,GPU 计费) 集成 AI 助手实时解读、补注与改写代码 可调用 Bohrium HPC 集群 与第一性原理工具,在云端复现分子动力学或量子化学实验 温馨提示:默认 1 GB 空间,建议将大文件同步本地或云盘长期保存。 image.png图片 笔记 (Notebooks) 与知识库共享运行环境,可发布公开笔记或团队私享 内置版本控制 & 差异视图,轻松追踪实验记录 浏览与收藏他人优质笔记 image.png图片 课程 & 小程序 (Apps) 60+ 免费课程:涵盖材料、化学、生医、数据科学、科研工具等 200+ 科研 App:论文搜索、期刊分区、摩尔浓度计算、实验设计……一应俱全 AI4S Cup:真实科研场景的顶级赛事,闭环“学-用-赛” image.png图片 image.png图片 本文总结 Bohrium = 搜索 + 工作流:集 AI 检索、知识库、Notebook、App 与 HPC 计算于一体。 模型优势互补:DeepSeek-R1 擅长推理与长上下文;GPT-4o 精于跨语种与创意写作。 检索体验升级:自然语言 + 多模态输入,自动产出可操作答案并溯源原文。 光子体系灵活:签到、邀请、赛事多渠道获取;R1 免费,4o 高性能。 生态丰富:订阅推送、资产管理、课程与 App 覆盖科研全流程,远超 Google Scholar 的基本检索功能。
-
【秘塔 AI 搜索】个性化 AI 老师,高效学习一站式神器 一、网站简介 秘塔 AI 搜索由 上海秘塔网络科技有限公司 打造,公司成立于 2018 年 4 月,总部位于上海徐汇区「模速空间」,并在北京、成都设立研发中心。团队自研 MetaLLM 大语言模型,秉持“用算力换人力”的愿景,为学习、科研与专业工作场景提供纯净、高效的智能检索与知识服务,目前累计用户已逾千万。 二、秘塔 AI 老师:把任何文件变成你的专属课程 访问 https://metaso.cn/study 页面,中央输入框大字写着“今天学点啥?”,这便是与秘塔 AI 老师互动的入口。功能维度体验亮点一键开课粘贴网址、上传 PDF/Word/幻灯片或直接输入概念,AI 老师会自动拆解并生成分步讲解大纲、关键概念卡片与可下载 PPT个性化讲解· 3 档知识深度:初学者 / 进阶者 / 专家 · 多元讲解风格:苏格拉底、莎士比亚、李白、屈原等,语气与例子随风格切换交互式追问生成结果后可继续提问;AI 老师会在原大纲节点插入补充说明,形成树状知识图谱多模态输出除静态课件外,可一键把讲义转成短视频或语音播报,用于翻转课堂、在线培训或自媒体科普学习闭环结果可加入“专题”知识库或“书架”,与个人笔记、外部资料整合,形成可检索、可分享的私有知识系统在 2025 年 4 月迎来公测的「今天学点啥」功能,被不少媒体称为“把老师装进浏览器的 AI 家教”。 三、AI 搜索 虽然本篇聚焦 AI 老师,但秘塔的底层能力仍离不开其 AI 搜索引擎: 纯净无广告,结果页仅保留答案与引用源。 三种搜索模式 — 简洁 / 深入 / 研究 — 对应不同信息深度需求。 全网-文库-学术 三大索引域,支持 PDF 抽取、参考文献自动生成。 四、使用方法 打开 https://metaso.cn/study → 看到 “今天学点啥?” 输入需求 关键词、问题描述、或直接上传/粘贴文档链接 选择深度 默认由 AI 判断,也可手动切换 简洁 / 深入 / 研究 阅读结果 & 追问 结构化讲解 + 参考文献 + 可下载 PPT/视频 点击 追问 扩展细节或调整讲解风格 导出 & 知识管理 一键导出 Word/PDF,或收藏至“专题 / 书架”,与个人笔记合并 五、应用场景 自学新领域:30 分钟内完成概念扫盲+进阶阅读清单 科研速读:上传论文,自动生成结构化“文献速览+批注框架” 企业内训:把内部白皮书秒变讲师课件,统一知识口径 内容创作:短视频脚本 / 公众号文章,一键从 PPT 派生 六、结语 秘塔 AI 老师让“个性化教学”从理想走向量产,将任意文本即刻转译成可交互、可深挖的多模态课程;而其背后的 AI 搜索与 MetaLLM 语义底座,则保证了内容结构化、来源可靠与持续迭代。对于想在信息洪流中高效学习、精准研究的人来说,这或许是当下最具“时间放大效应”的综合工具之一。 本博文视频讲解
-
【Zotero-pdf2zh】轻松实现Zotero文献翻译!手把手教你配置pdf2zh插件---PDFMathTranslate 缘由 最近,PDFMathTranslate推出了适配Zotero的插件,我经过一番摸索,已经可以正常使用了,这里特地整理分享给大家,方便使用。 项目地址:Zotero PDF中文翻译插件 使用步骤 一、安装或更新pdf2zh 首次安装请使用: pip install pdf2zh如果已安装,则执行下面命令更新到最新版: pip install -U pdf2zh第二步:下载并安装Zotero插件 在 Zotero 中文社区 搜索「pdf2zh」,或直接前往插件发布页 zotero-pdf2zh,下载以.xpi结尾的插件文件,亦或是Zotero插件“插件市场”里面安装。 下载完成后: 打开Zotero,依次点击 工具 → 插件; 将下载的.xpi插件文件直接拖入插件窗口即可自动安装。 第三步:配置脚本及相关文件 添加配置文件 1. 新建并配置 config.json 文件 在电脑任意位置新建一个名为 config.json 的文件,并填入以下模板: { "USE_MODELSCOPE": "0", "NOTO_FONT_PATH": "/app/SourceHanSerifCN-Regular.ttf", "translators": [ { "name": "deeplx", "envs": { "DEEPLX_ENDPOINT": "http://localhost:1188/translate/", "DEEPLX_ACCESS_TOKEN": null } }, { "name": "ollama", "envs": { "OLLAMA_HOST": "http://127.0.0.1:11434", "OLLAMA_MODEL": "gemma2" } } ] } 字体路径(NOTO_FONT_PATH)建议使用绝对路径。 具体设置可参考:example config.json 如果不确定具体如何填写配置,可以通过GUI界面查看。方法如下: 命令行运行: pdf2zh -i 在弹出的GUI界面选择对应的翻译服务,如OpenAI。将Option栏内的信息(如 OPENAI_BASE_URL 等)复制填写到config.json中即可。 image.png|400图片 Windows系统查看字体路径方法: 打开文件夹C:\Windows\Fonts 或 按 Win + i 搜索「字体」→ 打开「字体设置」→「旧字体控制面板界面」,找到对应字体后,右键→「属性」→「安全」,复制「对象名称」即为字体路径。 注意:路径中的\应替换为/或\\。 2. 新建并配置 server.py 文件 复制 server.py 的全部代码,新建文件命名为 server.py 并粘贴进去。 需要修改的是脚本中的默认配置: # 设置翻译后文件的输出路径(临时路径,用完可删) translated_dir = "./translated/" # 设置配置文件 config.json 的路径 config_path = './config.json' 建议使用绝对路径,例如:(ctrl + shift +c复制路径) translated_dir = "D:/python_project/python1/zotero-pdf2zh/translated/pdf2zh" config_path = "D:/python_project/python1/zotero-pdf2zh/config.json"3. Zotero插件内配置 打开Zotero,进入 编辑 → 设置 → pdf2zh: 「翻译配置」内容需与 server.py 文件中的路径一致。 如果更换翻译服务,先在config.json中确认配置无误后再调整此处配置。 「重命名条目为短标题」建议勾选,以防止因文件路径过长导致翻译失败。 「默认生成文件」选项根据个人需求勾选。 image.png图片 如何使用插件翻译PDF 首先运行 server.py 脚本: python server.py 然后在Zotero中找到需要翻译的文献PDF,右键点击: 选择 PDF2zh:Translate PDF,即可开始翻译; 默认生成两个文件: dual:一页原文、一页译文交替; mono:纯翻译版本。 image.png图片 插件提供了另外两个有用的功能: PDF2zh:Cut PDF 将双栏PDF剪切为单栏,更适合手机等移动设备阅读。 生成的单栏PDF文件名含有cut标识。 PDF2zh:中英双栏对照 将翻译后的dual文件加工成中文和英文双栏对照的形式。 生成的文件名含有compare标识。 常见错误处理 若遇到服务器响应失败,通常是因为配置文件 (config.json) 或脚本 (server.py) 填写错误造成的。 请仔细检查以下内容: Python 与依赖环境 使用 Python 3.10–3.12 版本 确保已正确安装 pdf2zh、flask、pypdf、pdfminer.six==20250416 等依赖 工具版本匹配 推荐使用 pdf2zh v1.9.6 zotero-pdf2zh 插件建议使用 v2.4.1 或以上版本 路径规范且存在 字体路径正确且存在 所有路径建议使用绝对路径 避免路径中出现中文、空格、或特殊字符 路径中的 \ 应统一替换为 / 或 \\ 配置文件设置 config.json 应位于 server.py 同级目录,或通过参数传入完整路径 JSON 格式必须合法,注意标点(引号、逗号)闭合 translators 字段中应包含你启用的翻译服务,并提供完整凭证 Python 脚本执行 server.py 启动端口应与 Zotero 插件设置一致 启动脚本前建议先 cd 至脚本所在目录 若修改端口,请同时更新插件中的端口配置 Zotero 插件设置 插件中的翻译参数需与 config.json 和脚本配置对应 输出路径建议保持简洁,并避免超过操作系统路径长度限制 翻译服务建议与回退策略 优先使用 Bing 或 Google 翻译服务,设置更简单、响应更快 若翻译失败,建议先切换 Bing 验证配置文件,再尝试 Deepseek、硅基流动 等其他服务 端口与依赖冲突处理 如端口被占用,可尝试修改 server.py 中的默认端口 遇到依赖错误,请根据官方推荐版本重新安装对应库 点击此链接观看本文视频版