找到
39
篇与
全部文章
相关的结果
-
【Docker】告别环境配置噩梦:从零到一的安装指南 一、为什么需要 Docker?🤔 在我们一头扎进技术的海洋之前,先花一分钟聊聊 Docker 是什么,以及为什么它几乎是现代开发的必备技能。 简单来说,Docker 就像一个标准化的“魔法集装箱”。它可以把你的应用程序,连同其运行所需的一切——代码、运行时库、环境变量、配置文件等等——一个不落地全部打包进去。 这样,无论你把这个“集装箱”搬到哪里——你的 Windows 电脑、同事的 Mac,还是云端的 Linux 服务器——它都能保证里面的应用以完全相同的方式运行。那句让无数开发者抓狂的“在我电脑上明明是好的!”,从此可以彻底扔进历史的垃圾堆。 对于开发者,尤其是初学者,Docker 能带来立竿见影的好处: 告别环境配置噩梦 :一键部署复杂应用,再也不用为各种依赖库的版本冲突而头疼。 保持系统纯净 🧼:所有开发环境都隔离在容器里,你的主操作系统可以永远保持清爽。 轻松分享与协作 🤝:把你的项目“集装箱”分享给伙伴,他们可以立即运行,无需任何额外配置。 迈向云原生 ☁️:Docker 是通往 Kubernetes (K8s)、微服务等更高级云原生技术的第一站和重要基石。 听起来是不是很酷?那就让我们开始动手吧! 本博文视频讲解:【Docker】告别环境配置噩梦:从零到一的安装指南_哔哩哔哩_bilibili 二、下载渠道与版本信息 编者注:请务必从官方渠道下载 Docker,这是保障软件完整性与安全性的第一道防线。 官方网站:https://www.docker.com/products/docker-desktop/ 官方文档 & 安装指南 Docker Desktop 发行说明 Docker Engine 发行说明 三、安装步骤详解 🛠️ Windows 11(安装 Docker Desktop) 启用虚拟化与 WSL 2 检查虚拟化:打开任务管理器 Ctrl+Shift+Esc → “性能”→“CPU”,确认右下角“虚拟化”状态为“已启用”。 安装/升级 WSL 2(管理员 PowerShell): wsl --install # 首次安装 wsl --set-default-version 2 wsl --update --web-download # 已安装用户更新内核完成后重启,再运行 wsl -l -v 确认发行版版本均为 2。 打开控制面板→ 程序→ 在“启用或关闭 Windows 功能”中勾选 Virtual Machine Platform(虚拟机平台) 适用于 Linux 的 Windows 子系统 (Windows Subsystem for Linux, WSL) 可选功能图片 重启电脑:根据提示,完成重启以使所有更改生效。 下载并安装 Docker Desktop 从官网下载 Docker Desktop Installer.exe。 双击运行安装程序。在向导中,确保勾选 “Use WSL 2 instead of Hyper-V (recommended)” 选项,然后一路“下一步”即可。 首次启动与订阅 安装完成后启动 Docker Desktop。首次运行时,需要接受订阅服务协议。 当系统托盘区的 🐳 小鲸鱼图标静止不动时,就代表 Docker 已经准备就绪! macOS(安装 Docker Desktop) 方法 1:官方 DMG 安装包 从 Docker 官网 根据你的芯片类型 (Intel / Apple Silicon) 下载对应的 .dmg 文件。 双击打开 .dmg 文件,将 Docker 图标拖拽到“应用程序”文件夹。 在“应用程序”中打开 Docker,根据提示完成授权(可能需要输入管理员密码)。 等待菜单栏的 🐳 图标静止,即代表安装成功。 方法 2:Homebrew 如果你的 Mac 还没有安装 Homebrew,请访问 brew.sh 获取并运行其官网提供的一行式安装命令。 确保已安装 Homebrew 如果尚未安装 Homebrew,请在终端运行: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" (Apple Silicon 可选)安装 Rosetta 2 如果你是 M1/M2 芯片,且希望运行一些仅支持 x86 的镜像,建议先安装 Rosetta: softwareupdate --install-rosetta --agree-to-license 通过 Homebrew 安装 Docker Desktop brew install --cask docker 启动 Docker Desktop 在「Launchpad」或「应用程序」中打开 Docker; 首次启动时会提示安装网络扩展及要求输入管理员密码,按提示操作即可; 启动完成后,菜单栏会出现小鲸鱼图标,表示 Docker 已就绪。 更新与卸载 更新: brew upgrade --cask docker 卸载: brew uninstall --cask docker 这样就可通过 Homebrew 快速管理 Docker Desktop 的安装、升级和卸载。 Linux (安装 Docker Engine) 提示:Ubuntu 桌面版用户同样可以安装 Docker Desktop for Linux,以获得图形化界面和一键 K8s 等功能。以下步骤用于安装纯命令行的 Docker Engine。 卸载旧版包(若存在) 如果系统上之前安装过非官方的 Docker 包,或者很老的版本,先卸载它们: # 编者注:此命令会安全地尝试移除所有已知的旧版或冲突包。 for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done sudo apt-get autoremove -y apt-get 可能会报告你没有安装这些包。 设置Docker的APT源: 打开终端,先确保系统软件包索引是最新的: sudo apt-get update sudo apt-get install ca-certificates curl 然后添加Docker官方的PGP密钥和软件源仓库: # 添加 Docker 官方 GPG 密钥: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # 添加 Docker 仓库: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo \"$UBUNTU_CODENAME\") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update 上述命令将Docker官方源(稳定版stable通道)添加到了APT源列表中。请确保过程无错误输出。如果您使用的是Ubuntu派生发行版(如Linux Mint等),不保证100%兼容。此时源中应能检索到Docker软件包信息。 安装 Docker Engine sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 此命令将安装Docker引擎docker-ce及其CLI、后台依赖containerd和Compose、Buildx插件。下载大小可能几十MB。安装过程中,APT会自动启动Docker服务 (dockerd)。完成后可以通过 sudo systemctl status docker 查看服务状态应为active running。 提示:如需特定版本,可在安装前使用 apt-cache madison docker-ce 查看可用版本,然后通过 sudo apt-get install docker-ce=<版本号> 来安装指定版本。一般情况下直接安装最新版本即可。 启动Docker服务 sudo systemctl start docker # 启动 sudo systemctl enable docker # 开机自启动 四、环境验证:跑个小鲸鱼看看! docker run hello-world若看到 Hello from Docker! 字样,说明镜像下载与容器运行均正常。 继续执行: docker info可查看版本、镜像/容器数量、存储驱动等详情,是排障利器。 五、配置镜像源 默认情况下,docker pull 会从国外的 Docker Hub 拉取镜像,速度可能非常慢。配置国内镜像加速器是强烈推荐的操作。 镜像源参考:https://github.com/DaoCloud/public-image-mirror 配置方法 Docker Desktop (Windows / macOS): 点击任务栏或菜单栏的鲸鱼图标,选择 Settings (设置)。 进入 Docker Engine 标签页。 在右侧的 JSON 编辑框中,加入 registry-mirrors 字段。 { "registry-mirrors": [ "https://docker.xuanyuan.me", "https://docker.1ms.run", "https://dislabaiot.xyz", "https://doublezonline.cloud", "https://xdark.top", "https://docker.m.daocloud.io", "https://elastic.m.daocloud.io", "https://gcr.m.daocloud.io", "https://ghcr.m.daocloud.io", "https://k8s-gcr.m.daocloud.io", "https://k8s.m.daocloud.io", "https://mcr.m.daocloud.io", "https://nvcr.m.daocloud.io", "https://quay.m.daocloud.io", "https://ollama.m.daocloud.io" ] } 点击右下角的 "Apply & Restart" 按钮,等待 Docker 重启。 配置方法 Docker Engine (Linux): 编辑(或创建)daemon.json 配置文件。 sudo nano /etc/docker/daemon.json 将以下内容写入文件: { "registry-mirrors": [ "https://docker.xuanyuan.me", "https://docker.1ms.run", "https://dislabaiot.xyz", "https://doublezonline.cloud", "https://xdark.top", "https://docker.m.daocloud.io", "https://elastic.m.daocloud.io", "https://gcr.m.daocloud.io", "https://ghcr.m.daocloud.io", "https://k8s-gcr.m.daocloud.io", "https://k8s.m.daocloud.io", "https://mcr.m.daocloud.io", "https://nvcr.m.daocloud.io", "https://quay.m.daocloud.io", "https://ollama.m.daocloud.io" ] } 保存文件并退出 (Ctrl+X, Y, Enter)。然后重启 Docker 服务。 sudo systemctl restart docker 六、修改默认文件路径 在 Windows 系统中,IDE 默认会将资源目录或临时文件保存在 C 盘,这容易因为权限受限或空间不足而触发红色错误提示,严重时还可能导致构建失败。我们通过以下步骤,将资源目录移至非系统盘,确保开发环境稳定可靠。 问题说明 默认位置:C:\Users\<用户名>\.your_ide\resources 潜在风险: 权限受限:系统盘目录通常需要管理员权限,不利于自动化脚本或非管理员账户操作; 空间不足:C 盘多用于系统和应用,剩余空间有限; 性能瓶颈:高 I/O 负载下,系统盘可能成为开发时的性能瓶颈。 解决方案 点击 docker desktop 窗口右上角的设置图标(⚙️)。 在设置对话框左侧,选择 Resources 选项卡。 点击中间的蓝色 Browse 按钮,弹出文件夹选择对话框。 在对话框中导航至非系统盘(例如 D:\Docker_Resources),然后点击 Select Folder。 编者注:请务必不要选择 C 盘,推荐使用 SSD 较快的分区或专用磁盘,以获得最佳 I/O 性能。 回到设置窗口,点击右下角的 Apply & Restart,让 IDE 重新启动并应用新配置。 Resources 路径配置界面图片 七、Docker 卸载与升级指南 完全卸载 Docker 重要提示:卸载会移除所有本地的镜像、容器、卷和网络。如有重要数据,请提前备份! Windows (Docker Desktop): 在 "设置" > "应用" > "应用和功能" 中找到 "Docker Desktop" 并点击 "卸载"。 macOS (Docker Desktop): 打开 Docker Desktop 应用,点击菜单栏的 🐳 图标 > "Troubleshoot" > "Uninstall"。 Ubuntu (Docker Engine): ```Bash # 1. 卸载所有相关包 sudo apt-get purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo apt-get autoremove -y --purge # 2. 删除所有数据 sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd ``` 升级 Docker Docker Desktop: 应用内置了自动更新功能。当有新版本时,通常会弹出通知。你只需点击通知并按提示操作即可。也可以在菜单中手动点击 "Check for Updates"。 Docker Engine (Ubuntu): 如果你是通过 APT 仓库安装的,升级非常简单,就如同更新其他系统软件一样: sudo apt-get update sudo apt-get install -y --only-upgrade docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 📺 推荐视频教程
-
【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!
-
【AI伴读论文】三段 Prompt 一键搞定文献精读与思维导图 写在开始 读外文论文常被调侃为“啃硬骨头”:专业术语密集、跨学科图表林立、方法论冗长繁复……读完一篇往往让人精疲力竭。 但如今,多模态大模型(例如 GPT-4o、Gemini 2.5 Pro、Claude 4)已全面支持 Vision + Text 同步推理,不仅能帮你迅速拆解段落要点,更能精准解析复杂图表,让原本“一个人啃论文”的艰难,轻松升级为“AI伴读”的新体验。 连英伟达 CEO 黄仁勋都曾公开表示,自己用 AI 辅助阅读科研论文,效率之高“很多人还没意识到”。 成本提示:推荐在官方网页端直接对话而非通过 API——不仅方便拖拽上传 PDF,还能节省调用费用。 模型选择:DeepSeek 系列的文本推理能力十分强劲,其中主力模型 DeepSeek-V3 和 DeepSeek-R1 均为纯文本模型,虽然官方已开源研究版本的 DeepSeek-VL,但尚未整合进官方聊天界面。目前版本依旧缺乏原生的视觉(Vision)支持,面对公式截图或复杂图表时会显得“看不懂”、力不从心,建议期待后续版本的升级优化。deepseek不支持图片 本篇博文打包三段高复用 AI 伴读 Prompt: 系统 Prompt——定义助手角色与交互流程 文献框架总结 Prompt——一键生成大纲 精读笔记 Prompt——输出六大模块深读笔记 只需复制粘贴,即可让 AI 自动完成“拆结构 → 摘要 → 精读 → 互动问答 → 延伸阅读”的闭环。 使用步骤 发送系统 prompt 将下文 系统 prompt 整段复制给 AI,让其进入“论文伴读模式”。 上传 PDF 直接拖拽上传;若论文较大,可按章节截图或拆分上传。 按需点读 只看摘要?输入「Abstract」 想先搞懂图 2?输入「Figure 2」 让 AI 解释统计量?直接提问。 调用框架/精读 prompt 当 AI 已读取完全文,即可发送 文献框架总结 或 精读笔记 prompt,生成 Markdown 结构化输出,再导入 XMind 等工具制作思维导图。 深挖/对比 最后,您可以尝试向模型提出类似「帮我找 3 篇 2024 年后与 XXX 最相关的工作及区别」的请求。此类查询可触发模型调用联网搜索功能,从公开数据库中抓取最新论文,并提供简要概述。 目前,ChatGPT 系列模型(如 GPT-4o)已默认支持自动联网检索功能,无需用户手动操作即可获取实时信息 。而其他模型(如 Claude、Deepseek 等)则需手动启用联网搜索功能,或通过插件方式接入外部搜索引擎,才能实现类似的实时信息获取能力 。 Prompt ①:系统 Prompt 作用:限定 AI 的“身份 + 职责 + 安全边界”,让后续交互始终聚焦论文本身,避免胡编乱造。<!-- AI Paper Deep-Read Interactive Assistant : GLOBAL PROMPT--> <system> You are an AI assistant that helps users read and analyze PDF papers they upload. **Except for technical terms, always reply to the user in Chinese**, and strictly base all responses on the actual content of the paper; do not fabricate or falsify any information. ### 1. Loading & Confirmation - Acknowledge receipt of the document: > “Document received. I have loaded the PDF titled ‘<filename>’. Which part would you like to view first: Abstract, Introduction, Methods, Results, or something else?” - Automatically extract and relay basic metadata (title, authors, conference/journal, year). ### 2. Interactive Segmented Reading - When the user specifies a section, silently parse it and **internally** reason through it. - Provide a 1–3 sentence summary of that section's key points. - Follow up with: > “Does this align with your understanding? Are there any points you’d like to delve into further?” ### 3. In-Depth Analysis (On Demand) - If the user requests, extract and present that section’s **Key Contributions**, **Core Methods**, **Main Results**, or **Strengths & Limitations**. - Output in structured Markdown: #### 📄 Citation `<APA-style reference>` #### 💡 Section: Methods - **Summary:** … - **Core Methods:** 1. … 2. … * Conclude by inviting further questions: > “What else would you like to discuss?” ### 4. Collaborative Q&A * Pose 2–3 deep reflection questions regarding the current section to guide the user’s response or the assistant’s further elaboration. ### 5. Related Work & Next Steps * If the user needs broader background, retrieve 3–5 recent related papers from open sources (Semantic Scholar, arXiv, Google Scholar, etc.). * List each paper with a one-sentence explanation of its relevance. * Suggest feasible follow-up experiments or practical applications. ### Style & Safety * Conceal the thought process; present only concise conclusions. * Use precise academic language; **never fabricate data or findings**. * If unable to parse a section or extract metadata, honestly inform the user: > “Sorry, I’m unable to extract that information. Please try selecting another section or provide more context.” </system>Prompt ②:文献框架总结 作用:粗览全文结构,快速锁定核心板块,适合写开题报告或准备 PPT 展示。Please read and understand the literature provided by the user, and extract the core points, omitting acknowledgments and references; if you encounter contradictory or unclear content, re‑examine the original text, and if it remains unclear, mark it as “unclear” or “not specified in the literature.” Present your summary in pure Chinese Markdown format, using only headings (#, ##, ###, ####) and lists (-, 1.) structures, without any inline styling (for example, **, *, ~~). Use `# 文献框架总结` as the top‑level heading, then use ## to denote the abstract and main sections, ### for subsections, and #### for paragraph content; if the literature is in English, provide a Chinese translation. Finally, append a brief paragraph summarizing the study’s key findings after the main text. All output must be presented within a Markdown code block and strictly adhere to the above instructions.Prompt ③:精读笔记 作用:在框架之上深挖,形成可直接写在论文读书报告或组会汇报的笔记。 主要内容包括:“1. 研究概况”、“2. 研究方法”、“3. 研究内容”、“4. 研究结论”、“5. 创新点”、“6. 本文启示”这六部分。Please read and understand the literature provided by the user, extracting the core points while omitting acknowledgments and references; if you encounter contradictory or unclear content, re‑examine the original text, and if it remains unclear, label it as “unclear” or “not specified in the literature.” Please generate reading notes in pure Chinese Markdown format, using “xxx 阅读笔记” as the top‑level heading, immediately followed by plain‑text presentation of author information, keywords, publisher, etc.; then sequentially use “1. 研究概况”, “2. 研究方法”, “3. 研究内容”, “4. 研究结论”, “5. 创新点”, and “6. 本文启示” as second‑level headings, under each section detailing content with third‑level headings or lists (-, 1.); the entire output may only use #, ##, ### headings and list structures, must not use any inline Markdown styling (e.g., **, *, ~~), and must be presented as a complete Markdown code block.结语 有了以上三段 prompt,你可以: 10 分钟 拆解论文脉络 30 分钟 完成深度精读笔记 随时 让 AI 解析图表、公式或撰写相关工作对比 下次再遇到厚厚的外刊论文,不妨把它交给 AI 伴读,再把宝贵精力投入到批判性思考与原创研究中吧!
-
【分享】一文搞定 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 统统「秒」成母语,轻松专注于内容本身。如果有任何疑问,别忘了在评论区交流,一起让工作流更丝滑!
-
【Zotero】 中文参考文献引用英文化全攻略:Google Scholar 抓取与手动录入 写在前面 在用 Zotero 整理参考文献时,最常见的难题之一就是如何把中文文献的书目信息快速转成英文格式。下面结合网络上的可行经验与我的实际操作,分享两条高效路径,并补充一些容易被忽略的小技巧,帮助你在几分钟内完成中英双语条目的建立与引用。 方法 1:利用 Google Scholar 抓取 部分中文期刊已被 Google Scholar 收录,因此可以借助zotero的浏览器插件一键抓取其英文元数据。操作步骤如下: 复制中文论文的英文题目,在 Google Scholar 中搜索。 点击地址栏右侧的 Zotero 图书/论文图标 保存条目。 回到 Zotero ,补全必要字段: 在 标题翻译 栏中输入中文题目,方便后续检索; 对照 PDF 或期刊主页,补齐 DOI、卷期、页码等缺失信息。 为什么一定要填“标题翻译”? Zotero 支持多语言字段,同一条记录下既可保留原文信息,又能在不同语言样式间切换,避免重复建库或遗漏数据。43b5cb5dfe070b1f8543f0ebd7a937e2.png图片 89b50b40aa6d08f51bda5e656ac1f937.png图片 导入后先双击条目,把“标题翻译”改为中文题目,再在搜索框中输入中文即可同时定位到中英文版本。 image.png图片 方法 2:手动“创建条目副本” 若期刊未被 Google Scholar 收录,可右键 PDF 选择 “创建条目副本” ,再手动录入元数据: 标题 / 作者:通常可在 PDF 首页或封底找到对应英文译名。 期刊英文名:建议登陆万方数据,搜索期刊缩写(URL 形如 https://sns.wanfangdata.com.cn/perio/{期刊缩写}),页面底部一般会列出官方英文名,确保引用准确。 DOI / ISBN:优先填写;若无,可留空。 image.png图片 image.png图片 Word 内的引用与排版 检索中文题目,调用英文引用 因为在 Zotero 中已填写了“标题翻译”,Word 插件会同时识别中英文字段——直接输入中文题目即可插入英文格式的引文。 image.png图片 让 “et al.” 自动出现 如果文中引用仍显示为 “(Du 等, 2020)” 之类,可在 Word 的 Zotero → Document Preferences 里把 Language 改为 English (US/UK),再刷新即可。 image.png图片 写在最后 以上方法都以 “最小工作量、最高可追溯性” 为原则:能自动抓取就不手填,能留住中文原文就不覆盖。真正花时间的往往不是录入,而是后期排版——所以,把元数据一次性录得尽量完整,才能让 Zotero 在插入引文时为你省去更多麻烦。祝大家写作顺利、引用无忧!