LibreTranslate: 14.4K+ Stars 的自托管翻译 API — 2026 生产部署指南

LibreTranslate (LT) 是一个基于 Argos Translate 的免费开源机器翻译 API。支持 Docker、CUDA GPU、30+ 种语言及离线部署。涵盖安装配置、性能基准测试、监控以及与 OpenAI Whisper、Coqui TTS、Argos Translate 的集成。

  • ⭐ 14400
  • AGPL-3.0
  • 更新于 2026-05-19

{{< resource-info >}}

LibreTranslate 是一个免费、开源的机器翻译 API,由你自己托管。不需要 Google 的 API 密钥。没有 DeepL 的按字符计费。数据不会离开你的基础设施。凭借 14,400+ 的 GitHub Stars 以及活跃的发布周期(截至 2026 年 5 月为 v1.9.5),它已成为需要私密、离线翻译且零边际成本的开发者的默认选择。本指南是一份完整的 LibreTranslate tutorial,涵盖从 libretranslate setup 到 libretranslate docker 生产部署的全流程,同时包含与 DeepL 和 Google Translate 的详细对比(libretranslate vs deepl)以及 self-hosted translation 的最佳实践。本指南将介绍生产环境部署、基准测试和集成方案。

LibreTranslate Logo

什么是 LibreTranslate? #

LibreTranslate 是一个基于开源 Argos Translate 引擎构建的自托管机器翻译 REST API。它为专有翻译服务提供了开箱即用的替代方案,具有简单的 HTTP 接口、内置 Web UI,并支持 30 多种语言。该项目采用 AGPL-3.0 许可证,由 LibreTranslate 组织积极维护。

与基于云的翻译 API 不同,LibreTranslate 完全运行在你的硬件上。所有文本处理都在本地进行,使其适用于隐私敏感型应用、气隙网络和合规要求严格的行业。该项目作为对缺乏尊重隐私的翻译工具的回应而启动,现已发展成为被企业、政府和个人开发者使用的生产就绪平台。

LibreTranslate 的工作原理 #

LibreTranslate 的架构简单明了:Python Flask 后端提供 REST API,而翻译的核心工作由 Argos Translate 的神经机器翻译(NMT)模型处理。这些模型在首次运行时下载并在本地缓存,使初始设置后能够离线运行。

核心架构 #

LibreTranslate 架构图

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│   客户端 (Web)  │────▶│  Flask REST API  │────▶│ Argos Translate │
│   / API 调用    │◀────│    (端口 5000)   │◀────│   (NMT 引擎)    │
└─────────────────┘     └──────────────────┘     └─────────────────┘
                                                        │
                              ┌─────────────────────────┘
                              ▼
                        ┌──────────────┐
                        │   语言       │
                        │ 模型 (~2GB)  │
                        └──────────────┘

关键组件 #

  • Flask API 服务器:处理 HTTP 请求、身份验证、速率限制和请求验证。
  • Argos Translate 引擎:加载语言对模型并执行推理的 NMT 后端。
  • 语言模型:每个语言对的预训练 OpenNMT 模型,按需下载。
  • SQLite 数据库:启用 API 密钥管理时,存储 API 密钥、请求日志和使用统计信息。

翻译请求通过系统流动如下:客户端发送包含源文本、源语言和目标语言的 JSON 负载。API 验证请求,将其路由到适当的 Argos 模型,并返回翻译后的文本以及置信度分数和检测到的语言等元数据。

安装与配置 #

LibreTranslate 提供多种部署路径。由于隔离性、可重复性和易于更新,Docker 方式推荐用于生产环境。

系统要求 #

配置CPU内存存储启动时间
最低 (3 种语言)1 vCPU2 GB1 GB~60s
推荐 (11 种语言)2 vCPU4 GB3 GB~90s
完整负载 (30+ 种语言)4 vCPU8 GB10 GB~120s

Docker 快速启动 #

在本地运行 LibreTranslate 的最快方式:

# 使用 Docker 运行
docker run -ti --rm -p 5000:5000 \
  -v lt-models:/home/libretranslate/.local \
  -e LT_LOAD_ONLY=en,es,fr \
  libretranslate/libretranslate:latest

启动后,在浏览器中打开 http://localhost:5000。首次运行会下载语言模型,因此在 UI 响应之前会有短暂的延迟。

生产环境 Docker Compose #

