Usar Lina y HY-MT1.5-1.8B local para traducir entradas de localización

Empleado de IACommunity Edition+

Esta guía describe una práctica de traducción de localización: desplegar localmente un modelo pequeño especializado en traducción, exponerlo como servicio compatible con OpenAI y configurarlo para que Lina traduzca entradas de localización de NocoBase por lotes.

Resumen

Esta guía usa:

  • Modelo: tencent/HY-MT1.5-1.8B-GGUF
  • Servicio de inferencia: llama-server
  • Integración: OpenAI-compatible API
  • Empleado de IA: Lina
  • Punto de entrada: Localization Management
Nota

HY-MT1.5-1.8B es un modelo pequeño especializado en traducción. Es más adecuado para entradas cortas, textos de interfaz y traducción por lotes que un modelo de chat general.

Requisitos previos

  • El plugin Gestión de Localización está habilitado.
  • El idioma de destino está habilitado.
  • Las entradas de localización se han sincronizado.
  • La máquina local o servidor puede ejecutar llama-server.
  • El servicio NocoBase puede acceder a la dirección HTTP de llama-server.

Desplegar HY-MT GGUF

Instalar llama.cpp

En macOS puede usar Homebrew:

brew install llama.cpp

También puede usar un binario precompilado o compilar llama.cpp desde el código fuente. Lo importante es que llama-server esté disponible.

Iniciar un servicio compatible con OpenAI

Inicie el servicio con el modelo GGUF de Hugging Face:

llama-server \
  -hf tencent/HY-MT1.5-1.8B-GGUF:Q4_K_M \
  --host 0.0.0.0 \
  --port 8000 \
  -c 2048 \
  -np 4
ParámetroDescripción
-hfCarga el modelo desde Hugging Face.
--hostDirección de escucha del servicio.
--portPuerto HTTP del servicio.
-cLongitud de contexto. Las entradas suelen ser cortas, por lo que 2048 suele bastar.
-npNúmero de slots paralelos. Ajuste según la máquina.

Probar el servicio del modelo

Después de iniciar, compruebe el estado del servicio:

curl http://127.0.0.1:8000/health

Luego pruebe la traducción mediante la API compatible con 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"
      }
    ]
  }'

Si usa un archivo local, cambie model al nombre real del modelo expuesto por el servicio.

Configurar un servicio LLM en NocoBase

Vaya a System Settings -> AI Employees -> LLM service y agregue un servicio LLM.

AjusteEjemplo
ProveedorOpenAI (completions)
TítuloHY-MT Local
Base URLhttp://127.0.0.1:8000/v1
API KeySi llama-server no usa autenticación, puede usar dummy.
Modelos habilitadostencent/HY-MT1.5-1.8B-GGUF:Q4_K_M

Después de configurar, use Test flight para verificar el modelo.

Consejo

Si NocoBase se ejecuta en Docker, 127.0.0.1 apunta al propio contenedor. Use la IP del host, la red del contenedor o host.docker.internal.

Configurar el modelo dedicado de Lina

Abra Lina en System Settings -> AI Employees -> AI employees y cambie a Model settings.

  1. Active Enable dedicated model configuration.
  2. Seleccione el modelo HY-MT local en Models.
  3. Guarde la configuración.

Después de esto, Lina usará este modelo para la traducción de localización y evitará cambiar a modelos de chat generales.

Configurar la concurrencia de traducción

La concurrencia de traducción se controla con AI_LOCALIZATION_CONCURRENCY:

AI_LOCALIZATION_CONCURRENCY=10
  • Predeterminado: 10
  • Mínimo: 1
  • Máximo: 20
  • Los valores fuera del rango usan el predeterminado.

La mejor concurrencia depende de CPU, GPU, memoria, cuantización y llama-server -np. Empiece bajo y aumente solo si es estable.

Ejecutar la traducción de localización

Vaya a System Management -> Localization Management.

  1. Cambie al idioma de destino.
  2. Haga clic en Synchronize para sincronizar entradas.
  3. Haga clic en el avatar de Lina.
  4. Elija traducción incremental, seleccionada o completa.
  5. Revise cantidad, proveedor y modelo en el diálogo de confirmación.
  6. Confirme para crear la tarea asíncrona.
  7. Al finalizar, revise y publique las traducciones.

Empiece con Selected translation para algunas entradas y compruebe estilo y velocidad.

Cómo Lina construye solicitudes de traducción

Lina construye solicitudes a partir de entradas y traducciones de referencia. Para entradas cortas usa referencias existentes para mejorar la consistencia:

  • Las entradas integradas prefieren traducciones chinas como referencia.
  • Las entradas no integradas prefieren el idioma predeterminado del sistema.
  • Si existe una referencia inglesa, se usa como texto fuente.
  • Los resultados se escriben en el idioma de destino, pero no se publican automáticamente.

La semántica del prompt es similar a:

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}

Solución de problemas

  • Si no hay progreso, compruebe si llama-server recibió solicitudes. Si tarda demasiado, reduzca AI_LOCALIZATION_CONCURRENCY, llama-server -np y llama-server -c.
  • Si el modelo devuelve explicaciones en lugar de traducciones, pruebe el mismo prompt con curl y reduzca parámetros de muestreo como temperature.
  • Si NocoBase no puede conectar, compruebe /v1 en Base URL, red, firewall, dirección del contenedor y que llama-server siga ejecutándose.

Revisión antes de publicar

Después de la traducción con IA, revise antes de publicar:

  • Filtre por módulo y revise menús, botones, campos y estados.
  • Revise variables, marcadores, etiquetas HTML y símbolos de formato.
  • Compruebe la consistencia de términos de negocio.
  • Si se sobrescriben traducciones integradas, resincronice y seleccione Reset system built-in entry translations. Para contribuir traducciones, consulte Translation Contribution.
  • Publique primero en un entorno de prueba y luego sincronice a producción.

Referencias