开源PDF翻译工具PDFMathTranslate

embedded/2024/12/24 21:48:05/

在这里插入图片描述

简介

什么是 PDFMathTranslate ?

PDFMathTranslate 是一个用于 PDF 科学论文的翻译工具,旨在保留文档的排版格式。它支持多种翻译服务,如 GoogleDeepLOllamaOpenAI。该工具提供命令行界面(CLI)、图形用户界面(GUI)和 Docker 部署选项,使用户能够方便地翻译 PDF 文件。

主要功能

  • 双语翻译:支持将 PDF 文档翻译为多种语言。
  • 格式保留翻译过程中保留公式、图表、目录和注释等格式。
  • 多种使用方式:可通过命令行、可移植版本、图形界面或 Docker 进行使用。
  • 公共服务:提供在线翻译服务,用户无需安装任何软件。

适用场景:

  • 学术研究人员和学生需要翻译和比较双语文献。
  • 任何需要处理和翻译 PDF 文档的人。

在这里插入图片描述

安装

群晖上以 Docker 方式安装。

在注册表中搜索 pdf2zh ,选择第一个 byaidu/pdf2zh,版本选择 latest

本文写作时, latest 版本对应为 v1.8.8

在这里插入图片描述

注意事项

需要确保你的主机能够访问 huggingface.co,否则容器会停止或者不断重启,日志中会看到错误

pdfmt    |   File "/usr/local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 369, in _raise_timeout
pdfmt    |     raise ReadTimeoutError(
pdfmt    | urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='huggingface.co', port=443): Read timed out. (read timeout=1)

或者

pdfmt    | huggingface_hub.errors.LocalEntryNotFoundError: An error happened while trying to locate the file on the Hub and we cannot find the requested files in the local cache. Please check your connection and try again or make sure your Internet connection is on.

docker 文件夹中,创建一个新文件夹 pdfmt,并在其中建两个子文件夹 inputoutput

其实不用命令行的话,可以用不着输入、输出目录

文件夹装载路径说明
docker/pdfmt/input/input输入文件目录
docker/pdfmt/output/output输出文件目录

在这里插入图片描述

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
78607860

在这里插入图片描述

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 pdfmt 和 子目录
mkdir -p /volume1/docker/pdfmt/{input,output}# 进入 pdfmt 目录
cd /volume1/docker/pdfmt# 运行容器
docker run -d \--restart unless-stopped \--name pdfmt \-p 7860:7860 \-v $(pwd)/input:/input \-v $(pwd)/output:/output \byaidu/pdf2zh

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'services:pdfmt:image: byaidu/pdf2zhcontainer_name: pdfmtrestart: unless-stoppedports:- "7860:7860"volumes:- ./input:/input- ./output:/output

然后执行下面的命令

# 新建文件夹 pdfmt 和 子目录
mkdir -p /volume1/docker/pdfmt/{input,output}# 进入 pdfmt 目录
cd /volume1/docker/pdfmt# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

在这里插入图片描述

运行

在浏览器中输入 http://群晖IP:7860 就能看到主界面

在这里插入图片描述

老苏随便找了一篇英文的文档

下载地址:https://www.jsme.or.jp/conference/PRTEC2024/submission/240329-PRTEC2024-template.pdf

软件的使用不复杂,所以下面只简单的介绍下 AI 模型的设置

在这里插入图片描述

Google 模型

pdf 文件拖入,用了默认的 google 模型,为了快速, Pages 中选择了单页,用了 First,也就是只翻译首页

在这里插入图片描述

如果网络访问 google 没问题的话,还是非常快的

在这里插入图片描述

如果网络不行,可以试试本地的大模型

Ollama 模型

还可以选择其他的 AI 服务,老苏的机器上正好有 Ollama

文章传送门:本地大模型运行框架Ollama

在这里插入图片描述

模型用了 qwen2.5:1.5b

  • ServiceOllama
  • OLLAMA_HOSThttp://192.168.0.197:11434
  • OLLAMA_MODELqwen2.5:1.5b