对于生产部署,使用带有持久卷、健康检查和资源限制的专用 docker-compose.yml

# docker-compose.yml - 生产环境配置
version: '3.8'

services:
  libretranslate:
    container_name: libretranslate
    image: libretranslate/libretranslate:v1.9.5
    restart: unless-stopped
    ports:
      - "5000:5000"
    environment:
      - LT_LOAD_ONLY=en,es,fr,de,it,zh,ja,ru,pt,pl,nl
      - LT_API_KEYS=true
      - LT_REQ_LIMIT=60
      - LT_THREADS=4
      - LT_UPDATE_MODELS=true
    volumes:
      - lt-models:/home/libretranslate/.local
      - lt-db:/app/db
    healthcheck:
      test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 60s
    deploy:
      resources:
        limits:
          memory: 4G
        reservations:
          memory: 2G

volumes:
  lt-models:
  lt-db:

部署:

docker compose up -d

GPU 加速部署 (CUDA) #

对于高吞吐场景,LibreTranslate 通过 CUDA 支持 NVIDIA GPU 加速。要求:NVIDIA GPU 支持 CUDA 11.2+,并安装 nvidia-docker2。

# 克隆仓库
git clone https://github.com/LibreTranslate/LibreTranslate.git
cd LibreTranslate

# 构建并运行 CUDA 版本
docker compose -f docker-compose.cuda.yml up -d --build

验证 GPU 利用率:

nvidia-smi

原生 Python 安装 #

对于开发环境或没有 Docker 的环境:

# 通过 pip 安装
pip install libretranslate==1.9.5

# 启动服务器
libretranslate --host 0.0.0.0 --port 5000 \
  --load-only en,es,fr,de \
  --req-limit 60 \
  --threads 4

或从源码构建:

git clone https://github.com/LibreTranslate/LibreTranslate.git
cd LibreTranslate
pip install -e .
python main.py --host 0.0.0.0 --port 5000

部署到 DigitalOcean(生产云) #

对于云托管的生产实例,DigitalOcean 通过 App Platform 或 Droplets 提供简单的部署路径。使用一键 Docker 镜像进行部署:

# 在全新的 Ubuntu 24.04 Droplet 上
curl -fsSL https://get.docker.com | sh
mkdir -p ~/libretranslate && cd ~/libretranslate

# 创建生产 compose 文件
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
  libretranslate:
    image: libretranslate/libretranslate:v1.9.5
    restart: always
    ports:
      - "5000:5000"
    environment:
      - LT_LOAD_ONLY=en,es,fr,de,it,zh,ja,ru,pt
      - LT_API_KEYS=true
      - LT_REQ_LIMIT=120
      - LT_THREADS=4
    volumes:
      - ./models:/home/libretranslate/.local
      - ./db:/app/db
EOF

docker compose up -d

注意:如果你正在设置新的 VPS,DigitalOcean 为新用户提供 $200 的免费额度,足以覆盖一台 4GB Droplet 7x24 小时运行 LibreTranslate 数月之久。

与流行工具集成 #

LibreTranslate 的 REST API 使其与几乎任何技术栈兼容。以下是常见工作流的集成示例。

Python SDK 使用 #

# translate_client.py
import requests

LIBRETRANSLATE_URL = "http://localhost:5000/translate"

def translate_text(text: str, source: str = "en", target: str = "es") -> str:
    payload = {
        "q": text,
        "source": source,
        "target": target,
        "format": "text",
        "api_key": ""  # 如果启用了 API 密钥,请添加
    }
    headers = {"Content-Type": "application/json"}

    response = requests.post(LIBRETRANSLATE_URL, json=payload, headers=headers)
    response.raise_for_status()
    return response.json()["translatedText"]

# 示例用法
if __name__ == "__main__":
    result = translate_text("Hello, production deployment!", "en", "de")
    print(f"翻译结果: {result}")

JavaScript/TypeScript 集成 #

// libretranslate-client.ts
interface TranslateResponse {
  translatedText: string;
}

class LibreTranslateClient {
  private baseUrl: string;
  private apiKey?: string;

  constructor(baseUrl: string = "http://localhost:5000", apiKey?: string) {
    this.baseUrl = baseUrl;
    this.apiKey = apiKey;
  }

