docs/docs/cn/ai-employees/scenarios/localization-hy-mt.md
本文介绍一种本地化翻译实践:在本地部署翻译专用小模型,将其作为 OpenAI 兼容服务接入 NocoBase,再配置给 Lina 执行本地化词条翻译任务。
这个方案适合需要批量翻译大量系统词条、插件文案、菜单、数据表和字段标题的场景。相比在线模型,本地模型不会受到外部 API RPM、TPM 或并发限流影响,可以根据机器性能和模型能力调整并发数,整体任务耗时更可控。
本方案使用:
tencent/HY-MT1.5-1.8B-GGUFllama-server:::info{title=说明} HY-MT1.5-1.8B 是翻译专用小模型,更适合短词条、界面文案和批量翻译场景。对于本地化任务,不建议优先使用普通聊天模型。 :::
开始前,需要准备:
llama-server.llama-server 的 HTTP 地址。在 macOS 上,可以通过 Homebrew 安装:
brew install llama.cpp
也可以使用 llama.cpp 的预编译二进制或从源码构建。只要最终能使用 llama-server 即可。
使用 Hugging Face 上的 GGUF 模型启动服务:
llama-server \
-hf tencent/HY-MT1.5-1.8B-GGUF:Q4_K_M \
--host 0.0.0.0 \
--port 8000 \
-c 2048 \
-np 4
参数说明:
| 参数 | 说明 |
|---|---|
-hf | 从 Hugging Face 加载模型。 |
--host | 监听地址。部署在本机测试时可使用 127.0.0.1,容器或远程访问时可使用 0.0.0.0。 |
--port | HTTP 服务端口。 |
-c | 上下文长度。本地化词条通常较短,2048 已足够。 |
-np | 并行处理槽位数量。可根据机器性能调整。 |
:::info{title=提示}
如果服务器资源有限,可以先使用 -np 1 或 -np 2 验证可用性,再逐步增加并发。
:::
llama-server 启动后,先检查服务状态:
curl http://127.0.0.1:8000/health
服务就绪后,可以通过 OpenAI 兼容接口测试翻译:
curl http://127.0.0.1:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "tencent/HY-MT1.5-1.8B-GGUF:Q4_K_M",
"messages": [
{
"role": "user",
"content": "Translate the following text into Chinese. Output only the translated result without any additional explanation:\n\nSave"
}
]
}'
如果使用本地模型文件启动,也可以将请求中的 model 改为服务实际返回或配置的模型名称。
:::warning{title=注意}
如果请求长时间无响应,通常说明模型推理速度不足、并发过高或上下文配置过大。先降低 -np 和 NocoBase 侧翻译并发,再观察响应时间。
:::
进入 系统设置 -> AI 员工 -> LLM service,新增一个 LLM 服务。
参考配置如下:
| 配置项 | 示例值 |
|---|---|
| Provider | OpenAI (completions) |
| Title | HY-MT Local |
| Base URL | http://127.0.0.1:8000/v1 |
| API Key | 如果 llama-server 未配置鉴权,可填写任意占位值,如 dummy。 |
| Enabled Models | 选择 tencent/HY-MT1.5-1.8B-GGUF:Q4_K_M,或填写实际模型名。 |
配置完成后,建议先使用 Test flight 测试模型是否可用。
:::info{title=提示}
如果 NocoBase 运行在 Docker 容器中,127.0.0.1 指向容器内部,不一定能访问宿主机服务。需要改成宿主机 IP、容器网络地址,或使用 host.docker.internal。
:::
进入 系统设置 -> AI 员工 -> AI employees,打开 Lina 的配置,切换到 Model settings。
Enable dedicated model configuration。Models 中选择刚刚创建的 HY-MT 本地模型。启用后,Lina 会优先使用该模型执行本地化翻译任务。这样可以避免用户在聊天或任务中切换到普通聊天模型,提升翻译稳定性。
更多说明参考 配置 AI 员工模型。
本地化翻译任务的并发数由环境变量 AI_LOCALIZATION_CONCURRENCY 控制:
AI_LOCALIZATION_CONCURRENCY=10
规则如下:
10120本地模型的最佳并发取决于 CPU、GPU、内存、模型量化版本和 llama-server 的 -np 配置。如果按默认并发数执行任务有问题,建议按以下方式调整:
AI_LOCALIZATION_CONCURRENCY=1,确认单条翻译稳定。llama-server -np 和 AI_LOCALIZATION_CONCURRENCY 都调到 2 或 4。:::warning{title=注意} 不要直接把并发调到很高。并发超过模型实际处理能力时,任务不会更快,反而可能造成请求排队、超时或服务卡住。 :::
进入 系统管理 -> 本地化管理。
同步,确保词条已同步。增量翻译:只翻译尚未有译文的词条。翻译所选项:只翻译表格中勾选的词条。全量翻译:翻译当前语言中的全部词条。全部内置词条:系统和插件词条。自建词条:路由名称、数据表和字段名称以及 UI 上的内容。建议先使用 翻译所选项 测试少量词条,确认模型输出风格和速度符合预期后,再执行增量或全量翻译。
Lina 会根据词条和参考翻译构造翻译请求。对于短词条,系统会尽量使用参考译文提升一致性:
典型提示词语义如下:
Refer to the following translation:
{source_term} is translated as {target_term}
Translate the following text into {target_language}. Output only the translated result without any additional explanation:
{source_text}
先确认 llama-server 是否收到请求。可以查看服务日志,或直接使用 curl 调用 /v1/chat/completions。
如果模型端有请求但长时间不返回,通常是模型推理卡住或并发过高。先降低:
AI_LOCALIZATION_CONCURRENCYllama-server -npllama-server -c本地翻译小模型一般比普通聊天模型更稳定。如果仍然出现解释文本,可以先用 curl 测试同一段提示词,确认模型本身的输出风格。
也可以优先翻译较短的词条,或降低温度等采样参数。
检查:
/v1。llama-server 是否仍在运行。AI 翻译完成后,仍建议人工抽查后再发布:
重置系统内置词条翻译内容 恢复默认译文。贡献系统和官方插件默认译文时,可参考 翻译贡献。