当前位置:   article > 正文

基于腾讯云Lighthouse自建文本和文件翻译服务_libretranslate 离线部署

libretranslate 离线部署

LibreTranslate 是一个免费且开源的机器翻译API,完全自托管,易于设置。与其他API不同,它不依赖于像GoogleAzure这样的专有提供商来执行翻译。相反,它的翻译引擎由开源Argos Translate库提供支持。

本文将引导读者通过在腾讯云Lighthouse服务器部署LibreTranslate,实现自主可控的翻译服务,且同时支持翻译文本和文件(.txt, .odt, .odp, .docx, .pptx, .epub, .html)。

购买并配置Lighthouse服务器

  • Lighthouse是腾讯云推出的一款轻量应用服务器产品,它提供了高性价比、高可用性、高安全性和高灵活性的云端计算服务。具体信息参阅官方文档:轻量应用服务器概述

  • 为了部署LibreTranslate服务,我们需要购买一台境外轻量应用服务器,并配置好相关的环境和依赖。购买步骤参见官方文档:使用轻量应用服务器一键创建应用地域选择新加坡,应用类型选择k3s

  • 初次部署服务时,需下载大量的翻译模型,经gz压缩后约6Gb。由于网络问题,使用境内服务器部署很可能失败(解决办法见文末)。

创建kubernetes部署配置文件

文件路径 /srv/translate.yml,请注意修改配置文件中的域名 fanyi.rehiy.com

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.rehiy.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: *name
                port:
                  name: http
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67

为防止被恶意利用,配置中将LT_REQ_LIMIT设定为30,读者可以根据自己的情况调整。也可以启用TOKEN建立需要授权的服务,参阅官方文档 Manage API Keys

部署LibreTranslate服务

通过ssh登录服务器,执行以下命令,部署LibreTranslate服务。初次部署需下载大量模型,请耐心等待配置完成。

kubectl apply -f /srv/translate.yml
  • 1

测试LibreTranslate能力

作者部署的服务器已关闭外部访问能力,请务必使用自己部署的域名进行测试。

  • 基于浏览器访问

  • 基于 API 访问
const res = await fetch("http://fanyi.rehiy.com/translate", {
  method: "POST",
  body: JSON.stringify({
    q: "Hello!",
    source: "en",
    target: "zh"
  }),
  headers: {"Content-Type": "application/json"}
});

console.log(await res.json());
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

如何在国内服务器部署

解决的办法有很多(比如去官网手动下载每个模型),这里提供一种简单且合规的方法:

在境外部署完成后,将/srv/translate目录同步到国内服务器上。这样在国内部署时就不再需要下载翻译模型,从而避开网络慢导致的问题。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/531190
推荐阅读
相关标签
  

闽ICP备14008679号