LibreTranslate
是一个免费且开源的机器翻译API,完全自托管,易于设置。与其他API不同,它不依赖于像Google或Azure这样的专有提供商来执行翻译。相反,它的翻译引擎由开源Argos Translate库提供支持。
本文将引导读者在集群上部署LibreTranslate,实现自主可控的翻译服务,且同时支持翻译文本和文件(.txt, .odt, .odp, .docx, .pptx, .epub, .html)。
准备Kubernetes集群
1、若没有Kubernetes集群可用,请先参阅《使用 k3s 快速部署 kubernetes 集群》部署集群。
2、初次部署服务时,需下载大量的翻译模型,经gz压缩后约6Gb。由于网络问题,使用境内服务器部署很可能失败(解决办法见文末)。
创建kubernetes部署配置文件
文件路径 /srv/translate.yml
,请注意修改配置文件中的域名 fanyi.example.org
。
kind: Deployment
apiVersion: apps/v1
metadata:
name: &name translate
labels:
app: *name
spec:
selector:
matchLabels:
app: *name
template:
metadata:
labels:
app: *name
spec:
containers:
- name: translate
image: libretranslate/libretranslate
env:
- name: LT_REQ_LIMIT
value: "30"
- name: LT_THREADS
value: "4"
ports:
- containerPort: 5000
volumeMounts:
- name: *name
subPath: home
mountPath: /home/libretranslate
volumes:
- name: *name
hostPath:
path: /srv/translate
type: DirectoryOrCreate
---
kind: Service
apiVersion: v1
metadata:
name: &name translate
labels:
app: *name
spec:
selector:
app: *name
ports:
- name: http
port: 5000
targetPort: 5000
---
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
name: &name translate
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
rules:
- host: fanyi.example.org
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: *name
port:
name: http
为防止被恶意利用,配置中将
LT_REQ_LIMIT
设定为30,读者可以根据自己的情况调整。也可以启用TOKEN建立需要授权的服务,参阅官方文档 Manage API Keys
部署LibreTranslate服务
通过ssh登录服务器,执行以下命令,部署LibreTranslate服务。初次部署需下载大量模型,请耐心等待配置完成。
kubectl apply -f /srv/translate.yml
测试LibreTranslate能力
作者部署的服务器已关闭外部访问能力,请务必使用自己部署的域名进行测试。
- 基于浏览器访问
- 基于 API 访问
const res = await fetch("http://fanyi.example.org/translate", {
method: "POST",
body: JSON.stringify({
q: "Hello!",
source: "en",
target: "zh"
}),
headers: {"Content-Type": "application/json"}
});
console.log(await res.json());
如何在国内服务器部署
解决的办法有很多(比如去官网手动下载每个模型),这里提供两种简单且合规的方法:
- 在境外部署完成后,将
/srv/translate
目录同步到国内服务器上。这样在国内部署时就不再需要下载翻译模型,从而避开网络慢导致的问题。 - 从官网手动下载需要的数据模型,解压到模型目录:https://www.argosopentech.com/argospm/index/
评论列表 (0条):
加载更多评论 Loading...