在这里插入图片描述

翻译完成后

在这里插入图片描述

AI__190">OpenAI 模型

另外试了下 OpenAI 兼容的模型

在这里插入图片描述

文章传送门:

  • 长文本大模型API服务kimi-free-api
  • 大模型接口管理和分发系统One API

模型设置参数设置

  • OPENAI_BASE_URLhttp://192.168.0.197:3033/v1 , 这是老苏机器上 One API 的地址
  • OPENAI_API_KEYsk-7tB7PvWBs8oWUFJLFaF5F8EfC4Db43Ba9dE18698A0929c47 , 这是 One API 中的令牌
  • OPENAI_MODELkimi,这是 One API 中为 kimi-free-api 设置的模型名称

在这里插入图片描述

左侧会生成两个文件

在这里插入图片描述

其中 Mono翻译后的版本, Dual 是对照的版本

在这里插入图片描述

参考文档

Byaidu/PDFMathTranslate: PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/Docker
地址:https://github.com/Byaidu/PDFMathTranslate

PDFMathTranslate - PDF Translation with preserved formats
地址:https://pdf2zh.com/


http://www.ppmy.cn/embedded/148448.html

相关文章

软件测试面试题和简历模板(面试前准备篇)

一、问题预测 1、让简单介绍下自己(这个不用说了每次面试开场) 面试官,你好,我叫xxx,xx年本科毕业,从事软件测试将近3年的时间。在此期间做过一些项目也积累过一些经验,能够独立地完成软件测试…

[网络安全]XSS之Cookie外带攻击姿势详析

概念 XSS 的 Cookie 外带攻击就是一种针对 Web 应用程序中的 XSS(跨站脚本攻击)漏洞进行的攻击,攻击者通过在 XSS 攻击中注入恶意脚本,从而窃取用户的 Cookie 信息。 攻击者通常会利用已经存在的 XSS 漏洞,在受害者的…

利用爬虫获取的数据能否用于商业分析?

在数字化时代,数据已成为企业获取竞争优势的关键资源。网络爬虫作为一种数据收集工具,能够从互联网上抓取大量数据,这些数据在商业分析中扮演着重要角色。然而,使用爬虫技术获取的数据是否合法、能否用于商业分析,是许…

wordpress调用指定分类ID下 相同标签的内容

要在WordPress中调用分类ID为1、3、7的分类下,具有相同标签的前10个内容,可以使用自定义的WordPress查询(WP_Query)。以下是实现此功能的步骤和示例代码: 步骤: 确定共同标签: 首先,你需要确定分类1、3、…

Textual Dataset Distillation via Language Model Embedding

Method 将数据集丢入embedding模型,丢入embedding前可以加入prompt加强效果,然后获取k-means聚类的中心向量来作为需要的蒸馏embeddings,然后使用vec2text模型还原成原始文本。 Result Q: 这里有一点不清楚: 聚类中…

Docker:容器中无法使用vim命令

我们在docker容器中修改文件使用 vi 或 vim 出现找不到对应命令 解决: 1、安装vim apt-get install -y vim 2、出现以上情况需要把 apt-get 更新一下 apt-get update 3、更新成功之后,再执行安装 vim,等待安装即可 apt-get install -y vi…

[Unity Shader]【游戏开发】【图形渲染】Shader数学基础7-矩阵变换概览及其几何意义

矩阵在计算机图形学中的重要作用在于描述和执行几何变换,例如旋转、缩放和平移。这篇文章将概述变换矩阵的核心概念,尤其是它们的几何意义和常见类型,同时对比它们的数学特性。 1. 矩阵的几何意义:变换 变换(Transform)是将一些数据(如点、方向矢量、颜色等)按照一定规…

前端导出PDF的组件及方法

前端导出PDF的组件及方法 在Web应用程序中,导出PDF文件是一项常见的需求。无论是为了打印、分享还是存档,能够将网页内容转换为PDF格式都非常有用。幸运的是,前端开发者有多种方法和组件可以实现这一功能。在本文中,我们将详细介…