  async translate(
    text: string,
    source: string = "en",
    target: string = "es"
  ): Promise<string> {
    const response = await fetch(`${this.baseUrl}/translate`, {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({
        q: text,
        source,
        target,
        format: "text",
        api_key: this.apiKey,
      }),
    });

    if (!response.ok) {
      throw new Error(`翻译失败: ${response.statusText}`);
    }

    const data: TranslateResponse = await response.json();
    return data.translatedText;
  }
}

// 使用
const client = new LibreTranslateClient("http://localhost:5000");
const result = await client.translate("Deploy to production", "en", "fr");
console.log(result); // "Déployer en production"

OpenAI Whisper 语音转翻译文本流水线 #

一种常见的模式是将语音识别与翻译结合。以下是使用 Whisper 进行转录、使用 LibreTranslate 进行翻译的完整流水线:

# whisper_translate_pipeline.py
import whisper
import requests

WHISPER_MODEL = whisper.load_model("base")
LIBRE_URL = "http://localhost:5000/translate"

def transcribe_and_translate(audio_path: str, target_lang: str = "en") -> dict:
    # 步骤 1: 使用 Whisper 转录音频
    result = WHISPER_MODEL.transcribe(audio_path)
    source_text = result["text"]
    detected_lang = result.get("language", "auto")

    # 步骤 2: 使用 LibreTranslate 翻译
    payload = {
        "q": source_text,
        "source": detected_lang,
        "target": target_lang,
        "format": "text"
    }
    response = requests.post(LIBRE_URL, json=payload)
    translated = response.json()["translatedText"]

    return {
        "original": source_text,
        "translated": translated,
        "source_language": detected_lang,
        "target_language": target_lang
    }

# 运行流水线
output = transcribe_and_translate("meeting.mp3", target_lang="es")
print(f"ES: {output['translated']}")

Coqui TTS 集成(翻译 + 语音合成) #

翻译文本并以目标语言合成语音:

# translate_and_speak.py
import requests
from TTS.api import TTS

# 初始化 TTS
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2", gpu=False)

def translate_and_speak(text: str, target_lang: str, speaker_wav: str):
    # 翻译
    payload = {"q": text, "source": "en", "target": target_lang, "format": "text"}
    response = requests.post("http://localhost:5000/translate", json=payload)
    translated = response.json()["translatedText"]

    # 合成语音
    output_path = f"output_{target_lang}.wav"
    tts.tts_to_file(
        text=translated,
        speaker_wav=speaker_wav,
        language=target_lang,
        file_path=output_path
    )
    return output_path

# 生成多语言音频
for lang in ["es", "fr", "de"]:
    translate_and_speak("Welcome to our service", lang, "reference.wav")

cURL API 示例 #

# 基础翻译
curl -X POST http://localhost:5000/translate \
  -H "Content-Type: application/json" \
  -d '{"q": "Hello world", "source": "en", "target": "es"}'

# 响应: {"translatedText": "Hola mundo"}

# 语言检测
curl -X POST http://localhost:5000/detect \
  -H "Content-Type: application/json" \
  -d '{"q": "Bonjour le monde"}'

# 获取支持的语言列表
curl http://localhost:5000/languages

# 使用 API 密钥翻译(如果启用了)
curl -X POST http://localhost:5000/translate \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-key" \
  -d '{"q": "Production deployment", "source": "en", "target": "de"}'

# HTML 翻译
curl -X POST http://localhost:5000/translate \
  -H "Content-Type: application/json" \
  -d '{
    "q": "<p>Hello <b>world</b></p>",
    "source": "en",
    "target": "fr",
    "format": "html"
  }'

Nginx 反向代理配置 #

对于带有域名和 HTTPS 的生产部署:

# /etc/nginx/sites-available/libretranslate
server {
    listen 443 ssl http2;
    server_name translate.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

    client_max_body_size 50M;

    location / {
        proxy_pass http://localhost:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 300s;
    }
}

# HTTP 重定向到 HTTPS
server {
    listen 80;
    server_name translate.yourdomain.com;
    return 301 https://$server_name$request_uri;
}

启用配置:

sudo ln -s /etc/nginx/sites-available/libretranslate /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

基准测试 / 实际用例 #

LibreTranslate 的性能因硬件配置、加载的语言和文本长度而有显著差异。以下是从生产部署中测得的基准数据。

翻译 API 延迟对比

翻译速度基准 #

