LibreTranslate:1.44万星标的自托管翻译API

LibreTranslate(LT)是一款免费、开源的机器翻译API,由Argos Translate驱动。支持Docker、CUDA GPU、30多种语言以及离线部署。涵盖搭建、性能测试、监控,以及与OpenAI Whisper、Coqui TTS、Argos Translate的集成。

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

Stable Diffusion WebUI 2026(AUTOMATIC1111)Tabby:1.44万星标的自托管AI编码助手

LibreTranslate 是一款免费、开源的机器翻译API,由你自己托管。不需要Google的API密钥,不需要按DeepL的方式按字符计费,也没有任何数据离开你的基础设施。凭借14,400多个GitHub星标和活跃的发布节奏(截至2026年5月已更新到v1.9.5),它已成为需要私密、可离线运行、零边际成本翻译能力的开发者的默认选择。这篇LibreTranslate教程涵盖了从环境搭建到libretranslate docker生产部署的方方面面,还包含性能测试和集成指南。我们还提供了一份详细的libretranslate对比deepl的分析,帮助你判断自托管翻译方案是否适合你的使用场景。

LibreTranslate 徽标

什么是LibreTranslate? #

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

与基于云端的翻译API不同,LibreTranslate 完全运行在你自己的硬件上。所有文本处理都在本地完成,这使它非常适合对隐私敏感的应用场景、物理隔离网络,以及合规要求严格的行业。这个项目最初是为了解决"缺乏尊重隐私的翻译工具"这一问题而发起的,如今已成长为一个被企业、政府和个人开发者广泛使用的生产级平台。

LibreTranslate的工作原理 #

LibreTranslate 的架构相当简洁:一个Python Flask后端提供REST API,而繁重的翻译工作则交由Argos Translate的神经机器翻译(NMT)模型处理。这些模型会在首次运行时下载并缓存到本地,使初始设置完成后能够离线运行。

核心架构 #

LibreTranslate 架构图

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│   Client (Web)  │────▶│  Flask REST API  │────▶│ Argos Translate │
│   / API Call    │◀────│    (Port 5000)   │◀────│   (NMT Engine)  │
└─────────────────┘     └──────────────────┘     └─────────────────┘
                                                        │
                              ┌─────────────────────────┘
                              ▼
                        ┌──────────────┐
                        │ Language     │
                        │ Models (~2GB)│
                        └──────────────┘

核心组件 #

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

翻译请求在系统中的流转过程如下:客户端发送一个包含源文本、源语言和目标语言的JSON数据包。API对请求进行校验,将其路由到对应的Argos模型,然后返回翻译后的文本,以及置信度分数、检测到的语言等元数据。

安装与设置 #

LibreTranslate 提供了多种部署方式。由于隔离性好、可复现性强、更新方便,生产环境推荐使用Docker方式部署。

系统要求 #

配置CPU内存存储启动时间
最小配置(3种语言)1个vCPU2GB1GB约60秒
推荐配置(11种语言)2个vCPU4GB3GB约90秒
完整加载(30多种语言)4个vCPU8GB10GB约120秒

Docker快速启动 #

在本地快速运行LibreTranslate最简单的方法:

# Run with 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。首次运行时需要下载语言模型,因此界面响应之前会有一小段延迟。

生产环境Docker Compose配置 #

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

# docker-compose.yml - Production Setup
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加速。要求:安装CUDA 11.2以上版本的NVIDIA GPU,以及nvidia-docker2。

# Clone the repository
git clone https://github.com/LibreTranslate/LibreTranslate.git
cd LibreTranslate

# Build and run CUDA-enabled version
docker compose -f docker-compose.cuda.yml up -d --build

验证GPU使用情况:

nvidia-smi

原生Python安装 #

适用于开发环境,或无法使用Docker的场景:

# Install via pip
pip install libretranslate==1.9.5

# Start the server
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或Droplet提供了简便的部署路径。可以使用一键式Docker镜像进行部署:

# On a fresh Ubuntu 24.04 Droplet
curl -fsSL https://get.docker.com | sh
mkdir -p ~/libretranslate && cd ~/libretranslate

# Create production compose file
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全天候运行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": ""  # Add your API key if enabled
    }
    headers = {"Content-Type": "application/json"}

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

# Example usage
if __name__ == "__main__":
    result = translate_text("Hello, production deployment!", "en", "de")
    print(f"Translated: {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(`Translation failed: ${response.statusText}`);
    }

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

// Usage
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:
    # Step 1: Transcribe audio with Whisper
    result = WHISPER_MODEL.transcribe(audio_path)
    source_text = result["text"]
    detected_lang = result.get("language", "auto")

    # Step 2: Translate with 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
    }

# Run pipeline
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

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

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

    # Synthesize speech
    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

# Generate multilingual audio
for lang in ["es", "fr", "de"]:
    translate_and_speak("Welcome to our service", lang, "reference.wav")

cURL API示例 #

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

# Response: {"translatedText": "Hola mundo"}

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

# Get supported languages
curl http://localhost:5000/languages

# Translate with API key (if enabled)
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 translation
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;
    }
}

# Redirect HTTP to 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 的性能表现,会因硬件配置、加载的语言数量和文本长度而有很大差异。以下是从生产环境部署中实测得到的性能数据。

翻译速度测试 #

