什么是 LibreTranslate ?
LibreTranslate
免费开源机器翻译
API
,完全自托管。与其他
API
不同,它不依赖于
或
Azure
等专有提供商来执行翻译。它的翻译引擎由开源
Argos Translate
库提供支持。
这个软件在
2022
年
3
月的时候折腾过,但当时容器会停止,从下面的文章看,应该可能是内存不够。
https://www.reddit.com/r/selfhosted/comments/yrdeyc/libretranslate_free_and_open_source_machine
毕竟翻译模型和语言模型都是很耗资源的,当然除了内存,最好还有
GPU
的支持。
今年
618
买了根内存条,所以又把它翻出来了,虽然才
8G
,但确实跑起来了,也有可能是老苏选择的语言模型少的缘故。
文中部分截图还是使用的老图,但不会影响您的理解;
如果你不想自己搭建,可以去官方搭建的站点看看,网址:https://libretranslate.com
安装
在群晖上以 Docker 方式安装。
在注册表中搜索
libretranslate
,选择第一个
libretranslate/libretranslate
,版本选择
latest
。
- 本次折腾,
latest
对应的版本是v1.3.11
;- 如果你的主机带
nvidia
显卡,可以选择latest-cuda
试试;
端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用netstat-tunlp|grep 端口号
本地端口容器端口
5353
5000
环境
LibreTranslate
有很多命令行参数,可以参考官方的文档:https://github.com/LibreTranslate/LibreTranslate#arguments
【注意】:每个参数都有一个可以替代使用的等效环境变量。环境。变量会覆盖默认值,但优先级低于命令参数,并且在与
Docker
一起使用时特别有用。环境变量名称是等效命令参数名称的大写字母,带有
LT
前缀。
老苏没有使用环境变量,而是在命令行中输入了
--load-only en,zh
,意思是只加载中文和英文。如果要使用环境变量,可以用
LT_LOAD_ONLY
命令行运行
命令行方式中,老苏对容器的最大内存使用量和
CPU
占用做了限制;当然机器够强的话,可以不做限制的;
docker cli 安装
如果你熟悉命令行,可能用
docker cli
更快捷
# 运行容器(低调内敛模式)docker run -d\--restart unless-stopped \--name libretranslate \
--cpu-shares="700"\--memory 4096m \-p5353:5000 \
libretranslate/libretranslate \
--load-only en,zh
# 运行容器(火力全开模式)docker run -d\--restart unless-stopped \--name libretranslate \-p5353:5000 \
libretranslate/libretranslate \
--load-only en,zh
参数说明:
--cpus-shares="700"
:为容器提供更少比例的CPU
周期,默认为1024
;--memory 4096m
;为容器的内存使用设置一个无法超越的硬限制;
从上图可以看到,第一次运行时,会下载我们设定的语言模型
docker-compose 安装
不推荐这种方式安装,会看不到容器的日志,原因不明;这会导致你不知道语言模型是否下载成功,因而不知道什么时候才能正常访问
也可以用
docker-compose
安装,将下面的内容保存为
docker-compose.yml
文件
version:'3'services:libretranslate:image: libretranslate/libretranslate
container_name: libretranslate
restart: unless-stopped
# mem_limit: 4096m# cpu_shares: 700ports:- 5353:5000healthcheck:test:['CMD-SHELL','./venv/bin/python scripts/healthcheck.py']command:--load-only en,zh
如果你想启用资源限制,可以去掉
#
号的注释;
然后执行下面的命令
# 新建文件夹 libretranslate mkdir-p /volume1/docker/libretranslate
# 进入 libretranslate 目录cd /volume1/docker/libretranslate
# 将 docker-compose.yml 放入当前目录# 一键启动docker-compose up -d
运行
第一次运行会需要下载语言模型
当你在日志中看到
Running on http://0.0.0.0:5000
时,就可以在浏览器中输入
http://群晖IP:5353
,并看到主界面了
复制了下面这段英文,试了下
英翻中
Free and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.
又用下面这段中文,试了下
中翻英
Plane 是一个简单的、可扩展的、开源的项目和产品管理工具。
LibreTranslate
翻译的
Plane is a simple, expanded, open-source project and product management tool
百度翻译的
Plane is a simple, scalable, open-source project and product management tool.
似乎看起来效果还可以对吧,此外还支持翻译文件,格式也比较丰富
至于
API
一般人也用不上,就不提了
参考文档
LibreTranslate/LibreTranslate: Free and Open Source Machine Translation API. 100% self-hosted, offline capable and easy to setup.
地址:https://github.com/LibreTranslate/LibreTranslate
Docker Container Memory & CPU Limit: Set Up and Manage Resources
地址:https://phoenixnap.com/kb/docker-memory-and-cpu-limit
版权归原作者 杨浦老苏 所有, 如有侵权,请联系我们删除。