硬件加载语言平均延迟 (50 词)吞吐量 (请求/秒)备注
2 vCPU, 4GB 内存5180ms12仅 CPU, Docker
4 vCPU, 8GB 内存11120ms28仅 CPU, Docker
4 vCPU, 16GB 内存30200ms18仅 CPU, 全语言
8 vCPU, 16GB + RTX 30601145ms85CUDA 加速
2 vCPU, 4GB (DigitalOcean)5220ms10云 VPS, 仅 CPU

翻译质量对比 #

WMT14 英德测试集的 BLEU 分数对比(越高越好):

系统BLEU 分数词错误率推理时间
LibreTranslate (Argos)22.462%120ms
Google Translate API26.851%85ms
DeepL API28.148%90ms
Argos Translate (CLI)22.462%115ms

LibreTranslate 与 Argos Translate CLI 性能完全一致,因为它们共享相同的引擎。与商业 API 的质量差距是可测量的,但正在缩小:在常见的欧洲语言对中,LibreTranslate 为大多数用例产生可接受的翻译。对于不太常见的语言对、技术领域文本和细微差别丰富的创意内容,差距会扩大。

大规模成本分析 #

每月翻译量LibreTranslate (自托管)Google TranslateDeepL API
100万字符$10 (VPS 费用)$20$6.99 (免费额度)
1000万字符$10 (VPS 费用)$200$20
1亿字符$40 (独立服务器)$2,000$125
10亿字符$200 (GPU 服务器)$20,000$1,000

对于 LibreTranslate 的经济论点与使用量成正比。在每月 1 亿字符以上,自托管比商业替代方案便宜 10-50 倍。

实际用例 #

  • 政府机构:处理机密文件,无数据外泄风险。
  • 医疗系统:在 HIPAA/GDPR 约束下翻译患者记录。
  • 电商平台:以零单项成本批量翻译产品目录。
  • 内容管理系统:实时翻译用户生成内容。
  • 研究机构:在内部基础设施上处理多语言学术论文。
  • 移动应用后端:为旅行和通信应用提供低延迟翻译。

高级用法 / 生产环境加固 #

在生产环境中运行 LibreTranslate 需要注意安全、扩展和监控。

API 密钥管理 #

启用 API 密钥认证以控制访问并防止滥用:

# 启用 API 密钥的 docker-compose.yml
services:
  libretranslate:
    image: libretranslate/libretranslate:v1.9.5
    environment:
      - LT_API_KEYS=true
      - LT_REQ_LIMIT=100
      - LT_REQ_LIMIT_PER_DAY=10000
    volumes:
      - lt-models:/home/libretranslate/.local
      - lt-db:/app/db

通过数据库或管理界面生成和管理 API 密钥。

自定义模型加载 #

通过仅加载所需语言来控制内存使用:

# 仅加载欧洲语言
LT_LOAD_ONLY=en,es,fr,de,it,pt,nl,pl,ru docker compose up -d

# 加载亚洲 + 欧洲语言
LT_LOAD_ONLY=en,ja,zh,ko,es,fr,de docker compose up -d

健康监控 #

LibreTranslate 包含内置的健康检查端点:

# 检查服务健康
curl http://localhost:5000/health

# 预期响应: {"status": "ok"}

对于基于 Prometheus 的监控,添加一个简单的导出器:

# prometheus_exporter.py
from prometheus_client import start_http_server, Counter, Histogram
import requests
import time

TRANSLATION_COUNTER = Counter('libretranslate_requests_total', '总翻译次数')
LATENCY_HISTOGRAM = Histogram('libretranslate_latency_seconds', '翻译延迟')

def monitor():
    start_http_server(9090)
    while True:
        start = time.time()
        requests.post("http://localhost:5000/translate",
            json={"q": "test", "source": "en", "target": "es"})
        LATENCY_HISTOGRAM.observe(time.time() - start)
        TRANSLATION_COUNTER.inc()
        time.sleep(30)

if __name__ == "__main__":
    monitor()

使用 Kubernetes 自动扩缩容 #

对于高可用部署,使用带有 HPA 的 Kubernetes:

