改版通知

巨人肩膀网站已全新改版。若您仍依赖旧站功能或数据,欢迎联系我们,我们会协助处理。联系我们

一个自托管的翻译平台,无需依赖外部服务,离线版的Google翻译,Star 7.8K!

oP3us6Af1G1D4v7c7iIPkM-piUzQ2024年9月5日2363 浏览

在我们日常工作或者生活中,很多时候都需要用到翻译软件。相信很多同学都安装过浏览器翻译插件,类似这样:

图片


或者直接使用在线Google翻译或者其他在线翻译服务:

图片

又或者在手机或者电脑里面安装桌面版翻译软件:

图片

很明显看得出来,以上所有的翻译都是采用在线联网的方式进行。但是有些时候,为了保证隐私和数据安全。我们需要在离线的环境下进行翻译,这就涉及到离线翻译。不同于以往,现在离线翻译方案现在大概有两种类型:


  • 基于本地大模型的翻译方案:部署本地大模型,然后基于大模型的能力,提供翻译功能。
  • 基于独立部署离线翻译平台:独立的翻译服务,提供离线翻译能力。


这两种方案的可行性都比较高,但是如果我们只是需要翻译的能力,基于大模型的方案就有点“大材小用”了,而且基于大模型的方案对资源的要求也比较高。整体来说技术方案没有问题,但是性价比不高。

所以,今天给大家介绍的是一个可离线自托管的翻译平台-LibreTranslate

LibreTranslate 介绍

一个开源的机器翻译平台,允许用户自托管部署,同时提供API能力,方便集成。支持离线翻译能力,不依赖互联网连接,翻译服务能够在网络受限或无网络的环境中使用。

图片

🏠  项目信息

#Github地址
https://github.com/LibreTranslate/LibreTranslate

图片

🚀功能特性

  • 自托管能力:可以在自有服务器上部署LibreTranslate,无需依赖第三方服务。
  • 支持多种翻译模型:LibreTranslate支持多种机器翻译模型,包括但不限于Marian NMT、OpenNMT、Hugging Face Transformers等。
  • 多语言支持:能够翻译多种语言,覆盖广泛的语言模型。
  • API接口:提供REST API接口,方便与其他应用程序集成。
  • 命令行界面:提供命令行工具,方便用户直接使用LibreTranslate进行翻译。
  • Web界面:可选的Web界面,允许用户通过浏览器进行使用翻译。
  • 轻量级:LibreTranslate设计轻量,易于部署和维护。
  • 可定制性:用户可以根据自己的需求定制翻译模型和配置。
  • 隐私友好:由于翻译是在本地进行,用户的翻译数据不会发送到外部服务器。
  • 插件系统:允许通过插件扩展功能,例如增加新的语言或者翻译模型。
  • 多平台支持:可以在多种操作系统上运行,包括但不限于Linux、macOS和Windows。

🛠在线Demo

虽然LibreTranslate支持离线部署和使用,但是项目也提供了一个在线环境,方便大家使用和体验。

#在线demo地址
https://libretranslate.com/

LibreTranslate 部署

  • Python部署
#Python环境3.8或更高
pip install libretranslate
libretranslate [args]
  • 一键脚本部署
#Ubuntu 20.04操作系统
bash <(curl -sSL https://github.com/argosopentech/LibreTranslate-init)
  • Docker部署
#具备Docker环境
#git clone
git clone https://github.com/LibreTranslate/LibreTranslate.git
cd LibreTranslate
#Linux系统
./run.sh [args]
#此处需要下载语言模型(可以在联网的环境中下载后,导入完全离线环境)
Checking for docker...   found
Updating language models
Found 88 models
Downloading Albanian → English (1.9) ...
Downloading Arabic → English (1.0) ...
Downloading Azerbaijani → English (1.5) ...
Downloading Bengali → English (1.9) ...
Downloading Bulgarian → English (1.9) ...
Downloading Catalan → English (1.7) ...
Downloading Chinese (traditional) → English (1.9) ...
Downloading Chinese → English (1.9) ...
.........................................
Loaded support for 44 languages (88 models total)!
Running on http://*:5000
#Windows系统
./run.sh [args]
  • Kubernetes helm chart部署
helm repo add libretranslate https://libretranslate.github.io/helm-chart/
helm repo update
helm search repo libretranslate

helm install libretranslate libretranslate/libretranslate --namespace libretranslate --create-namespace

部署完成后,通过 http://localhost:5000 访问界面。

LibreTranslate 使用

  • Web界面,可以切换不同的界面风格

图片

  • API使用

指定语言翻译

#请求
const res = await fetch("http://xxx.xxx.xxx.xxx:5000", {
  method: "POST",
  body: JSON.stringify({
    q: "Hello!",
    source: "en",
    target: "es"
  }),
  headers: { "Content-Type": "application/json" }
});

console.log(await res.json());
#翻译
{
    "translatedText": "¡Hola!"
}

自动检测语言翻译

#请求
const res = await fetch("http://xxx.xxx.xxx.xxx:5000", {
  method: "POST",
  body: JSON.stringify({
    q: "你好!",
    source: "auto",
    target: "en"
  }),
  headers: { "Content-Type": "application/json" }
});

console.log(await res.json());
#翻译
{
    "detectedLanguage": {
        "confidence": 83,
        "language": "it"
    },
    "translatedText": "Hello!"
}

详细的API说明地址如下

#在线API文档
http://hostip:5000/docs/

最后

综上所述,LibreTranslate 能够提供灵活且强大的翻译服务,尤其适合需要数据隐私保护、独立运行环境或离线环境的场景,并且提供API方便集成。如果你也有这方面的需求,不妨试试吧!