硬件配置加载语言数平均延迟(50个单词)吞吐量(请求/秒)备注
2个vCPU,4GB内存5180毫秒12仅CPU,Docker
4个vCPU,8GB内存11120毫秒28仅CPU,Docker
4个vCPU,16GB内存30200毫秒18仅CPU,全部语言
8个vCPU,16GB + RTX 30601145毫秒85CUDA加速
2个vCPU,4GB(DigitalOcean)5220毫秒10云端VPS,仅CPU

翻译质量对比 #

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

系统BLEU分数词错误率推理耗时
LibreTranslate(Argos)22.462%120毫秒
Google Translate API26.851%85毫秒
DeepL API28.148%90毫秒
Argos Translate(命令行)22.462%115毫秒

LibreTranslate 的表现与Argos Translate命令行版本完全一致,因为两者使用相同的引擎。与商业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密钥身份验证,以控制访问权限并防止滥用:

# docker-compose.yml with API keys
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密钥。

自定义模型加载 #

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

# Load only European languages
LT_LOAD_ONLY=en,es,fr,de,it,pt,nl,pl,ru docker compose up -d

# Load Asian + European languages
LT_LOAD_ONLY=en,ja,zh,ko,es,fr,de docker compose up -d

健康监控 #

LibreTranslate 内置了一个健康检查接口:

# Check service health
curl http://localhost:5000/health

# Expected response: {"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', 'Total translations')
LATENCY_HISTOGRAM = Histogram('libretranslate_latency_seconds', 'Translation latency')

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实现自动扩缩容 #

对于高可用部署,可以配合水平Pod自动扩缩容器(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 - Daily backup cron job
BACKUP_DIR="/backups/libretranslate"
DATE=$(date +%Y%m%d)

# Backup database
docker cp libretranslate:/app/db "$BACKUP_DIR/db_$DATE.sqlite"

# Sync models (optional - can be re-downloaded)
rsync -av /var/lib/docker/volumes/lt-models/_data/ "$BACKUP_DIR/models/"

# Keep only 7 days of backups
find "$BACKUP_DIR" -name "db_*.sqlite" -mtime +7 -delete

添加到crontab:

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

与其他方案的对比 #

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

LibreTranslate 填补了一个特定的细分市场:它是唯一一个在开源许可证下,同时具备REST API、Web界面、GPU加速和完整离线能力的方案。Argos Translate 提供相同的翻译引擎,但缺少API层。Google 和 DeepL 提供更优质的质量和更广泛的语言支持,但代价是牺牲隐私、需要持续付费,以及依赖外部服务。

局限性 / 客观评估 #

LibreTranslate 并不能全面替代商业翻译API。要做出明智的采纳决策,理解它的局限性至关重要。

翻译质量差距:在WMT14基准测试中,LibreTranslate 的BLEU分数比DeepL低约5.7分,比Google Translate低约4.4分。这一差距在以下几种情况下最为明显:(1)不常见的语言对,比如英语到斯瓦希里语,或芬兰语到越南语;(2)法律、医疗或技术文本中的专业领域术语;(3)依赖语境和细微差别的创意或习语类内容。

资源消耗:每加载一个语言对会消耗300到600MB内存。完整加载30种语言需要8GB以上的内存。这使得LibreTranslate 不适合资源受限的环境,比如树莓派(除非只加载2到3种语言)或小型VPS实例。

语言覆盖范围:凭借30多种语言,LibreTranslate 覆盖了最常见的语言对,但远不及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内存的树莓派4上,预计每次请求的翻译延迟为800毫秒到1.5秒。对于生产环境使用,建议至少配置4GB内存。

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

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

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

默认的最大长度可以通过 --char-limit 标志或 LT_CHAR_LIMIT 环境变量进行配置。内置默认值是每次请求10,000个字符。对于更长的文档,需要将文本拆分成多个片段,依次调用API。

LibreTranslate适合用于HIPAA或GDPR合规场景吗? #

LibreTranslate 的自托管特性意味着没有数据会离开你的基础设施,这简化了合规工作。不过,合规性是一个系统层面的属性,而不仅仅取决于软件本身。你还必须确保主机操作系统、网络、备份和访问控制等方面的安全。请咨询你的合规负责人以获得全面评估。

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

LibreTranslate 支持Argos Translate格式的模型(即OpenNMT CTranslate2模型)。将自定义的 .argosmodel 文件放入models目录,然后重启容器即可。自定义模型对于处理领域专属术语,或默认模型集未覆盖的语言非常有用。

我可以将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 };
}

离线部署对网络有什么要求? #

要实现完全离线运行,需要在构建Docker镜像时加上 --build-arg with_models=true,将语言模型嵌入到构建过程中。这样构建出的镜像包含了所有必需文件,运行时无需任何网络连接。根据所包含语言数量的不同,镜像体积大约会增加2到3GB。

结论 #

LibreTranslate 兑现了它的核心承诺:一个能力可靠、自托管、零单次请求成本、且数据完全私密的翻译API。凭借14,400多个GitHub星标、持续的维护投入,以及带来稳定性改进的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的同一家IDC——已经过生产环境实战检验。

联盟链接——不会给你带来额外费用,同时能帮助维持dibi8.com的运营。

参考资料与延伸阅读 #


披露声明:本文包含联盟链接。如果你通过本指南中的推荐链接注册DigitalOcean,我们可能会获得一定佣金,且不会给你带来任何额外费用。联盟链接有助于支持像本文这样的开源文档项目的持续维护。

References & Sources #

💬 留言讨论