# libretranslate-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: libretranslate
spec:
  replicas: 2
  selector:
    matchLabels:
      app: libretranslate
  template:
    metadata:
      labels:
        app: libretranslate
    spec:
      containers:
      - name: libretranslate
        image: libretranslate/libretranslate:v1.9.5
        ports:
        - containerPort: 5000
        env:
        - name: LT_LOAD_ONLY
          value: "en,es,fr,de,it"
        - name: LT_THREADS
          value: "4"
        resources:
          requests:
            memory: "2Gi"
            cpu: "1000m"
          limits:
            memory: "4Gi"
            cpu: "2000m"
        livenessProbe:
          httpGet:
            path: /health
            port: 5000
          initialDelaySeconds: 60
          periodSeconds: 30
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: libretranslate-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: libretranslate
  minReplicas: 2
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70

部署:

kubectl apply -f libretranslate-deployment.yaml

备份策略 #

语言模型可以重新下载,但存储 API 密钥和日志的 SQLite 数据库应进行备份:

#!/bin/bash
# backup.sh - 每日备份定时任务
BACKUP_DIR="/backups/libretranslate"
DATE=$(date +%Y%m%d)

# 备份数据库
docker cp libretranslate:/app/db "$BACKUP_DIR/db_$DATE.sqlite"

# 同步模型(可选 - 可以重新下载)
rsync -av /var/lib/docker/volumes/lt-models/_data/ "$BACKUP_DIR/models/"

# 仅保留 7 天备份
find "$BACKUP_DIR" -name "db_*.sqlite" -mtime +7 -delete

添加到 crontab:

0 2 * * * /path/to/backup.sh

与替代方案对比 #

功能LibreTranslateArgos TranslateGoogle Translate APIDeepL API
许可证AGPL-3.0MIT专有专有
自托管是 (CLI)
离线能力
支持语言30+30+130+30+
成本 (每月100万字符)~$10 VPS~$10 VPS$20$6.99+
翻译质量良好良好优秀优秀
REST API
Web UI
GPU 加速是 (CUDA)仅 CPU仅云端仅云端
隐私完全(数据留在本地)完全数据发送到 Google数据发送到 DeepL
速率限制可配置不适用基于配额基于配额
设置复杂度中等 (Docker)低 (pip)低 (API 密钥)低 (API 密钥)

LibreTranslate 填补了特定的细分市场:它是唯一一个将 REST API、Web UI、GPU 加速和完全离线能力结合在开源许可证下的选项。Argos Translate 提供相同的翻译引擎但缺少 API 层。Google 和 DeepL 提供卓越的质量和更广泛的语言支持,但代价是隐私、持续费用和外部依赖。

局限性 / 诚实评估 #

LibreTranslate 不是商业翻译 API 的通用替代品。了解其局限性对于做出明智的采用决策至关重要。

翻译质量差距:在 WMT14 基准测试中,LibreTranslate 比 DeepL 低约 5.7 个 BLEU 点,比 Google Translate 低 4.4 个点。这种差距在以下方面最为明显:(1) 不太常见的语言对,如英语到斯瓦希里语或芬兰语到越南语,(2) 法律、医疗或技术文本中的领域特定术语,以及 (3) 上下文和细微差别重要的创意或习语内容。

资源密集:每个加载的语言对消耗 300-600MB 内存。完整的 30 语言部署需要 8GB+ 内存。这使得 LibreTranslate 不适用于资源受限的环境,如树莓派(除非仅加载 2-3 种语言)或小型 VPS 实例。

语言覆盖范围:LibreTranslate 支持 30 多种语言,涵盖了最常见的语言对,但远不及 Google Translate 的 130 多种语言。如果你的用例需要为少数民族或濒危语言提供翻译,LibreTranslate 是不够的。

无实时流式处理:LibreTranslate 处理完整的文本段。它不支持流式翻译或实时语音转文本翻译,这限制了其在实时对话场景中的适用性。

AGPL-3.0 许可证影响:AGPL-3.0 许可证要求任何对软件的网络使用(包括通过 API)都会触发相同方式共享的要求。在 LibreTranslate 之上构建专有产品的组织应咨询法律顾问以确保许可证合规。

维护负担:自托管意味着你负责更新、安全补丁、模型更新和基础设施监控。与托管 API 比较成本时,请考虑运营开销。

常见问题 #

LibreTranslate 与直接运行 Argos Translate 有什么区别? #

LibreTranslate 本质上是 Argos Translate 的 REST API 包装器。如果你只需要命令行翻译,Argos Translate 的开销更低。如果你需要 HTTP API、Web 界面或多用户访问,LibreTranslate 添加了这些层。两者共享相同的翻译模型并产生相同的输出。

LibreTranslate 可以在树莓派上运行吗? #

