
后端NLPAI 应用【免费下载链接】LibreTranslateFree and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.项目地址https://gitcode.com/GitHub_Trending/li/LibreTranslate点击查看免费下载LibreTranslate 是一款完全自托管的开源机器翻译 API翻译引擎不依赖 Google、Azure 等专有服务而是由开源库 Argos Translate 为主线结合 libretranslate/main.py、libretranslate/default_values.py、docker-compose.yml、scripts/entrypoint.sh 等源码与配置文件系统讲解 LibreTranslate 的快速启动、命令行与环境变量配置、语言模型管理、API 使用及生产部署要点帮助读者在自己的服务器上独立跑起一条可用的翻译服务链路。项目定位自由、开源、可离线自托管LibreTranslate 的自我定位见 README.md是Free and Open Source Machine Translation API, entirely self-hosted——一个完全自托管、免费开源的机器翻译 API。它与主流云翻译 API 的关键区别在于不依赖专有软件不像其他 API 依赖 Google、Azure 等专有服务来完成翻译其翻译引擎由开源库 Argos Translate 提供算力模型加载在本地理论上可以完全离线运行无限制、无外部绑定pyproject.toml 中的项目描述进一步概括为 Self-hosted, no limits, no ties to proprietary services开源协议仓库采用 GNU Affero General Public License v3 许可README.md 与 LICENSE商标使用另有 TRADEMARK.md 规范约束。当前仓库对应的版本号记录在 VERSION 文件中为1.9.6。项目要求 Python 3.8见 pyproject.toml 的requires-python并支持 Python 3.8 至 3.13 的版本矩阵。从 pyproject.toml 可以看到LibreTranslate 的核心技术栈包括组件版本作用argos-translate-lt1.12.1翻译引擎本体Argos Translate 的绑定版本Flask2.2.5Web 应用框架waitress2.1.2默认的生产级 WSGI 服务器单进程模式Flask-Limiter2.6.3请求限流Flask-Babel3.1.0多语言界面locales 目录下有 60 语言APScheduler3.11.2定时任务如模型更新redis4.4.4可选的外部存储后端prometheus-client0.15.0指标导出同时pyproject.toml 注册了两个控制台命令libretranslate对应libretranslate.main:main和ltmanage对应libretranslate.manage:manage前者用于启动服务后者用于管理 API Key 等运维任务。快速开始两条最直接的启动路径LibreTranslate 官方推荐的快速启动方式是通过 Docker。仓库提供了三种等价入口读者可任选其一。方式一docker-compose推荐最省事docker-compose.yml 定义了一个开箱即用的服务services: libretranslate: container_name: libretranslate image: libretranslate/libretranslate:latest ports: - 5000:5000 restart: unless-stopped healthcheck: test: [CMD-SHELL, ./venv/bin/python scripts/healthcheck.py] interval: 10s timeout: 4s retries: 4 start_period: 5s启动命令docker compose up -d该文件在基础配置之外还以注释形式预置了大量生产级优化建议健康检查容器内置健康检查每 10 秒执行一次 scripts/healthcheck.py帮助编排系统如 k8s判断服务是否就绪启动参数注入可取消注释command行来追加参数例如--ssl --req-limit 100 --char-limit 500API Key 持久化启用LT_API_KEYStrue并将LT_API_KEYS_DB_PATH指向/app/db/api_keys.db配合命名卷libretranslate_api_keys备份 API Key 数据库模型卷挂载通过libretranslate_models:/home/libretranslate/.local:rw将语言模型保存在 Docker 卷中避免每次启动重复下载配合LT_UPDATE_MODELStrue与LT_LOAD_ONLYen,fr可显著优化模型加载时间。方式二官方脚本一键运行仓库根目录的 run.shLinux / macOS / Windows WSL与 run.batWindows封装了相同的 Docker 运行逻辑。run.sh的核心执行语句是docker run -ti --rm -p $LT_PORT:$LT_PORT $DB_VOLUME -v lt-local:/home/libretranslate/.local libretranslate/libretranslate ${ARGS[]}脚本支持--port N指定宿主机端口默认5000、--debug打开调试、--api-keys自动挂载lt-db卷用于 API Key 数据库持久化。其中-v lt-local:/home/libretranslate/.local是关键Argos Translate 的语言模型默认存放在用户主目录的.local下挂载为命名卷可以避免每次重启容器后重新下载模型。方式三裸跑镜像直接执行对应 docker-compose.yml 与 run.sh 的用法docker run -ti --rm -p 5000:5000 libretranslate/libretranslate首次启动会自动下载默认语言模型因此建议始终挂载模型卷。启动完成后访问http://localhost:5000即可看到 Web 翻译界面http://localhost:5000/docs提供 Swagger API 文档。从源码运行pip 安装与开发模式如果需要在裸机环境运行或参与二次开发可以直接从源码安装。仓库根目录的 main.py 是源码运行的入口from libretranslate import main if __name__ __main__: main()安装与启动步骤# 1. 安装项目本体含控制台命令 libretranslate / ltmanage pip install . # 2. 直接启动 libretranslate --host 0.0.0.0 --port 5000 # 3. 或从源码目录以开发模式启动等价于运行 python main.py python main.pypyproject.toml 还提供了 Hatch 开发环境脚本hatch run dev等价于python main.pyhatch run locales用于编译语言文件调用 scripts/compile_locales.pyhatch run test会先执行格式检查再跑测试套件。需要说明运行环境的前提服务默认以waitress作为 WSGI 服务器详见 libretranslate/main.py 的main()线程数由--threads控制默认 4若传入--debug则改用 Werkzeug 开发服务器。镜像内的生产环境则使用 gunicorn见下文生产部署一节。核心配置CLI 参数与环境变量完全对照LibreTranslate 的所有启动参数既可以用命令行传参也可以用LT_前缀的环境变量注入。libretranslate/default_values.py 是两者的统一默认值来源它以LT_为前缀从环境变量读取_get_value系列函数并据此构建DEFAULT_ARGUMENTS字典libretranslate/main.py 的get_parser()再用这些默认值构造 argparse 参数解析器。因此每个 CLI 参数都有一个对应的LT_环境变量两者可互换例如--port 8080与LT_PORT8080等价。全部参数的默认值与含义如下表数据源自 libretranslate/default_values.py 与 libretranslate/main.py参数CLI / 环境变量默认值含义--host/LT_HOST127.0.0.1监听地址--port/LT_PORT5000监听端口--char-limit/LT_CHAR_LIMIT-1单次翻译的字符上限-1 表示不限--req-limit/LT_REQ_LIMIT-1每客户端每分钟最大请求数-1 表示不限--req-limit-storage/LT_REQ_LIMIT_STORAGEmemory://限流计数存储 URI支持 redis 等 Flask-Limiter 后端--hourly-req-limit/LT_HOURLY_REQ_LIMIT-1每客户端每小时请求上限在 req-limit 之外--hourly-req-limit-decay/LT_HOURLY_REQ_LIMIT_DECAY0按小时对数衰减的额外限流--daily-req-limit/LT_DAILY_REQ_LIMIT-1每客户端每日请求上限--req-flood-threshold/LT_REQ_FLOOD_THRESHOLD-1客户端超限多少次后被封禁--req-time-cost/LT_REQ_TIME_COST-1限流的时间成本系数长时间请求按更高成本计数--batch-limit/LT_BATCH_LIMIT-1批量请求中最大文本条数--debug/LT_DEBUGFalse启用调试环境Werkzeug 开发服务器--ssl/LT_SSLNone是否启用 SSL影响 URL scheme--frontend-language-source/LT_FRONTEND_LANGUAGE_SOURCEauto前端默认源语言--frontend-language-target/LT_FRONTEND_LANGUAGE_TARGETlocale前端默认目标语言--frontend-language/LT_FRONTEND_LANGUAGE空前端界面语言--frontend-timeout/LT_FRONTEND_TIMEOUT500前端翻译超时毫秒--frontend-title/LT_FRONTEND_TITLE空前端页面标题--api-keys/LT_API_KEYSFalse启用 API Key 数据库支持按用户限流--api-keys-db-path/LT_API_KEYS_DB_PATHdb/api_keys.db本地 API Key 数据库路径容器内可为绝对路径--api-keys-remote/LT_API_KEYS_REMOTE空用远程端点校验 API Key 而非本地数据库--get-api-key-link/LT_GET_API_KEY_LINK空在 UI 中展示获取 API Key 的引导链接--require-api-key-origin/LT_REQUIRE_API_KEY_ORIGIN空要求 API 访问必须携带 Key除非请求来源匹配该域名--require-api-key-secret/LT_REQUIRE_API_KEY_SECRETFalse客户端还需发送匹配的 secret 才能免 Key--require-api-key-fingerprint/LT_REQUIRE_API_KEY_FINGERPRINTFalse客户端还需匹配指纹才能免 Key--hide-api/LT_HIDE_APIFalse在前端隐藏 API 请求/响应字段--under-attack/LT_UNDER_ATTACKFalse受攻击模式启用后所有请求都必须携带 API Key--shared-storage/LT_SHARED_STORAGEmemory://多进程如 gunicorn共享数据用的存储 URI--secondary/LT_SECONDARYFalse标记为多节点部署中的从属实例避免与主节点冲突--load-only/LT_LOAD_ONLY空仅加载指定语言模型逗号分隔如en,fr--alternatives-limit/LT_ALTERNATIVES_LIMIT-1备选翻译结果的最大数量--threads/LT_THREADS4线程数--trust-forwarded-for/LT_TRUST_FORWARDED_FORFalse信任 X-Forwarded-For 头以正确限流反向代理后必开--suggestions/LT_SUGGESTIONSFalse允许用户提交翻译建议--disable-files-translation/LT_DISABLE_FILES_TRANSLATIONFalse禁用文件翻译--disable-web-ui/LT_DISABLE_WEB_UIFalse禁用 Web 界面纯 API 模式--update-models/LT_UPDATE_MODELSFalse启动时更新语言模型--force-update-models/LT_FORCE_UPDATE_MODELSFalse启动时强制重装语言模型--metrics/LT_METRICSFalse启用/metrics端点导出 Prometheus 指标--metrics-auth-token/LT_METRICS_AUTH_TOKEN空用 Bearer Token 保护/metrics端点--translation-cache/LT_TRANSLATION_CACHE空为指定 API Key或all缓存翻译结果--url-prefix/LT_URL_PREFIX空为 URL 添加前缀如example.com:5000/url-prefix/需要特别说明两处值得留意的细节环境变量的布尔解析libretranslate/default_values.py 的_get_value_bool只把TRUE/True/true/1视为真、FALSE/False/false/0视为假其他取值一律回退到默认值--url-prefix若未以/开头会在 libretranslate/main.py 的get_args()中自动补全并通过 Werkzeug 的DispatcherMiddleware实现前缀路由分发。环境变量的用途示例以下两种写法完全等价默认 host/port 场景下--port 8080与LT_PORT8080等效# 命令行方式 libretranslate --host 0.0.0.0 --port 8080 --load-only en,fr --metrics # 环境变量方式 export LT_HOST0.0.0.0 export LT_PORT8080 export LT_LOAD_ONLYen,fr export LT_METRICStrue libretranslate语言模型机制Argos Translate 与模型管理翻译能力来自 Argos Translate。模型默认存放在用户主目录的.local这也是 run.sh 挂载lt-local:/home/libretranslate/.local、docker-compose.yml 挂载libretranslate_models卷的原因。模型管理有三个常用入口启动时更新--update-models或LT_UPDATE_MODELStrue在启动时增量更新模型--force-update-models则强制重新安装按需裁剪模型--load-only en,fr只加载指定语言对可显著减少内存占用并加速启动参数定义见 libretranslate/main.py构建镜像时预装docker/Dockerfile 支持--build-arg with_modelstrue与--build-arg modelsen,fr在镜像构建阶段就调用 scripts/install_models.py 把模型打进镜像运行时无需再下载。未指定models时则安装全部默认模型。在 scripts/entrypoint.sh 中还有一处刻意设计gunicorn 启动前会unset LT_UPDATE_MODELS与FORCE_UPDATE_MODELS避免多 worker 场景下每个 worker 重复触发模型更新。从 pyproject.toml 的依赖可见模型包由argos-translate-files与argos-translate-lt协同管理此外 entrypoint 还会默认设置ARGOS_CHUNK_TYPEMINISBD使用 minisbd 作为句子切分策略对应依赖minisbd0.9.5以及OMP_NUM_THREADS1来控制线程资源。API 使用与验证核心端点与测试用例服务启动后即暴露 REST API。仓库的测试目录 libretranslate/tests/test_api 是理解各端点行为的最佳佐证包含test_api_translate.py验证/translate翻译接口的请求参数与响应test_api_detect_language.py验证/detect语言检测接口test_api_get_languages.py验证/languages支持的语言列表接口test_api_health.py验证/health健康检查接口test_api_spec.py验证 Swagger 规格/spec配套 UI 由 flask-swagger-ui 提供test_api_frontend_settings.py验证前端配置相关的/frontend/settings接口。一个典型的翻译请求POST /translatecurl -X POST http://localhost:5000/translate \ -H Content-Type: application/json \ -d {q: Hello world, source: en, target: zh}响应示例各字段以测试与 Swagger 规格为准{translatedText: 你好世界}其余常用接口包括GET /languages获取可用语言及语言代码POST /detect传入文本{q: ...}返回语言检测结果GET /health健康检查也是 docker-compose.yml 健康检查脚本 scripts/healthcheck.py 的探测对象GET /metrics启用--metrics后导出 Prometheus 指标可用--metrics-auth-token保护。当需要限制访问时配合--api-keys启用 API Key 数据库默认路径db/api_keys.dbltmanage命令负责创建与吊销 Key--api-keys-remote则允许对接外部校验服务。此外libretranslate/app.py 还实现了文件翻译依赖argostranslatefiles支持 HTML 等格式可用--disable-files-translation关闭与翻译建议收集--suggestions。生产部署要点gunicorn、健康检查与多节点Docker 镜像的启动入口是 scripts/entrypoint.sh其生产启动命令为./venv/bin/gunicorn -c scripts/gunicorn_conf.py \ --workers $LT_THREADS --max-requests 250 \ --timeout ${LT_TIMEOUT:-2400} --bind $BIND_ADDR:$LT_PORT wsgi:app()从中可以提炼出几条明确的生产运维要点Worker 数由LT_THREADS决定默认 4--max-requests 250让 worker 处理满 250 个请求后自动重启以释放内存默认超时 2400 秒可用LT_TIMEOUT覆盖适合大文本/长批量翻译场景绑定地址自适应entrypoint 会读取LT_HOST若为默认127.0.0.1则在容器内改绑0.0.0.0IPv6 环境绑[::]保证容器端口可被外部访问指标目录自动清理PROMETHEUS_MULTIPROC_DIR指向db/prometheus启动前清理残留.db文件配合--metrics使用多节点/多进程一致性使用--shared-storage与--secondary组合部署多实例时共享限流状态、避免主从冲突反向代理场景务必开启--trust-forwarded-for否则限流会基于代理 IP 而非真实客户端 IP。单进程裸跑非 Docker时libretranslate/main.py 的main()会默认走 waitress 路径并打印启动地址例如Running on http://0.0.0.0:5000多语言界面与本地化LibreTranslate 自带完整的 Web 前端模板位于 libretranslate/templates含 index.html 与 app.js.template静态资源在 libretranslate/static。界面语言通过 Flask-Babel 管理libretranslate/locales 下提供了 60 多种语言的messages.po与meta.json。相关工具链包括scripts/compile_locales.py编译.po为.moDocker 构建阶段会先执行此步骤见 docker/Dockerfilescripts/update_locales.py同步更新语言文件前端默认语言与翻译方向可通过--frontend-language、--frontend-language-source、--frontend-language-target定制。小结与下一步本文从 README.md 的项目定位出发串联起了 LibreTranslate 从镜像一键起服务到源码级参数调优的完整落地路径Docker 快速启动docker-compose.yml、run.sh→ 参数与环境变量体系libretranslate/default_values.py、libretranslate/main.py→ 模型管理scripts/install_models.py、docker/Dockerfile→ API 使用libretranslate/tests/test_api→ 生产部署scripts/entrypoint.sh。对于想要深入使用的读者建议按以下顺序继续探索仓库阅读 docker-compose.yml 中被注释的生产级配置逐个启用验证对照 libretranslate/default_values.py 的完整参数表为你的部署场景确定限流、API Key 与模型裁剪策略翻阅 libretranslate/tests/test_api 下的测试用例理解每个 API 端点的精确行为如需定制镜像参考 docker/Dockerfile 的with_models构建参数与 k8s.yaml 的编排示例。LibreTranslate 的价值在于翻译能力完全自主可控模型、服务、数据都在你自己的基础设施之内无需向任何第三方服务发送文本。基于 README.md 与仓库源码给出的上述配置维度足以支撑从个人实验到多实例生产集群的各类部署形态。赞分享后端NLPAI 应用【免费下载链接】LibreTranslateFree and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.项目地址https://gitcode.com/GitHub_Trending/li/LibreTranslate点击查看免费下载相关推荐LibreTranslate完全自托管的开源机器翻译APILibreTranslate完全自托管的开源机器翻译API LibreTranslate是一个基于Python构建的完全自托管的开源机器翻译API采用Fla后端NLPAI 应用LibreTranslate项目自托管开源机器翻译API完全指南LibreTranslate项目自托管开源机器翻译API完全指南 什么是LibreTranslate LibreTranslate是一款完全开源且可自托管的机后端NLPAI 应用LibreTranslate 自托管机器翻译API终极完整配置指南 LibreTranslate 是一款免费开源的机器翻译API完全支持自托管部署无需依赖Google、Azure等商业服务。这个强大的离线翻译解决方案让您能够后端NLPAI 应用上一篇MoviePy UpdatedVideoClip 实战面向“世界驱动”仿真的按需更新视频剪辑下一篇KLog高级用法无限长字符串与变长参数处理技巧创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考