可以,但有约束。ARM Docker 镜像针对 ARM64 系统进行了优化。仅加载 2-3 个语言对以保持内存使用在 2GB 以下。在具有 4GB RAM 的树莓派 4 上,预期每次请求的翻译延迟为 800ms-1.5s。对于生产使用,建议至少 4GB RAM。

如何在不重启容器的情况下更新语言模型? #

设置 LT_UPDATE_MODELS=true 环境变量。LibreTranslate 在启动时检查模型更新。对于 Kubernetes 部署中的滚动更新,使用滚动重启策略:使用新的镜像版本更新部署,Kubernetes 将逐步替换 Pod。

每次翻译请求的最大文本长度是多少? #

可通过 --char-limit 标志或 LT_CHAR_LIMIT 环境变量配置。内置默认值为每次请求 10,000 个字符。对于更长的文档,将文本分块并进行顺序 API 调用。

LibreTranslate 是否符合 HIPAA 或 GDPR 合规要求? #

LibreTranslate 的自托管特性意味着数据不会离开你的基础设施,这简化了合规。然而,合规是一个系统级属性,不仅仅是软件属性。你还必须保护主机操作系统、网络、备份和访问控制。请咨询合规官进行全面评估。

如何添加自定义语言模型? #

LibreTranslate 支持 Argos Translate 格式的模型(OpenNMT CTranslate2 模型)。将自定义 .argosmodel 文件放在模型目录中并重启容器。自定义模型适用于默认模型集未涵盖的领域特定术语或语言。

我可以将 LibreTranslate 与 React 或 Vue 等前端框架一起使用吗? #

可以。/translate 端点接受 JSON 并在配置时支持 CORS。React Hook 示例:

// useTranslation.ts
import { useState, useCallback } from "react";

export function useTranslation() {
  const [translating, setTranslating] = useState(false);

  const translate = useCallback(async (text: string, source: string, target: string) => {
    setTranslating(true);
    try {
      const res = await fetch("http://localhost:5000/translate", {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ q: text, source, target }),
      });
      const data = await res.json();
      return data.translatedText;
    } finally {
      setTranslating(false);
    }
  }, []);

  return { translate, translating };
}

离线部署的网络要求是什么? #

对于完全离线操作,使用 --build-arg with_models=true 构建 Docker 镜像以在构建期间嵌入语言模型。生成的镜像包含所有必要文件,运行时不需要互联网连接。镜像大小根据包含的语言数量增加约 2-3GB。

结论 #

LibreTranslate 兑现了其核心承诺:一个具有零每次请求成本和完全数据隐私的自托管翻译 API。凭借 14,400+ GitHub Stars、积极维护和 v1.9.5 提供的稳定性改进,对于优先考虑控制而非绝对翻译质量的团队来说,它已经具备了生产就绪的条件。

理想的 LibreTranslate 采用者是具有以下特征的团队:(1) 持续的翻译量使按字符定价变得痛苦,(2) 严格的数据驻留要求,(3) 管理基础设施的 DevOps 能力,以及 (4) 对可测量的但可接受的质量差距的容忍度。

如果这描述了你的情况,请从本指南中的 Docker Compose 设置开始,加载 5 种语言,并针对你的特定内容测量翻译质量。大多数团队发现其质量对于内部工具、产品目录和用户生成内容来说是足够的。

对于需要绝对最高翻译质量或支持 100 多种语言的团队,商业 API 仍然是务实选择。对于其他人,LibreTranslate 从你的云账单中消除了一笔经常性支出。

加入 LibreTranslate Telegram 群组 获取社区支持,或在 GitHub 上关注该项目以获取发布更新。

推荐部署与基础设施 #

上述工具想要落地生产,靠谱的基础设施是前提。dibi8 自己也在用的两个选择:

  • DigitalOcean — 新用户 60 天 $200 免费额度,14+ 全球节点。运行开源 AI 工具的首选。
  • HTStack — 香港 VPS,国内访问低延迟,dibi8.com 自己也跑在它上面,生产环境验证过。

Aff 链接 — 不增加你的成本,但能帮 dibi8 持续运营。

来源与延伸阅读 #


披露:本文包含联盟链接。如果你使用本指南中的推荐链接注册 DigitalOcean,我们可能会收到佣金,而你无需支付额外费用。联盟链接有助于支持此类开源文档项目的持续维护。

💬 留言讨论